Ubuntu20.04で固定IPアドレスを設定する

家庭用ルータは一般的に、接続してきた機器に対してプライベートIPアドレス(以下、IPアドレス)を動的に割り振る。ルータの電源が何らかの原因で切れて再起動した際に家庭内の機器のIPアドレスは変更してしまう。今回はLinuxマシン(Ubuntu)にssh接続するためにIPアドレスを固定する。

現在のIPアドレスとネットワークインタフェースを確認する

IPアドレスとネットワークインタフェースの確認にはipコマンドを使用する

ip addr show

1: lo: ...
2: enp0s316f6: ...
3: wlp3s0: ...
  inet 192.168.11.9/24 brd ...

結果からUbuntuには192.168.11.9が割り振られており、無線LANのネットワークインタフェースはwlp3s0だとわかった。

設定ファイルの編集

デフォルトのネットワーク設定として/etc/netplanディレクトリにyamlファイルが配置されている。
01-network-manager-all.yamlとして保存されており内容は次のようなもの

network:
  version: 2
  renderer: NetworkManager

今回はオリジナルファイルは残しておいて新しく設定ファイルを作成する

cp 01-network-manager-all.yaml 01-network-manager-all.yaml.disabled

固定IPアドレスを192.168.11.100に設定するyamlファイルは以下のようになった

network:
  version: 2
  renderer: NetworkManager
  wifis:
    wlp3s0:
      optional: true
      dhcp4: false
      addresses: [192.168.11.100/24]
      gateway4: 192.168.11.1
      nameservers:
        addresses: [192.168.11.1, 8.8.8.8]
      access-points:
        "wifiのSSID":
          password: "wifiのパスワード"

最後にnetplanコマンドで設定を反映する

sudo netplan apply

つまづきポイント

固定IPアドレスを設定する際は設定ファイルのrenderernetworkdに変更する。NetworkManagerのまま設定しており30分ほど時間を溶かした、、

デスクトップUbuntuの場合はrendererNetworkManagerを指定しないといけないっぽい。networkdにするとIPアドレスは固定されるがネットワークに繋がらなくなってしまう。
nameserversの設定でルータのアドレスと8.8.8.8を指定することで固定IPアドレスでネットにもつながった

参考