ウェブサイト検索

Arch Linux で静的および動的 IP アドレスを構成する


この簡単なチュートリアルでは、Arch Linux および EndeavourOS や Manjaro Linux などの派生製品で静的および動的 IP アドレスを構成する方法について説明します。

Arch Linux で静的 IP アドレスを構成する

静的 IP アドレスは 2 つの方法で設定できます。両方見てみます。

方法 1: netctl を使用して Arch Linux に静的 IP アドレスを割り当てる

Netctl は、ネットワーク プロファイル マネージャーの systemd サービスの状態をイントロスペクトし、制御するために使用できるコマンドライン ユーティリティです。

すでにご存じのとおり、サンプル ネットワーク構成ファイルは Arch Linux の /etc/netctl/examples/ の場所に保存されます。

ls /etc/netctl/examples/

サンプル出力:

bonding macvlan-dhcp tunnel wireless-wep
bridge macvlan-static tuntap wireless-wpa
ethernet-custom mobile_ppp vlan-dhcp wireless-wpa-config
ethernet-dhcp openvswitch vlan-static wireless-wpa-configsection
ethernet-static pppoe wireless-open wireless-wpa-static

上記の出力にあるように、 ethernet-static ファイルと ethernet-dhcp ファイルはサンプル イーサネット プロファイルです。その場所のワイヤレス ネットワーク プロファイルも表示されます。

まず、ネットワーク カード名を見つけます。これを行うには、次を実行します。

ip link

サンプル出力:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
 link/ether 08:00:27:db:14:7a brd ff:ff:ff:ff:ff:ff

上記の出力にあるように、ネットワーク カード名は enp0s3 です。

次に、以下に示すように、サンプル ネットワーク カード プロファイルを /etc/netctl/examples/ ディレクトリから /etc/netctl/ ディレクトリにコピーします。

sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/enp0s3

enp0s3 をネットワーク カード名に置き換えます。

次に、ネットワーク構成ファイルを編集します。

sudo nano /etc/netctl/enp0s3

以下に示すように、IP アドレス、ネットマスク、ゲートウェイ、および DNS サーバーの詳細を入力します。

Description='A basic static ethernet connection'
Interface=enp0s3
Connection=ethernet
IP=static
Address=('192.168.1.102/24')
Gateway=('192.168.1.1')
DNS=('8.8.8.8' '8.8.4.4')

上記の設定ファイル内の eth0 を実際のネットワーク カード名(つまり、この場合は enp0s3)に置き換える必要があります。ファイルを保存して閉じます。

次のコマンドを使用して、再起動するたびにネットワーク カードが自動的に起動するようにします。

sudo netctl enable enp0s3

最後に、以下に示すようにネットワーク プロファイルを開始します。

sudo netctl start enp0s3

dhcp サービスを停止して無効にします。

sudo systemctl stop dhcpcd
sudo systemctl disable dhcpcd

変更を有効にするには、システムを再起動します。

次に、次のコマンドを使用して静的 IP アドレスを確認します。

ip addr

出力例は次のようになります。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 link/ether 08:00:27:db:14:7a brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.102/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::367c:d479:4d21:cede/64 scope link 
 valid_lft forever preferred_lft forever

上の出力にあるように、静的 IP アドレス (192.168.1.102) がネットワーク カードに割り当てられています。

方法 2: systemd を使用して Arch Linux で静的 IP アドレスを設定する

systemd は、Linux オペレーティング システム用のシステムおよびサービス マネージャーです。次に、systemd を使用して静的 IP アドレスを構成する方法を見てみましょう。

以下のようなネットワークプロファイルを作成します。

sudo nano /etc/systemd/network/enp0s3.network

enp0s3 をネットワーク カードの名前に置き換えます。そして、次の行を追加します。

[Match]
Name=enp0s3

[Network]
Address=192.168.1.102/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=8.8.4.4

ファイルを保存して閉じます。

次に、netctl を無効にする必要があります。 netctl 関連で何が有効になっているかを確認するには、次のコマンドを実行します。

sudo systemctl list-unit-files

netctl 関連のものをすべて特定したら、それらをすべて無効にします。システムで次のサービスが有効になっていたため、以下に示すように無効にしました。

sudo systemctl disable netctl@enp0s3.service

そして、次のコマンドを使用して netctl パッケージを Arch Linux から削除します。

sudo pacman -Rns netctl

また、dhcp サービスを停止して無効にすることを忘れないでください。

sudo systemctl stop dhcpcd
sudo systemctl disable dhcpcd

次に、以下に示すように systemd-networkd サービスを有効にして開始します。

sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd

システムを再起動します。そして、次のコマンドを使用して、IP アドレスが正しく割り当てられているかどうかを確認します。

ip addr

これで、静的 IP アドレスを構成する方法がわかりました。次に、ネットワーク カードに動的 IP アドレスを割り当てる方法を見ていきます。

Netctl を使用して Arch Linux で動的 IP アドレスを構成する

まず、netctl がまだインストールされていない場合はインストールします。

sudo pacman -S netctl

以下に示すように、ethernet-dhcp プロファイルを /etc/netctl/examples/ ディレクトリから /etc/netctl/ ディレクトリにコピーします。

sudo cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/enp0s3

/etc/netctl/enp0s3 ファイルを編集します。

sudo vi /etc/netctl/enp0s3

eth0 を実際のネットワーク インターフェイス名 (enp0s3) に置き換えます。

Description='A basic dhcp ethernet connection'
Interface=enps03
Connection=ethernet
IP=dhcp
#DHCPClient=dhcpcd
#DHCPReleaseOnStop=no
## for DHCPv6
#IP6=dhcp
#DHCP6Client=dhclient
## for IPv6 autoconfiguration
#IP6=stateless

ファイルを保存して閉じます。

dhcpcd サービスを有効にして開始します。

sudo systemctl enable dhcpcd
sudo systemctl start dhcpcd

システムを再起動します。次のコマンドを使用して IP アドレスを確認します。

ip addr

お役に立てれば。

関連記事