netcfg (日本語)

From ArchWiki
Revision as of 09:56, 25 February 2013 by Kusakata (Talk | contribs)

Jump to: navigation, search

概括 help replacing me
netcfg とプロファイルスクリプトを使ってネットワークを設定する方法。
概要
Template:Networking overview (日本語)
Resources
Netcfg Tips
Netcfg Troubleshooting
Netcfg network scripts repository

Netcfg はプロファイルを使ってネットワークを設定・管理します。ワイヤレス・イーサネット・PPP などの様々な接続形式がサポートされています。また、ボンディングを含む、複数の接続を同じプロファイルで管理する多対一接続も扱えます。さらにシンプルで強固な複数ネットワーク設定管理を求めている人(例:ラップトップユーザー)にも扱いやすいです。

準備

もっとも単純な場合、ユーザーは最低でもネットワークインターフェース(例:eth0, wlan0) の名前を知っておく必要があります。固定 IP アドレスを使うには、ゲートウェイとネームサーバの IP アドレスも知っておかなければなりません。

ワイヤレスネットワークに接続するには、基本的な情報を揃えておいてください。ワイヤレスネットワークに必要な情報は、どのセキュリティが使われているか・ネットワークの名前 (ESSID)、パスフレーズ・暗号化キーです。さらに、Wireless Setup (日本語) で記述されている、ワイヤレスデバイスに必要な対応ドライバー・ファームウェアがインストールされているか確かめて下さい。

インストール

netcfg パッケージは公式リポジトリからダウンロードできます。netcfg バージョン 2.5.x では、自動・ローミング無線接続には wpa_actiond が、自動イーサネット接続には ifplugd が必要になります。このニュースを見て下さい。

netcfg のための Bash 補完を求めているユーザーには、公式リポジトリに bash-completion パッケージが用意されています。

設定

Note: netcfg >= 2.8.9 では /etc/rc.conf との互換性がありません。Netcfg ユーザーは /etc/rc.conf の代わりに /etc/conf.d/netcfg にあるファイルを使って設定してください。

ネットワークプロファイルは /etc/network.d/ に保存されます。エラーを出来るだけ避けるために、/etc/network.d/examples/ から /etc/network.d/mynetwork に設定サンプルをコピーして下さい。ファイル名はそのままネットワークプロファイルの名前になります。この記事では mynetwork を名前の例として使います。

接続タイプやセキュリティによって、/etc/network.d/examples/ にあるサンプルの1つを設定のベースとして使って下さい。

Warning: インターネット上のサンプルを使う時は慎重になってください、サンプルに、すでに使われてないオプションが含まれていて、それが問題を引き起こすことがあります!
接続 タイプ Example Profile 補足
有線 ダイナミック IP ethernet-dhcp
固定 IP ethernet-static
Routed ethernet-iproute net-tools パッケージの route を使って確認できます。
無線 WPA-Personal wireless-wpa Uses a passphrase/pre-shared key.
WPA-Enterprise wireless-wpa-config The wpa_supplicant configuration is external.
wireless-wpa-configsection The wpa_supplicant configuration is stored as a string.

新しい設定ファイル /etc/network.d/mynetwork を編集します:

  • INTERFACE を正しいワイヤレス・イーサネットインターフェースに書き換えてください。ip linkiwconfig でチェックできます。
  • 無線接続では ESSIDKEY (パスフレーズ)を正しく設定してください。タイポがよくあります。
    • WEP 文字列キー (hex キーではない)には先頭に s: を付けて下さい(例:KEY="s:somepasskey")。
Note: Netcfg の設定は Bash スクリプトになっています。$\ のような特殊文字を含む文字列はクォートで囲んで、Bash によって解釈されないようにすることが必要です。解釈を防ぐには、シングルクォートを使うか、バックスラッシュを文字の前に置いて下さい。
Note: ネットワーク情報(パスキーなど)はプレーンテキストとして保存されます。root にしか読めないようにするには、パーミッションを変更してください (chmod 0600 /etc/network.d/mynetwork)。
Note: WPA-Personal では、WPA パスキーを16進数文字列に変換することもできます。 Save the new hexadecimal string into the wireless WPA profile in /etc/network.d/mynetwork as the value of the KEY variable (make sure this will be the only KEY variable enabled), to look similar to this: KEY='7b271c9a7c8a6ac07d12403a1f0792d7d92b5957ff8dfd56481ced43ec6a6515'. However, this key can also be used by anyone to get on your network, and thus must be protected just as well as the cleartext key. The hexadecimal encoding is more convenient if you use special characters that are hard to express in scripts.
Note: デフォルトでは netcfg はネットワークインターフェースの設定に dhcpcd を使います。dhcpcd の代替に dhclient があります。dhclient を使うには DHCLIENT='yes' をプロファイルに書いて下さい。

手動オペレーション

プロファイルを接続:

# netcfg mynetwork

プロファイルを切断:

# netcfg down mynetwork

成功したら、ユーザーは自動で、または起動中に netcfg で接続するよう設定できます。接続できないときは、Netcfg Troubleshooting を見て解決してください。

インタラクティブなメニューを使うこともできます (dialog パッケージが必要です):

netcfg-menu

さらに、ヘルプも見ておいて下さい:

$ netcfg help

自動オペレーション

1つのプロファイルだけを使う

一番単純な場合、1つのプロファイルだけ使って、起動毎に接続するようにします:

# systemctl enable netcfg@myprofile

Net-Profiles

/etc/conf.d/netcfgNETWORKS にネットワーク設定ファイル /etc/network.d/mynetwork を関連付けます:

/etc/conf.d/netcfg
NETWORKS=(mynetwork yournetwork)

起動時にサービスを開始させます:

# systemctl enable netcfg

又は、最後にアクティブになったプロファイルを使うようにするには NETWORKS の中を last にします:

/etc/conf.d/netcfg
NETWORKS=(last)
Note: NETWORKS=(last) が動作するには、初めに手動でネットワークを接続した後、デーモンを停止して Netcfg にそのネットワークを覚えてもらう必要があります。Netcfg デーモンを停止するには root で netcfg-daemon stop を実行してください。
Note: NETWORKS=(menu) 設定は systemd では使えません。詳しくは FS#31377 を見て下さい。

Net-Auto-Wireless

ローミングサポートを使ってユーザーが自動でワイヤレスネットワークに接続できるようになります。この機能を使うには、wpa_actiond パッケージが必要です。wireless-wpa-config プロファイルは net-auto-wireless と一緒には動かないので注意して下さい。代わりに wireless-wpa-configsectionwireless-wpa に変えて下さい。

/etc/conf.d/netcfg の WIRELESS_INTERFACE に使いたいワイヤレスインターフェースを示すか、/etc/conf.d/netcfgAUTO_PROFILES に自動で接続するワイヤレスネットワークのリストを定義してください。

Note: AUTO_PROFILES がセットされていない時は、全てのワイヤレスネットワークが試行されます。
Note: デフォルトでは、wpa_actiond は dhcp のタイムアウトを10秒 (/usr/bin/netcfg-wpa_actiond-action の16行目) に設定しています。ユーザーによってはこの秒数では IP アドレスを取得できないときがあるかもしれません。これを上書きするには、例えば以前の30秒タイムアウトにするには、/etc/conf.d/netcfg に DHCP_TIMEOUT=30 を書いて下さい。

net-auto-wireless.service を有効にして systemd が扱えるようにします。

# systemctl enable net-auto-wireless

Net-Auto-Wired

有線ネットワークに自動で接続できるようになります。この機能を使うには、ifplugd パッケージが必要です。

使いたい有線インターフェースを /etc/conf.d/netcfgWIRED_INTERFACE で示してください。

net-auto-wired.service を有効にして systemd が扱えるようにします。

# systemctl enable net-auto-wired

デーモンは ifplugd プロセスを起動し有線インターフェースの状態が変わった時(ケーブルが抜き差しされた時など)に /etc/ifplugd/netcfg.action を動かします。ケープルが挿入されているなら、接続が成功するまですべてのプロファイルが CONNECTION = "ethernet" もしくは "ethernet-iproute"、と INTERFACE = WIRED_INTERFACE で試行されます。

Note: DHCP プロファイルが固定 IP よりも先に試行されるので、望ましくない結果になることがときどきあります。そのような時は優先したいプロファイルに AUTO_WIRED=1 を加えて netcfg に知らせます。
Note: The net-auto-wired daemon cannot start multiple ifplugd processes for multiple interfaces (unlike ifplugd's own /etc/rc.d/ifplugd which can).

FAQ

Template:FAQ

Template:FAQ

Template:FAQ