netctl (日本語)

From ArchWiki
Revision as of 10:34, 6 August 2013 by Kusakata (Talk | contribs)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end Netctl はプロファイルを使ってネットワーク接続を管理・設定する CLI ベースのツールです。netctl は古い netcfg ユーティリティを置き換える新しい Arch Linux の独自プロジェクトです。Netctl は Arch Linux の CLI ベースのネットワーク管理の将来(そして現在)です。

インストール

netctl パッケージが公式リポジトリから利用できます。netctl をインストールすると netcfgAUR が置き換えられます。

netctlnetcfgAUR は衝突するパッケージです。プロファイルが正しく設定されていないと、netctl をインストールした後に接続を失う可能性があります。

Note: systemctl --type=service を使ってネットワークを設定するサービスが動作していないことを確認するとよいでしょう。ネットワークサービスが複数あると衝突します。

必読

netctl を使う前に以下の man ページを読むのを推奨します:

設定

netctl はプロファイルを使ってネットワーク接続を管理します。プロファイルファイルは /etc/netctl/ に保存されています。ユーザーがネットワーク接続を設定するのを助けるために、設定のサンプルファイルが提供されています。これらのサンプルプロファイルが置かれている場所は /etc/netctl/examples/ です。一般的な設定として以下が用意されています:

  • ethernet-dhcp
  • ethernet-static
  • wireless-wpa
  • wireless-wpa-static

サンプルプロファイルを使うには、プロファイルのどれかを /etc/netctl/examples/ から /etc/netctl/ にコピーしてあなたの設定にあわせてプロファイルを修正して下さい:

# cp /etc/netctl/examples/wireless-wpa /etc/netctl/profile

プロファイルを作成したら、新しく作ったプロファイルを使って接続を確立するために次を実行して下さい:

# netctl start profile
Note: profile はファイル名です、フルパスを含みません。フルパスを指定すると netctl はエラーコードを返します。

上のコマンドが失敗する場合、journalctl -xnnetctl status profile を使って失敗の詳細情報を取得して下さい。そして設定を修正してから再テストして下さい。

自動操作

プロファイルを(一つのインターフェイスに)一つしか使わなかったり、手動でプロファイルを切り替える場合、基本的な方法を使って下さい。一般的な例として、サーバー・ワークステーション・ルーターなどがあります。

頻繁に複数のプロファイルを切り替える必要がある時は、プロファイルの自動切り替えを使って下さい。一般的な例として、ラップトップがあります。

基本的な方法

この方法では、インターフェイス毎に一つのプロファイルを固定して起動することができます。最初にプロファイルが問題なく起動することを手動で確認して、それから次のコマンドで enabled にしてください:

# netctl enable profile

このコマンドによって systemd サービスが作成・有効にされ、コンピュータが立ち上がる時にサービスが起動するようになります。

Note: ブート時 (もしくはサービスの起動時) にプロファイルの起動が成功した時に初めて接続は確立されます。具体的に言うと、有線接続の場合はケーブルが挿さっている必要があり、無線接続の場合、ネットワークが圏内である必要があります。
Tip: ケーブルが接続されているかどうかにかかわらず、固定 IP プロファイルを有線インターフェイスで有効にするには、プロファイルの中で SkipNoCarrier=yes を使って下さい。

プロファイルの自動切り替え

netctl は自動でプロファイルを切り替えるために2つの特別な systemd サービスを用意しています: 無線接続用の netctl-auto@interface.service と有線接続用の netctl-ifplugd@interface.service です。netctl-auto@interface.service を使うと、あなたがあるネットワークの圏内から他のネットワークの圏内に移動したときに netctl のプロファイルが変更されます。netctl-ifplugd@interface.service を使うと、あなたがケーブルを抜き差しするたびに netctl プロファイルが変更されます。

Note: netcfg では同じ目的で net-auto-wireless.servicenet-auto-wired.service を使っていました。

まず必要なパッケージをインストールしてください:

  • netctl-auto@interface.service を使うには wpa_actiond パッケージが必要です。
  • netctl-ifplugd@interface.service を使うには ifplugd パッケージが必要です。

そして netctl-auto@interface.servicenetctl-ifplugd@interface.service が起動できるプロファイルを全て設定してください。これらのサービスによって自動的に起動しないようにしたい場合は、そのプロファイルに ExcludeAuto=yes を加える必要があります。また、Priority= を使うことで複数のプロファイルが利用可能な場合に、どのプロファイルを優先的に使うか設定できます。詳しくは netctl.profile(5) を見て下さい。

Warning: Automatic selection of a WPA-enabled profile by netctl-auto is not possible with option Security=wpa-config, please use Security=wpa-configsection instead.

プロファイルを設定して、動作するのを確認したら、systemctl を使ってサービスを有効にしてください:

# systemctl enable netctl-auto@interface.service 
# systemctl enable netctl-ifplugd@interface.service  
Warning: Key= の値が空など、プロファイルのどれかにエラーがある場合、このユニットは起動時ロードに失敗します。
Warning: この方法は基本的な方法と衝突します。以前 netctl でプロファイルを有効にしていたら、
# netctl disable profile
を実行してプロファイルを二重に起動しないようにしてください。

netcfg からの移行

netctl はプロファイルの保存に /etc/netctl を使います。/etc/network.d (netcfg のプロファイル保存場所) ではありません

netcfg からの移行をするためには、最低でも以下の操作が必要です:

  • netcfg サービスを無効にする: systemctl disable netcfg.service
  • netcfg をアンインストールして netctl をインストールする。
  • ネットワークプロファイルファイルを新しいディレクトリに移動する。
  • netctl.profile(5) に従ってプロファイル内の変数の名前を修正する (ほとんどの変数の名前は UpperCamelCase です、つまり CONNECTIONConnection になります)。
  • 固定 IP 設定では、Address 変数で IP の後ろにネットマスクを付ける (例: Address=('192.168.1.23/24' '192.168.1.87/24') サンプルプロファイルより)。
  • wireless-wpa-configsection サンプルに従って無線プロファイルを設定している場合、定義済みの wpa_supplicant オプションを上書きしてしまうので注意してください。隠された無線ネットワークに接続するには、{{ic|wireless-wpa-configsection} 内で scan_ssid=1 をオプションに追加してください。; Hidden=yes は効果がありません。
  • interface 変数などクオートが必要ない変数のクォーテーションを外す (これは見た目を整えるためです)。
  • 前の NETWORKS に設定していたプロファイルごとに netctl enable profile を実行する。'last' はこの方法では使えません、netctl.special(7) を見て下さい。
  • netcfg-menu の代わりに netctl list / netctl start profile を使う。wifi-menu は使い続けられます。

パスワードの暗号化 (256-bit PSK)

パスワードを平文で保存したくない場合、256-bit Encrypted PSK を生成するという方法があります。

まず、公式リポジトリから wpa_actiondインストールして下さい。

次に、wpa_passphrase を使ってあなたの 256-bit Encrypted PSK を生成してください:

使用方法: wpa_passphrase [ssid] [passphrase]
$ wpa_passphrase archlinux freenode
Note: 表示された情報はプロファイルで使うのでターミナルを閉じないで下さい。

新しいターミナルを開きサンプルファイル wireless-wpa/etc/netctl/examples から /etc/netctl にコピーしてください。

# cp /etc/netctl/examples/wireless-wpa /etc/netctl/wireless-wpa

それからお好きなテキストエディタを使って /etc/netctl/wireless-wpa を編集する必要があります。先に wpa_passphrase を使って生成された Encrypted Pre-shared Key (psk) をプロファイルの Key 変数に追加してください。

256-bit Encrypted PSK を含むネットワークプロファイル wireless-wpa は以下のようになるはずです:

/etc/netctl/wireless-wpa
Description='A simple WPA encrypted wireless connection using 256-bit Encrypted PSK'
Interface=wlp2s2
Connection=wireless
Security=wpa
IP=dhcp
ESSID=archlinux
Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a
Note: Key= には netctl.profile(5) の最後で説明されている special non-quoted rules を使うようにして下さい。

サポート

公式アナウンススレッド: https://bbs.archlinux.org/viewtopic.php?id=157670

Tips and Tricks

2013年4月現在、netcfg current のかわりになるコマンドは netctl にありません。タイル型ウィンドウマネージャのステータスバーなどでこのコマンドを使っている場合は、次のコマンドで代用できます:

# netctl list | sed -n 's/^\* //p'

もしくは、netctl-auto を使って接続している場合:

# wpa_cli -i <interface> status | sed -n 's/^id_str=//p'