ネットワーク接続
# ネットワーク設定 - ArchWiki
# ワイヤレス設定 - ArchWiki
Arch Linux でネットワーク接続をするには、複数の方法があります。
CUI におけるネットワーク接続の方法を、いくつか紹介します。
主に、メインの接続ツールを使って手動で接続するか、複数の接続を管理するネットワークマネージャを使って、ある程度自動で接続するかの2択になります。
それぞれ、必要になるパッケージが異なるので、接続で必要になるものは自分で選択して、別途インストールしてください。
※ネットワーク関連のサービスは、複数を同時に実行すると、衝突する場合があるので、注意してください。
# ワイヤレス設定 - ArchWiki
Arch Linux でネットワーク接続をするには、複数の方法があります。
CUI におけるネットワーク接続の方法を、いくつか紹介します。
主に、メインの接続ツールを使って手動で接続するか、複数の接続を管理するネットワークマネージャを使って、ある程度自動で接続するかの2択になります。
それぞれ、必要になるパッケージが異なるので、接続で必要になるものは自分で選択して、別途インストールしてください。
※ネットワーク関連のサービスは、複数を同時に実行すると、衝突する場合があるので、注意してください。
無線 LAN
無線 LAN の場合は、別途ファームウェアが必要になります。
Intel の内蔵無線 LAN チップなど、一般的なものは linux-firmware に含まれていますが、新しい製品などでは、メーカーから Linux 用のドライバをダウンロードする必要があります。
詳しくは、無線 LAN 接続 の方をご覧ください。
Intel の内蔵無線 LAN チップなど、一般的なものは linux-firmware に含まれていますが、新しい製品などでは、メーカーから Linux 用のドライバをダウンロードする必要があります。
詳しくは、無線 LAN 接続 の方をご覧ください。
接続に関する事項
まずは、共通で必要になる知識などを解説します。
ネットワークのインターフェイス名の確認
それぞれの有線 LAN や無線 LAN ごとに、インターフェイス名が自動で付けられています。
ネット接続する際には、この名前が必要になるので、確認したい場合は、以下のコマンドを使ってください。
enp* は有線 LAN、wlp* は無線 LAN です。
※ iwd で接続している場合、無線 LAN は wlan* となります。
また、systemd に含まれる networkctl コマンドを使うこともできます。
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* となります。
また、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 起動時には自動的に実行されないので、永続的に実行したい場合は、enable も行う必要があります。
## 動作を開始する # systemctl start <name...> ## サービスを起動時に有効にする # systemctl enable <name...>
stop | 現在実行されているものを停止する |
---|---|
restart | 再開始させる。 設定ファイルを変更して、その状態を有効にしたい時など。 |
disable | PC 起動時に無効にする |
reenable | 再有効する。 設定ファイルの変更などにより、systemd のユニットファイルの内容が変わる時。 |
status | 現在の状態を表示する。 システムログの数行も表示されるので、問題があった場合などは確認してみてください。 |
start で実際に動作が開始されますが、現在の起動中のみ動作するだけで、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 アドレスの代わりに使用します。
ドメイン名に対する IP アドレスはあらかじめ登録されているので、接続する際は、DNS サーバーを使って、ドメイン名を IP アドレスに変換してから、対象のサーバーに接続する形になります。
ネットでどこかに接続する場合は、接続先のサーバーの IP アドレスが必要になります。
しかし、IP アドレスで接続先を記載すると、何のサーバーかわかりにくいので、通常は、www.google.com などどいった、わかりやすいドメイン名を IP アドレスの代わりに使用します。
ドメイン名に対する IP アドレスはあらかじめ登録されているので、接続する際は、DNS サーバーを使って、ドメイン名を IP アドレスに変換してから、対象のサーバーに接続する形になります。
resolv.conf
Linux では、DNS サーバーの IP アドレスは、/etc/resolv.conf に定義する必要があります。
DNS サーバーの IP アドレスは接続環境によって異なりますし、公開されている DNS サーバーを使用したい場合もあるので、自身で選択して、適切に設定しなければなりません。
ただし、ネットワークマネージャや、dhcpcd、netctl など、自動で /etc/resolv.conf を上書きするものもあります。
ネットワーク設定によって自動で設定されるのか、それとも、手動で設定しなければならないのか、それらも確認した上で、設定してください。
DNS サーバーの IP アドレスは接続環境によって異なりますし、公開されている DNS サーバーを使用したい場合もあるので、自身で選択して、適切に設定しなければなりません。
ただし、ネットワークマネージャや、dhcpcd、netctl など、自動で /etc/resolv.conf を上書きするものもあります。
ネットワーク設定によって自動で設定されるのか、それとも、手動で設定しなければならないのか、それらも確認した上で、設定してください。
手動で設定
/etc/resolv.conf が、ネットワーク設定によって自動で処理されない場合は、手動で設定する必要があります。
ルータを介して接続している場合や、公開されている DNS サーバーを使う場合などは、手動で IP アドレスを設定できます。
(ルータの DNS サーバーの IP アドレスは製品によって異なるので、製品情報などを確認してください)
/etc/resolv.conf を編集して、nameserver の後に、IP アドレスを記述します(以下は IPv4 の場合)。
複数行記述すると、先頭から順に試されます。
保存した後はすぐに有効になるので、設定した後にブラウザなどが正しく表示されていれば、問題ありません。
ルータを介して接続している場合や、公開されている DNS サーバーを使う場合などは、手動で IP アドレスを設定できます。
(ルータの DNS サーバーの IP アドレスは製品によって異なるので、製品情報などを確認してください)
/etc/resolv.conf を編集して、nameserver の後に、IP アドレスを記述します(以下は IPv4 の場合)。
複数行記述すると、先頭から順に試されます。
# ルータ (製品による) nameserver 192.168.0.1 # Google Public DNS nameserver 8.8.8.8
保存した後はすぐに有効になるので、設定した後にブラウザなどが正しく表示されていれば、問題ありません。
ネットワーク関連のサービスによって自動生成
ネットワークマネージャ、dhcpcd、netctl などを使ってネットワークに接続している場合、自動で /etc/resolv.conf が上書きされる場合があります。
基本的には、その方が面倒がなくてよいのですが、逆に、手動で resolv.conf を設定したい場合は、resolv.conf が上書きされないように、それぞれの設定を行う必要があります。
基本的には、その方が面倒がなくてよいのですが、逆に、手動で resolv.conf を設定したい場合は、resolv.conf が上書きされないように、それぞれの設定を行う必要があります。
resolvconf
DHCP などによって、自動で DNS サーバーの IP アドレスを取得したい場合は、resolvconf コマンドを使うと、自動で resolv.conf を生成することができます。
(すでにネットワークに接続されている必要があります)
[パッケージ] openresolv
IP アドレスが固定のものであれば、一度生成するだけで構いませんが、ネットワーク設定関連のサービスから実行される場合は、接続時に毎回生成されます。
(すでにネットワークに接続されている必要があります)
[パッケージ] openresolv
## インストール # pacman -S openresolv ## /etc/resolv.conf を生成 # resolvconf -u
IP アドレスが固定のものであれば、一度生成するだけで構いませんが、ネットワーク設定関連のサービスから実行される場合は、接続時に毎回生成されます。
systemd-resolved
systemd-resolved は、systemd パッケージに含まれており、ローカル DNS によるドメイン名解決などを提供します。
systemd-networkd で接続する場合は一緒に使うことが多いですが、単体で使うことも出来ます。
この DNS を使う場合は、/etc/resolv.conf を、/run/systemd/resolve/resolv.conf へのシンボリックリンクとして作成します。
※ /run/systemd/resolve/resolv.conf のファイルは、systemd-resolved が実行されている間作成されるので、実行されていない時は、ファイルが存在しない状態となります。
※ systemd-resolved を使わなくなった場合は、/etc/resolv.conf を削除してから、ファイルを再作成してください。
arch-chroot のスクリプト内では、/etc/resolv.conf が特殊に処理されているので、/etc/resolv.conf = インストール作業の Linux 上にある /etc/resolv.conf となってしまいます。
そのため、リンクファイルを作成する時は、インストール先の Arch Linux を起動した後にする方がいいかもしれません。
systemd-networkd で接続する場合は一緒に使うことが多いですが、単体で使うことも出来ます。
この DNS を使う場合は、/etc/resolv.conf を、/run/systemd/resolve/resolv.conf へのシンボリックリンクとして作成します。
# systemctl start systemd-resolved # systemctl enable systemd-resolved # ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
※ /run/systemd/resolve/resolv.conf のファイルは、systemd-resolved が実行されている間作成されるので、実行されていない時は、ファイルが存在しない状態となります。
※ systemd-resolved を使わなくなった場合は、/etc/resolv.conf を削除してから、ファイルを再作成してください。
Arch Linux インストール中の注意点
※ Arch Linux のインストール中、arch-chroot を実行している段階で設定する場合は、一度 chroot を抜けてから、リンクファイルを /mnt/etc/resolv.conf として指定して、作成する必要があります。# exit # ln -sf /run/systemd/resolve/resolv.conf /mnt/etc/resolv.conf # arch-chroot /mnt
arch-chroot のスクリプト内では、/etc/resolv.conf が特殊に処理されているので、/etc/resolv.conf = インストール作業の Linux 上にある /etc/resolv.conf となってしまいます。
そのため、リンクファイルを作成する時は、インストール先の Arch Linux を起動した後にする方がいいかもしれません。
(有線 LAN) dhcpcd
# dhcpcd - ArchWiki
[パッケージ] dhcpcd
有線 LAN 1つだけしか使わず、また、IP アドレスを自動で取得したい場合は、DHCP クライアントである dhcpcd を使うのが一番簡単です。
※ dhcpcd は、デフォルトで /etc/resolv.conf を自動生成します。
インターフェイス名を確認の上、以下のコマンドを実行してください。
波線の部分は、自分の有線 LAN のインターフェイス名に置き換えてください。
[パッケージ] dhcpcd
有線 LAN 1つだけしか使わず、また、IP アドレスを自動で取得したい場合は、DHCP クライアントである dhcpcd を使うのが一番簡単です。
※ dhcpcd は、デフォルトで /etc/resolv.conf を自動生成します。
インターフェイス名を確認の上、以下のコマンドを実行してください。
波線の部分は、自分の有線 LAN のインターフェイス名に置き換えてください。
## インストール # pacman -S dhcpcd ## 動作を開始 # systemctl start dhcpcd@enp0s31f6 ~~~~~~~~~ ## PC 起動時に有効にする # systemctl enable dhcpcd@enp0s31f6 ~~~~~~~~~
(無線 LAN) iwd
# iwd - ArchWiki
[パッケージ] iwd
無線 LAN だけを使う場合、iwd 単体で接続できます。
また、iwd は、systemd-networkd などの他のネットワークマネージャと一緒に使う場合もあります。
iwd サービスを起動した後に、iwctl コマンドで操作して接続します。
※ iwctl コマンドは、root ユーザー以外にも、netdev or wheel グループに入っている一般ユーザーでも使用できます。
※ Arch Linux のインストール時に、インストール先のネットワーク設定を行う時は、インストール先の Linux を起動した後に接続処理をする方が良いです。
その場合、あらかじめ iwd パッケージだけは前もってインストールしておいてください。
※ iwd の場合、ネットワークの名前は、wlan* となります。
接続に成功した場合は、/var/lib/iwd ディレクトリに、「<network>.<type>」のファイル名で、ネットワークの設定ファイルが生成されます。
<type> は暗号化のタイプを表しており、通常は psk です。
一度接続されたネットワークの設定は保存され、次回の起動時は、自動で /var/lib/iwd 内のファイルから接続されます。
[パッケージ] iwd
無線 LAN だけを使う場合、iwd 単体で接続できます。
また、iwd は、systemd-networkd などの他のネットワークマネージャと一緒に使う場合もあります。
## インストール # pacman -S iwd
iwd サービスを起動した後に、iwctl コマンドで操作して接続します。
※ iwctl コマンドは、root ユーザー以外にも、netdev or wheel グループに入っている一般ユーザーでも使用できます。
※ Arch Linux のインストール時に、インストール先のネットワーク設定を行う時は、インストール先の Linux を起動した後に接続処理をする方が良いです。
その場合、あらかじめ iwd パッケージだけは前もってインストールしておいてください。
設定ファイル
まずは、/etc/iwd/main.conf ファイルで、iwd の設定を行います。
iwd 単体でネットワークに接続する場合は、iwd 内蔵のネットワーク設定を有効にします。
(デフォルトでは無効です。systemd-networkd と一緒に使う場合などは、無効にします)
(iwd 単体接続で、固定 IP アドレスを指定する場合も、有効にする必要があります)
有効にした場合は、DHCP クライアントも内蔵されているので、別途 dhcpcd などの DHCP クライアントはインストールしなくてもよいです。
他の設定は、必要に応じて、行頭の # を消して、有効にしてください。
NameResolvingService= で、systemd または resolvconf を指定できます。デフォルトは systemd です。
systemd (systemd-resolved) の場合は、別途 systemd-resolved を起動して、設定する必要があります。
resolvconf の場合は、iwd サービスの起動時に、resolvconf (openresolv パッケージ) を使って、/etc/resolv.conf を上書きします。
(2022年2月現在、2回目以降は、/etc/resolv.conf が読み込み専用ファイルであるとして、上書きできない状態になっています。システムログにそれらのエラーが出た場合は、手動でファイルを編集してください)
# mkdir /etc/iwd # nano /etc/iwd/main.conf
[General] ## 内蔵ネットワーク設定有効 EnableNetworkConfiguration=true [Network] ## DNS (resolvconf) #NameResolvingService=resolvconf ## IPv6 有効 #EnableIPv6=true
iwd 単体でネットワークに接続する場合は、iwd 内蔵のネットワーク設定を有効にします。
(デフォルトでは無効です。systemd-networkd と一緒に使う場合などは、無効にします)
(iwd 単体接続で、固定 IP アドレスを指定する場合も、有効にする必要があります)
有効にした場合は、DHCP クライアントも内蔵されているので、別途 dhcpcd などの DHCP クライアントはインストールしなくてもよいです。
他の設定は、必要に応じて、行頭の # を消して、有効にしてください。
DNS
内蔵ネットワーク設定を使う場合は、DNS の管理方法を選択できます。NameResolvingService= で、systemd または resolvconf を指定できます。デフォルトは systemd です。
systemd (systemd-resolved) の場合は、別途 systemd-resolved を起動して、設定する必要があります。
resolvconf の場合は、iwd サービスの起動時に、resolvconf (openresolv パッケージ) を使って、/etc/resolv.conf を上書きします。
(2022年2月現在、2回目以降は、/etc/resolv.conf が読み込み専用ファイルであるとして、上書きできない状態になっています。システムログにそれらのエラーが出た場合は、手動でファイルを編集してください)
接続手順
## 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 内のファイルは、root ユーザーのみ読み書きできる状態なので、一般ユーザーでは、$ ls でファイルリストの表示ができません。
ファイルリストを表示する時は、root ユーザーで操作してください。
ファイルリストを表示する時は、root ユーザーで操作してください。
一度接続されたネットワークの設定は保存され、次回の起動時は、自動で /var/lib/iwd 内のファイルから接続されます。
ネットワーク設定ファイル
/var/lib/iwd 内に、各ネットワークの設定ファイル (<network>.<type>) があります。
このファイルを編集することで、各ネットワークの設定を変更することができます。
このファイルを編集することで、各ネットワークの設定を変更することができます。
[Security] # 暗号化キーの生の文字列 Passphrase=... # 事前共有鍵。最初の接続時に設定される PreSharedKey=... [Settings] # 起動時の自動接続を無効に #Autoconnect=false ## 固定 IP アドレスを設定する場合 (例) #[IPv4] #Address=192.168.0.10 #Gateway=192.168.0.1 #DNS=192.168.0.1
(有線/無線) netctl
# netctl - ArchWiki
パッケージ: netctl, openresolv, dhcpcd, wpa_supplicant
netctl は、Arch Linux 独自の CUI ネットワークマネージャです。
事前にプロファイルのファイルを用意してから、接続します。
Arch Linux 用に作られている分、あまり細かいことを考えずに接続できます。
※ netctl は、resolvconf コマンドを使って、接続時に毎回 /etc/resolv.conf を上書きします。
パッケージ: netctl, openresolv, dhcpcd, wpa_supplicant
netctl は、Arch Linux 独自の CUI ネットワークマネージャです。
事前にプロファイルのファイルを用意してから、接続します。
Arch Linux 用に作られている分、あまり細かいことを考えずに接続できます。
## インストール # pacman -S netctl openresolv dhcpcd wpa_supplicant
- /etc/resolv.conf の設定用に、openresolv を追加。
- DHCP で IP アドレスを自動で取得する場合は、dhcpcd を追加。
- 無線 LAN 接続する場合は、wpa_supplicant を追加。
※ netctl は、resolvconf コマンドを使って、接続時に毎回 /etc/resolv.conf を上書きします。
プロファイルの用意
netctl では、各ネットワークを「プロファイル」として、設定ファイルを用意する必要があります。
プロファイルは、/etc/netctl/ ディレクトリ内に、適当なファイル名で作成します(拡張子はなし)。
サンプルのファイルが /etc/netctl/examples/ 内にあるので、基本的には、このファイルのうち1つをコピーして、編集してます。
例えば、無線 LAN で、DHCP によって IP アドレスを自動取得するなら、
/etc/netctl/examples/wireless-wpa を /etc/netctl/<filename> にコピーします。
また、セキュリティ的には、root のみ読み書きできるようにした方がよいので、
所有者のみ読み書きできるよう、# chmod 600 <filename> とします。
後は、サンプルの内容を元に、テキストを編集します。
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> にコピーします。
また、セキュリティ的には、root のみ読み書きできるようにした方がよいので、
所有者のみ読み書きできるよう、# chmod 600 <filename> とします。
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/mynetwork # chmod 600 /etc/netctl/mynetwork
後は、サンプルの内容を元に、テキストを編集します。
# nano /etc/netctl/mynetwork
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 コマンドでサービスを処理します。
プロファイルの内容を変更した場合は、# netctl reenable <profile> としてください。
起動中のプロファイルを再接続したい場合は、# netctl restart <profile> です。
netctl の場合は、systemctl コマンドを使わずに、netctl コマンドでサービスを処理します。
## サービスを開始 (プロファイルのファイル名を指定) # netctl start mynetwork ~~~~~~~~~~ ## PC 起動時に有効にする # netctl enable mynetwork ~~~~~~~~~
プロファイルの内容を変更した場合は、# netctl reenable <profile> としてください。
起動中のプロファイルを再接続したい場合は、# netctl restart <profile> です。
(有線/無線) systemd-networkd
# systemd-networkd - ArchWiki
systemd-networkd は、systemd パッケージに含まれています。
有線 LAN だけなら、追加で必要なパッケージはありません。
無線 LAN の場合は、iwd または wpa_supplicant パッケージが必要で、無線 LAN の接続は別途行う必要があります。
/etc/systemd/network/ ディレクトリ内に、各ネットワークごとの設定ファイル (*.network) を用意すると、起動時に接続されます。
複数のファイルがある場合は、ファイル名順に読み込まれるので、ファイルの名前で接続順を調節してください。
systemd-networkd は、systemd パッケージに含まれています。
有線 LAN だけなら、追加で必要なパッケージはありません。
無線 LAN の場合は、iwd または wpa_supplicant パッケージが必要で、無線 LAN の接続は別途行う必要があります。
/etc/systemd/network/ ディレクトリ内に、各ネットワークごとの設定ファイル (*.network) を用意すると、起動時に接続されます。
複数のファイルがある場合は、ファイル名順に読み込まれるので、ファイルの名前で接続順を調節してください。
設定ファイル (*.network)
有線/無線ともに共通で、以下のように記述します。
インターフェイス名は、$ networkctl で確認してください。
ただし、無線 LAN で iwd を使う場合は、wlan0 といった名前を使うことになります。
ファイルが用意できたら、systemd-networkd を起動します。
起動中に設定ファイルを変更した場合は、# systemctl restart systemd-networkd で再起動できます。
ただし、無線 LAN の場合は、別途接続する必要があります。
また、/etc/resolv.conf に関しても、別途考える必要があります。
インターフェイス名は、$ networkctl で確認してください。
ただし、無線 LAN で iwd を使う場合は、wlan0 といった名前を使うことになります。
[Match] Name=<インターフェイス名> [Network] ## DHCP による IP アドレス取得 DHCP=ipv4 ## 固定 IP アドレス #Address=192.168.0.10/24 #Gateway=192.168.0.1 #DNS=192.168.0.1
固定 IP アドレスにする場合、DNS= の項目があると、systemd-resolved が必要になります。
固定 IP で DNS も固定にしたい場合は、DNS= の項目は記述せずに、/etc/resolv.conf の方で設定してください。
固定 IP で DNS も固定にしたい場合は、DNS= の項目は記述せずに、/etc/resolv.conf の方で設定してください。
ファイルが用意できたら、systemd-networkd を起動します。
起動中に設定ファイルを変更した場合は、# systemctl restart systemd-networkd で再起動できます。
## サービスの起動 # systemctl start systemd-networkd ## PC 起動時に有効にする # systemctl enable systemd-networkd
ただし、無線 LAN の場合は、別途接続する必要があります。
また、/etc/resolv.conf に関しても、別途考える必要があります。
DNS
systemd-networkd 自体は、/etc/resolv.conf を処理しませんので、デフォルトでは DNS サーバーを手動で設定することになります。
自動で設定したいのであれば、systemd-resolved と一緒に使うことが多いと思います。
上記の /etc/resolv.conf の項目を参考にしてください。
自動で設定したいのであれば、systemd-resolved と一緒に使うことが多いと思います。
上記の /etc/resolv.conf の項目を参考にしてください。
無線 LAN (iwd)
systemd-networkd + iwd で無線 LAN 接続する場合は、iwd の内蔵ネットワーク設定を無効にする必要があります(デフォルト)。
有効になっている場合は、/etc/iwd/main.conf で無効にしてください。
あとは、iwd 単体で接続するのと同じ手順で、iwd サービスを起動した後、iwctl コマンドで接続を行います。
(# systemctl enable iwd も行ってください)
無線 LAN に接続された状態で $ networkctl を実行すると、ネットワークの名前が、wlp* ではなく、wlan0 などとなっているので、*.network の設定ファイルでは、Name=wlan0 というように、ネットワーク名を記述します。
あとは、systemd-networkd を起動して、$ networkctl の結果が、wlan* で routable / configured になっていれば、成功です。
有効になっている場合は、/etc/iwd/main.conf で無効にしてください。
あとは、iwd 単体で接続するのと同じ手順で、iwd サービスを起動した後、iwctl コマンドで接続を行います。
(# systemctl enable iwd も行ってください)
無線 LAN に接続された状態で $ networkctl を実行すると、ネットワークの名前が、wlp* ではなく、wlan0 などとなっているので、*.network の設定ファイルでは、Name=wlan0 というように、ネットワーク名を記述します。
あとは、systemd-networkd を起動して、$ networkctl の結果が、wlan* で routable / configured になっていれば、成功です。
無線 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 が起動されているので、設定ファイルの名前は、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 パッケージには、systemd のサービスファイルも含まれているので、これを使います。@ の後に、インターフェイス名を指定してください。
## 起動時に有効にする # systemctl enable wpa_supplicant@<interface> ~~~~~~~~~~~ ## 実際に動作させる # systemctl start wpa_supplicant@<interface> ~~~~~~~~~~~
wpa_supplicant@.service のファイルでは、以下のようにして wpa_supplicant が起動されているので、設定ファイルの名前は、wpa_supplicant-<interface>.conf にする必要があります。
ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I