ネットワーク接続
# ネットワーク設定 - ArchWiki
# ワイヤレス設定 - ArchWiki
ネットワーク接続を確立するためには、以下の手順が必要です。
これらを手動でやるのは大変なので、通常は、ネットワーク接続を全体的に管理するサービスを使います。
# ワイヤレス設定 - ArchWiki
ネットワーク接続を確立するためには、以下の手順が必要です。
- 無線 LAN の場合、アクセスポイントに接続する。
- 各 IP アドレスを取得、または指定して、設定する。
IPv4/IPv6 ともに、DHCP を使うと、各 IP アドレスを自動で取得できます。
IPv6 の場合は、DHCP を使わずに取得することもできます (DNS サーバの IP アドレスは除く)。
これらを手動でやるのは大変なので、通常は、ネットワーク接続を全体的に管理するサービスを使います。
接続方法の例
Linux でネットワーク接続をするには、複数の方法があります。
以下は、一例です。
最終的には GUI でのネットワークマネージャを使うこともできますが、Arch Linux のインストール時は、常にコマンドを使って接続しなければなりません。
しかし、ネットワーク接続を頻繁に切り替えるようなことでもない限り、一度設定すれば、それ以降の手間がかかることはないので、コマンドによる接続でも特に問題はありません。
以下は、一例です。
[有線/無線] systemd-networkd + (iwd or wpa_supplicant) netctl + (wpa_supplicant) [有線 LAN] dhcpcd [無線 LAN] iwd
最終的には GUI でのネットワークマネージャを使うこともできますが、Arch Linux のインストール時は、常にコマンドを使って接続しなければなりません。
しかし、ネットワーク接続を頻繁に切り替えるようなことでもない限り、一度設定すれば、それ以降の手間がかかることはないので、コマンドによる接続でも特に問題はありません。
パッケージ
Arch Linux の基本パッケージには、ip コマンドなどの基本的なもの以外は含まれていないので、ネットワーク接続関連のパッケージは、別途インストールする必要があります。
※ネットワーク関連のサービスは、同時に使うと衝突するものがあるので、注意してください。
※ネットワーク関連のサービスは、同時に使うと衝突するものがあるので、注意してください。
無線 LAN
無線 LAN の場合は、別途ファームウェアが必要になります。
Intel の内蔵無線 LAN チップなど、一般的なものは linux-firmware に含まれていますが、新しい製品などでは、メーカーから Linux 用のドライバをダウンロードする必要があります。
詳しくは、無線 LAN 接続 の方をご覧ください。
Intel の内蔵無線 LAN チップなど、一般的なものは linux-firmware に含まれていますが、新しい製品などでは、メーカーから Linux 用のドライバをダウンロードする必要があります。
詳しくは、無線 LAN 接続 の方をご覧ください。
接続に関する事項
まずは、共通で必要になる知識などを解説します。
ネットワークのインターフェイス名の確認
それぞれの有線 LAN や無線 LAN のデバイスには、Linux 上で認識するためのインターフェイス名が、自動で付けられています。
ネット接続する際には、この名前が必要になるので、確認したい場合は、以下のコマンドを使ってください。
enp* は有線 LAN、wlp* は無線 LAN です。
※ iwd を使っている場合、無線 LAN は wlan* となります。
$ ip address で、IP アドレスを確認することもできます。
これは元々 systemd-networkd 用のコマンドですが、実際は systemd-networkd が動いていなくても実行できます。
ネット接続する際には、この名前が必要になるので、確認したい場合は、以下のコマンドを使ってください。
$ ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s31f6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether ... 3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether ...
enp* は有線 LAN、wlp* は無線 LAN です。
※ iwd を使っている場合、無線 LAN は wlan* となります。
$ ip address で、IP アドレスを確認することもできます。
networkctl
それ以外にも、systemd に含まれる networkctl コマンドを使うこともできます。これは元々 systemd-networkd 用のコマンドですが、実際は systemd-networkd が動いていなくても実行できます。
$ networkctl WARNING: systemd-networkd is not running, output will be incomplete. IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback n/a unmanaged 2 enp0s31f6 ether n/a unmanaged 3 wlp2s0 wlan n/a unmanaged 3 links listed.
systemctl の使い方
各サービスは systemd で管理するので、systemctl コマンドを使って、実際に動作させたり、有効(PC 起動時に自動で実行させる)にしたりする必要があります。
<他のコマンド>
start で実際にサービスが開始されますが、これは、現在の PC 起動中でのみ動作するだけです。
PC 起動時に、サービスを自動的に実行させたい場合は、enable を行う必要があります。
## 実際に動作を開始する # systemctl start <name...> ## サービスを起動時に有効にする # systemctl enable <name...>
<他のコマンド>
stop | 現在動いているサービスの実行を停止させる。 |
---|---|
restart | すでに動いているサービスを再起動する。 設定ファイルを変更した後に、それを適用させたい場合など。 |
disable | PC 起動時に無効にする |
reenable | サービスのファイルを再作成する。 設定ファイルの変更などにより、systemd のユニットファイルの内容が変わる時。 |
status | 現在の状態を表示する。 直近のシステムログも表示されるので、サービスに問題があった場合は確認してみてください。 |
start で実際にサービスが開始されますが、これは、現在の PC 起動中でのみ動作するだけです。
PC 起動時に、サービスを自動的に実行させたい場合は、enable を行う必要があります。
/etc/resolv.conf
# ドメイン名前解決
/etc/resolv.conf は、DNS サーバーの IP アドレスなどを定義するためのファイルです。
ネットの使用時において重要な項目となるため、先に説明します。
このファイルが正しく設定されていないと、正常にネットに接続できません。
ネットワーク自体には接続できているのに、ブラウザでページが表示できない場合などは、/etc/resolv.conf ファイルが存在しているか、また、中身が正しく設定されているか確認してください。
/etc/resolv.conf は、DNS サーバーの IP アドレスなどを定義するためのファイルです。
ネットの使用時において重要な項目となるため、先に説明します。
このファイルが正しく設定されていないと、正常にネットに接続できません。
ネットワーク自体には接続できているのに、ブラウザでページが表示できない場合などは、/etc/resolv.conf ファイルが存在しているか、また、中身が正しく設定されているか確認してください。
DNS サーバーについて
DNS サーバーは、ドメイン名から IP アドレスを取得するためのものです。
ネットで外部のサーバーに接続する際は、接続先の IP アドレスが必要になります。
しかし、IP アドレスで接続先を指定するのは不便なので、通常は、www.google.com などどいったわかりやすいドメイン名を、IP アドレスの代わりに使用します。
DNS サーバーに接続して、あらかじめ登録されているドメイン名を送ると、それに対応した IP アドレスを取得することができるので、実際に外部のサーバーに接続する際は、その変換した IP アドレスを使うことになります。
ネットで外部のサーバーに接続する際は、接続先の IP アドレスが必要になります。
しかし、IP アドレスで接続先を指定するのは不便なので、通常は、www.google.com などどいったわかりやすいドメイン名を、IP アドレスの代わりに使用します。
DNS サーバーに接続して、あらかじめ登録されているドメイン名を送ると、それに対応した IP アドレスを取得することができるので、実際に外部のサーバーに接続する際は、その変換した IP アドレスを使うことになります。
/etc/resolv.conf
Linux では、DNS サーバーの設定 (IP アドレスなど) は、/etc/resolv.conf で定義します。
DNS サーバーの IP アドレスは、ルータやプロバイダなどによって異なるので、適切なものを設定する必要があります。
DNS サーバーは DHCP を使って自動取得できるので、使用する接続方法によっては、/etc/resolv.conf が自動で生成される場合があります。
それ以外では、適切な設定を行ったり、手動で /etc/resolv.conf を編集しなければならない場合があるので、各接続方法における動作を確認してください。
nameserver の後に、IP アドレスを記述します。
IPv4/IPv6 の両方を記述したい場合は、1行内に空白で区切ります。
複数行記述した場合、先頭から順に接続されます。
保存した後はすぐに有効になるので、設定した後にブラウザなどが正しく表示されていれば、問題ありません。
DNS サーバーの IP アドレスは、ルータやプロバイダなどによって異なるので、適切なものを設定する必要があります。
DNS サーバーは DHCP を使って自動取得できるので、使用する接続方法によっては、/etc/resolv.conf が自動で生成される場合があります。
それ以外では、適切な設定を行ったり、手動で /etc/resolv.conf を編集しなければならない場合があるので、各接続方法における動作を確認してください。
手動で設定
/etc/resolv.conf が自動で生成されない場合は、手動で設定する必要があります。nameserver の後に、IP アドレスを記述します。
IPv4/IPv6 の両方を記述したい場合は、1行内に空白で区切ります。
複数行記述した場合、先頭から順に接続されます。
# ルータ (製品による) nameserver 192.168.0.1 # Google Public DNS nameserver 8.8.8.8
保存した後はすぐに有効になるので、設定した後にブラウザなどが正しく表示されていれば、問題ありません。
resolvconf コマンド
resolvconf コマンドを使うと、DHCP などを使って、自動で DNS サーバーの IP アドレスを取得し、/etc/resolv.conf を生成することができます。
(すでにネットワークに接続されている必要があります)
[パッケージ] openresolv
netctl で接続した場合は、このコマンドで、毎回ファイルが生成されます。
(すでにネットワークに接続されている必要があります)
[パッケージ] openresolv
## インストール # pacman -S openresolv ## /etc/resolv.conf を生成 # resolvconf -u
netctl で接続した場合は、このコマンドで、毎回ファイルが生成されます。
systemd-resolved
systemd-resolved は、DNS を管理するサービスです。systemd パッケージに含まれています。
systemd-networkd でネット接続する場合は、基本的に一緒に使います。
systemd-resolved は、/etc/resolv.conf 自体は自動で生成しませんが、resolv.conf に相当するファイルを、別の場所に生成します。
これらのいずれかを /etc/resolv.conf からリンクさせることで、DNS サーバーを設定することができます。
/run/systemd/resolve/resolv.conf には、自動取得された DNS サーバのアドレスが記述されています。
stub-resolv.conf を使うことで、systemd-resolved の設定がすべて適用されるので、こちらが推奨されています。
systemd-networkd でネット接続する場合は、基本的に一緒に使います。
systemd-resolved は、/etc/resolv.conf 自体は自動で生成しませんが、resolv.conf に相当するファイルを、別の場所に生成します。
これらのいずれかを /etc/resolv.conf からリンクさせることで、DNS サーバーを設定することができます。
設定方法
/run/systemd/resolve/stub-resolv.conf には、systemd-resolved が実装している、ローカル DNS サーバのアドレスが記述されています。/run/systemd/resolve/resolv.conf には、自動取得された DNS サーバのアドレスが記述されています。
stub-resolv.conf を使うことで、systemd-resolved の設定がすべて適用されるので、こちらが推奨されています。
# systemctl start systemd-resolved # systemctl enable systemd-resolved # ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
- /run/systemd/resolve/ 内のファイルは、systemd-resolved が実行されている間に作成されます。
実行されていない場合は、ファイルが存在しない状態となります。 - systemd-resolved を使わなくなった場合は、/etc/resolv.conf のリンクファイルを削除してから、ファイルを再作成してください。
- Arch Linux インストール中、arch-chroot を実行した後に、リンクファイルの作成を行わないでください。
arch-chroot 後では、インストール先の /etc/resolv.conf に正しく作成することができません。
(有線 LAN) dhcpcd
# dhcpcd - ArchWiki
[パッケージ] dhcpcd
有線 LAN 1つしか使わない& IP アドレスを自動で取得したい場合は、DHCP クライアントである dhcpcd を使うのが一番簡単です。
インターフェイス名を確認の上、以下のコマンドを実行してください。
波線の部分は、自分の有線 LAN のインターフェイス名に置き換えてください。
[パッケージ] dhcpcd
有線 LAN 1つしか使わない& IP アドレスを自動で取得したい場合は、DHCP クライアントである dhcpcd を使うのが一番簡単です。
- IPv4/IPv6 両対応で、デフォルトで両方とも有効です。
- デフォルトで /etc/resolv.conf を自動生成します。
インターフェイス名を確認の上、以下のコマンドを実行してください。
波線の部分は、自分の有線 LAN のインターフェイス名に置き換えてください。
## インストール # pacman -S dhcpcd ## 動作を開始 # systemctl start dhcpcd@enp0s31f6 ~~~~~~~~~ ## PC 起動時に有効にする # systemctl enable dhcpcd@enp0s31f6 ~~~~~~~~~
(無線 LAN) iwd
# iwd - ArchWiki
[パッケージ] iwd
無線 LAN だけを使う場合、iwd 単体で接続することもできますが、IP アドレスなどを細かく設定したい場合は、systemd-networkd と一緒に使った方が良いでしょう。
iwd サービスを起動した後に、iwctl コマンドでアクセスポイントに接続する必要があります。
※ iwctl コマンドは、netdev or wheel グループに入っている一般ユーザーなら、root 権限でなくても実行できます。
サービスを起動しただけでは接続されないので、アクセスポイントのネットワーク名と暗号化のパスワードを元に、手動で接続します。
※ iwd を使用する場合、インターフェイスの名前は、wlan* となります。
[パッケージ] iwd
無線 LAN だけを使う場合、iwd 単体で接続することもできますが、IP アドレスなどを細かく設定したい場合は、systemd-networkd と一緒に使った方が良いでしょう。
## インストール # pacman -S iwd
iwd サービスを起動した後に、iwctl コマンドでアクセスポイントに接続する必要があります。
※ iwctl コマンドは、netdev or wheel グループに入っている一般ユーザーなら、root 権限でなくても実行できます。
設定
/etc/iwd/main.conf ファイルで、iwd の設定を行えます。
(/etc/iwd/ は作成されていないので、mkdir コマンドで先に作成してください)
iwd 単体でネットワーク接続を行う場合は、内蔵ネットワーク設定を有効にします。
(systemd-networkd と一緒に使う場合は、無効にします)
内蔵ネットワーク設定が有効の場合、DHCP を使って、自動で IP アドレスが取得されます (デフォルトで IPv6 有効)。
内蔵ネットワーク設定が有効の場合、DNS は、systemd-resolved を使うか、resolvconf コマンドを使うか、手動で設定するかを指定できます。
(/etc/iwd/ は作成されていないので、mkdir コマンドで先に作成してください)
[General] # 内蔵ネットワーク設定 (default:false) #EnableNetworkConfiguration=true [Network] # IPv6 (default:true) #EnableIPv6=false # DNS 管理 [systemd,resolvconf,none] (default:systemd) #NameResolvingService=systemd
iwd 単体でネットワーク接続を行う場合は、内蔵ネットワーク設定を有効にします。
(systemd-networkd と一緒に使う場合は、無効にします)
内蔵ネットワーク設定が有効の場合、DHCP を使って、自動で IP アドレスが取得されます (デフォルトで IPv6 有効)。
内蔵ネットワーク設定が有効の場合、DNS は、systemd-resolved を使うか、resolvconf コマンドを使うか、手動で設定するかを指定できます。
接続手順
## iwd サービスを起動 # systemctl start iwd ## PC 起動時に有効にする # systemctl enable iwd ## 無線 LAN インターフェイスのリストを表示 (通常は wlan0) $ iwctl device list ## ルータを検索 (* が電波の強さ) $ iwctl station wlan0 get-networks ~~~~~ ## ルータに接続 (<network> は、SSID ネットワーク名) $ iwctl station wlan0 connect <network> ~~~~~ ~~~~~~~~~ Passphrase: (暗号キーを入力) ## 接続状態の表示 $ iwctl station wlan0 show
サービスを起動しただけでは接続されないので、アクセスポイントのネットワーク名と暗号化のパスワードを元に、手動で接続します。
※ iwd を使用する場合、インターフェイスの名前は、wlan* となります。
ネットワークの設定ファイル
接続に成功した場合、/var/lib/iwd ディレクトリに、「<network>.<type>」のファイル名で、ネットワークの設定ファイルが生成されます。
<type> は暗号化のタイプを表しており、通常は psk です。
一度接続されたネットワークの設定は保存され、次回の起動時は、自動で /var/lib/iwd 内のファイルから接続されます。
不要になった設定は、手動でファイルを削除するか、以下のコマンドで削除してください。
<type> は暗号化のタイプを表しており、通常は psk です。
/var/lib/iwd 内のファイルは、root ユーザーのみが読み書きできる状態なので、一般ユーザーでは、$ ls でファイルリストの表示ができません。
ファイルリストを表示する時は、root ユーザーで操作してください。
ファイルリストを表示する時は、root ユーザーで操作してください。
一度接続されたネットワークの設定は保存され、次回の起動時は、自動で /var/lib/iwd 内のファイルから接続されます。
不要になった設定は、手動でファイルを削除するか、以下のコマンドで削除してください。
## 設定を削除 $ iwctl known-networks <network> forget
ネットワーク設定ファイルの編集
/var/lib/iwd 内のネットワーク設定ファイルを編集することで、各ネットワークの設定を変更することができます。[Security] # 暗号化キーの生の文字列 Passphrase=... ... [Settings] # 起動時の自動接続を無効に #Autoconnect=false ## 固定 IP アドレスを設定する場合 (例) #[IPv4] #Address=192.168.0.10 #Gateway=192.168.0.1 #DNS=192.168.0.1
(有線/無線) systemd-networkd
# systemd-networkd - ArchWiki
systemd-networkd は、ネットワーク全般の接続管理を行います。systemd パッケージに含まれています。
無線 LAN 接続する場合は、iwd または wpa_supplicant パッケージが必要で、アクセスポイントへの接続は、それぞれの方法で別途行う必要があります。
systemd-networkd では、各ネットワークの設定ファイルを作成する必要があります。
systemd-networkd は、ネットワーク全般の接続管理を行います。systemd パッケージに含まれています。
無線 LAN 接続する場合は、iwd または wpa_supplicant パッケージが必要で、アクセスポイントへの接続は、それぞれの方法で別途行う必要があります。
systemd-networkd では、各ネットワークの設定ファイルを作成する必要があります。
設定ファイル (*.network)
各ネットワークの設定ファイルは、/etc/systemd/network/ ディレクトリ内に作成します。
ファイル名は、任意の名前で、拡張子に .network を付ける必要があります。
複数のファイルがある場合は、ファイル名の順に先頭から読み込まれるので、ファイルの名前で接続順を調節してください。
有線/無線ともに共通で、基本的に以下のように記述すれば、接続はできます。
以下の場合は、IPv4/IPv6 の両方が有効になり、DHCP を使って IP アドレスが取得されます。
Name= で指定するインターフェイス名は、$ networkctl で確認してください。
iwd を使う場合は、wlan0 といった名前になります。
ファイル名は、任意の名前で、拡張子に .network を付ける必要があります。
複数のファイルがある場合は、ファイル名の順に先頭から読み込まれるので、ファイルの名前で接続順を調節してください。
有線/無線ともに共通で、基本的に以下のように記述すれば、接続はできます。
以下の場合は、IPv4/IPv6 の両方が有効になり、DHCP を使って IP アドレスが取得されます。
[Match] Name=<インターフェイス名> [Network] DHCP=yes
無線 LAN
無線 LAN の場合は、以下のように項目を追加すると良いでしょう。[Match] Name=wlan0 [Network] DHCP=yes # IPアドレスをプライバシー拡張機能で取得 IPv6PrivacyExtensions=true # 3秒以内に接続が回復すれば、構成を維持する IgnoreCarrierLoss=3s
Name= で指定するインターフェイス名は、$ networkctl で確認してください。
iwd を使う場合は、wlan0 といった名前になります。
起動
設定ファイルが用意できたら、systemd-networkd を起動します。
起動中に設定ファイルを変更した場合は、# systemctl restart systemd-networkd で再起動できます。
ただし、無線 LAN の場合は、これだけでは接続できないので、iwd または wpa_supplicant の各方法で別途接続を行う必要があります。
また、systemd-networkd 自体は /etc/resolv.conf を処理しないので、DNS サーバーの設定に関しては別途考える必要があります。
起動中に設定ファイルを変更した場合は、# systemctl restart systemd-networkd で再起動できます。
## サービスの起動 # systemctl start systemd-networkd ## PC 起動時に有効にする # systemctl enable systemd-networkd
ただし、無線 LAN の場合は、これだけでは接続できないので、iwd または wpa_supplicant の各方法で別途接続を行う必要があります。
また、systemd-networkd 自体は /etc/resolv.conf を処理しないので、DNS サーバーの設定に関しては別途考える必要があります。
DNS
systemd-networkd 自体は、/etc/resolv.conf を処理しません。
DNS の管理は、基本的に systemd-resolved を使って行います。
DNS の管理は、基本的に systemd-resolved を使って行います。
# systemctl start systemd-resolved # systemctl enable systemd-resolved # ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
無線 LAN (iwd)
systemd-networkd + iwd で無線 LAN 接続する場合は、iwd の内蔵ネットワーク設定を無効にする必要があります(デフォルト)。
有効になっている場合は、/etc/iwd/main.conf で無効にしてください。
iwd サービスを起動した後、iwctl コマンドで、アクセスポイントへの接続を行います。
有効になっている場合は、/etc/iwd/main.conf で無効にしてください。
iwd サービスを起動した後、iwctl コマンドで、アクセスポイントへの接続を行います。
# systemctl start iwd # systemctl enable iwd # iwctl station wlan0 connect <network>
無線 LAN (wpa_supplicant)
systemd-networkd + wpa_supplicant で無線 LAN 接続する場合は、以下の手順で行ってください。
[パッケージ] wpa_supplicant
ルータのネットワークの名前と暗号化キーを指定して、出力された network={...} の情報を、ファイルに保存してください。
<interface> は、wlp〜 などのインスターフェイス名です。
暗号化キーが直接記述されているため、root 以外のユーザーが読み込めないように、パーミッションを変更します。
このファイル内では、他の設定も行えますが、そのままでも動作はします。
項目の詳細は、/usr/share/doc/wpa_supplicant/wpa_supplicant.conf を見てください。
@ の後に、インターフェイス名を指定してください。
wpa_supplicant@.service のファイルの中身では、以下のようにして wpa_supplicant が起動されているので (%I がインスタ―フェイス名)、設定ファイルの名前は、wpa_supplicant-<interface>.conf にする必要があります。
[パッケージ] wpa_supplicant
設定ファイルを作成
まずは、wpa_supplicant の接続設定のファイルを作成する必要があります。ルータのネットワークの名前と暗号化キーを指定して、出力された network={...} の情報を、ファイルに保存してください。
<interface> は、wlp〜 などのインスターフェイス名です。
## root にログインしている状態の場合 # wpa_passphrase <SSID> <key> > /etc/wpa_supplicant/wpa_supplicant-<interface>.conf ~~~~~~ ~~~~~ ~~~~~~~~~~~ ## 一般ユーザーの場合 ## (上記に sudo しただけでは書き込めないため) $ wpa_passphrase <SSID> <key> | sudo tee /etc/wpa_supplicant/wpa_supplicant-<interface>.conf ~~~~~~ ~~~~~ ~~~~~~~~~~~
暗号化キーが直接記述されているため、root 以外のユーザーが読み込めないように、パーミッションを変更します。
# chmod 600 /etc/wpa_supplicant/wpa_supplicant-<interface>.conf ~~~~~~~~~~~
このファイル内では、他の設定も行えますが、そのままでも動作はします。
項目の詳細は、/usr/share/doc/wpa_supplicant/wpa_supplicant.conf を見てください。
起動する
wpa_supplicant のサービスを起動します。@ の後に、インターフェイス名を指定してください。
## 起動時に有効にする # systemctl enable wpa_supplicant@<interface> ~~~~~~~~~~~ ## 実際に動作させる # systemctl start wpa_supplicant@<interface> ~~~~~~~~~~~
wpa_supplicant@.service のファイルの中身では、以下のようにして wpa_supplicant が起動されているので (%I がインスタ―フェイス名)、設定ファイルの名前は、wpa_supplicant-<interface>.conf にする必要があります。
ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I
(有線/無線) netctl
# netctl - ArchWiki
[パッケージ] netctl, openresolv, dhcpcd, wpa_supplicant
netctl は、Arch Linux 独自のパッケージで、主にシェルスクリプトで構成されています。
事前に各プロファイルのファイルを用意してから、接続します。
既存のコマンドを使って、出来るだけ自動で設定できるように作られているため、あまり複雑なことを考える必要がありません。
※ netctl は、resolvconf コマンドを使って、接続時に毎回 /etc/resolv.conf を上書きします。
[パッケージ] netctl, openresolv, dhcpcd, wpa_supplicant
netctl は、Arch Linux 独自のパッケージで、主にシェルスクリプトで構成されています。
事前に各プロファイルのファイルを用意してから、接続します。
既存のコマンドを使って、出来るだけ自動で設定できるように作られているため、あまり複雑なことを考える必要がありません。
## インストール # pacman -S netctl openresolv dhcpcd wpa_supplicant
- /etc/resolv.conf の設定用に、openresolv を追加。
- DHCP で IP アドレスを自動で取得する場合は、dhcpcd を追加。
- 無線 LAN 接続する場合は、wpa_supplicant を追加 (iwd には非対応)。
※ netctl は、resolvconf コマンドを使って、接続時に毎回 /etc/resolv.conf を上書きします。
プロファイルの用意
netctl では、各ネットワークを「プロファイル」として、設定ファイルを用意する必要があります。
プロファイルは、/etc/netctl/ ディレクトリ内に、適当なファイル名で作成します(拡張子はなし)。
サンプルのファイルが /etc/netctl/examples/ 内にあるので、基本的には、このファイルのうち1つをコピーして、編集してます。
/etc/netctl/examples/wireless-wpa を /etc/netctl/<filename> にコピーします。
また、無線 LAN の場合は、暗号化キーを直接記述するため、root 以外のユーザーが中身を読み込めないように、パーミッションを変更したほうが良いです。
Interface の値は、$ ip link などで確認した、インターフェイス名に書き換えます。無線 LAN なら、wlp〜 です。
ESSID にはルータのネットワークの名前を、Key には暗号化キーの文字列を記述します。
有線 LAN の場合も、Interface の値を書き換えてください。
プロファイルは、/etc/netctl/ ディレクトリ内に、適当なファイル名で作成します(拡張子はなし)。
サンプルのファイルが /etc/netctl/examples/ 内にあるので、基本的には、このファイルのうち1つをコピーして、編集してます。
ethernet-dhcp | 有線LAN : DHCP |
---|---|
ethernet-static | 有線LAN : 固定 IP アドレス |
wireless-wpa | 無線 LAN (WPA 暗号化) : DHCP |
wireless-wpa-static | 無線 LAN (WPA 暗号化) : 固定 IP アドレス |
サンプルをコピー
例えば、無線 LAN で、DHCP によって IP アドレスを自動取得するなら、/etc/netctl/examples/wireless-wpa を /etc/netctl/<filename> にコピーします。
また、無線 LAN の場合は、暗号化キーを直接記述するため、root 以外のユーザーが中身を読み込めないように、パーミッションを変更したほうが良いです。
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/wireless # chmod 600 /etc/netctl/wireless
テキストの編集
サンプルの内容を元に、テキストを編集します (以下は、無線 LAN の場合)。# nano /etc/netctl/wireless
Description='A simple WPA encrypted wireless connection' Interface=wlp2s0 Connection=wireless Security=wpa IP=dhcp ESSID='ネットワークの名前 (SSID)' Key='暗号化キー'
Interface の値は、$ ip link などで確認した、インターフェイス名に書き換えます。無線 LAN なら、wlp〜 です。
ESSID にはルータのネットワークの名前を、Key には暗号化キーの文字列を記述します。
有線 LAN の場合も、Interface の値を書き換えてください。
起動
プロファイルが用意できたら、netctl のサービスを起動/有効にします。
netctl の場合は、systemctl コマンドを使わずに netctl コマンドを使いますが、実際は中で systemctl コマンドが使われています。
<profile> には、プロファイルのファイル名を、ディレクトリパスなしで指定してください。
※プロファイルの中身を変更した場合は、systemd のユニットファイルを変更する必要があるので、reenable を行ってください。
netctl の場合は、systemctl コマンドを使わずに netctl コマンドを使いますが、実際は中で systemctl コマンドが使われています。
## サービスを開始 # netctl start <profile> ## PC 起動時に有効にする # netctl enable <profile>
<profile> には、プロファイルのファイル名を、ディレクトリパスなしで指定してください。
※プロファイルの中身を変更した場合は、systemd のユニットファイルを変更する必要があるので、reenable を行ってください。