vagrant上のarchlinuxで、static IPが設定されなくなった
2023年4月頃に、vagrant上の、archlinuxを再構築したところ、ホストオンリーアダプタ経由でSSHログインできなくなった。
vagrant sshでログインして、調べることにした。 ホストオンリーアダプタに、指定したIPアドレスが設定されていない。 対象のデバイス名が、これまでのenp0s8ではなく、eth1になっている。 どうやら、ネットワーク管理方法が、変更になったようだ。
プロセスリストを確認すると、systemd-networkdというものがいる。 systemd-netoworkdについて調べる。 /etc/systemd/network/の下に、2つのファイルがある。
- 80-dhcp.network
- eth1.network
まずは、eth1.networkを見る。 eth1にスタティックIPを設定する内容がある。問題ない。
80-dhcp.networkを見る。 eth*に、DHCPでIPを設定する内容にみえる。 eth*には、eth1も含んでいるので、eth1にもDHCPでIPが割り当てられているのではないか。 試しに、以下のように書き換えて、再起動するとつながる。
- 80-dhcp.network
[Match] Name=eth0 [Network] DHCP=ipv4
毎回修正するのは、つらいので、Varantfileにこの処理を書き構築時に済ませるようにした。
- Vagrantfile
- ネットワークの再起動があるので、最後に書いた方が良さげです。
config.vm.provision "shell", inline: <<-SHELL sed -i -e "s/Name=eth\*/Name=eth0/" /etc/systemd/network/80-dhcp.network systemctl restart systemd-networkd SHELL
- Windows10
- VirtualBox 7.0.6
- vagrant 2.3.4
- archlinux/archlinux 20230501.147139