Main Logo
Ubuntu 24.04でnetplan固定IPを設定する方法(CUI・安全手順)

Ubuntu 24.04でnetplan固定IPを設定する方法(CUI・安全手順)

Ubuntu 24.04のnetplanで固定IPを設定する手順を解説。netplan try/applyや確認コマンドまで網羅。

NIC名確認、99-custom.yaml編集、netplan try→apply、再起動後の確認までをまとめる。


Ubuntu 24.04でnetplan固定IPを設定する方法(CUI・安全手順)

Ubuntu 24.04ではネットワーク設定は netplan が標準です。
本記事では 1枚NIC / CUI環境 を前提に、安全に固定IPを設定する手順を解説します。


対象環境

  • Ubuntu 24.04
  • 有線NIC:1枚
  • GUIなし(CUI)

1. NIC名を確認する

まず、インターフェース名を確認します。

ip a
出力例
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    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
    link/ether 08:00:27:aa:bb:cc brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.50/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 86000sec preferred_lft 86000sec

3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
    link/ether 08:00:27:dd:ee:ff brd ff:ff:ff:ff:ff:ff

4: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default
    link/ether 3c:52:82:11:22:33 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.23/24 brd 10.0.0.255 scope global dynamic wlp2s0
       valid_lft 7200sec preferred_lft 7200sec
    inet6 fe80::3e52:82ff:fe11:2233/64 scope link
       valid_lft forever preferred_lft forever
Note

wifi:wlから始まる

有線LAN:en/ethから始まる

ループバック:loから始まる

本記事では enp0s3 を例に進めます。


2. netplan設定ファイルを確認

/etc/netplan/ にある設定ファイルを確認します。

ls /etc/netplan/

多くの環境では以下が存在します。ここに新たな設定を追加することで固定ipアドレスの設定ができます。 試しに中を見てみてください。

cat /etc/netplan/50-cloud-init.yaml
例1
network:
  version: 2
  ethernets:
    eth0:
      match:
        macaddress: "f3:1a:6e:cb:1b:6e"
      addresses:
      - "160.251.111.11/23"
      - "2400:8500:1135:9203:160:251:237:22/64"
      nameservers:
        addresses:
        - 150.95.10.8
        - 150.95.10.9
        - 2400:8500:8212:222:310:25:11:8
        - 2400:8500:7703:502:150:95:10:9
      accept-ra: false
      set-name: "eth0"
      mtu: 1500
      routes:
      - to: "0.0.0.0/0"
        via: "160.251.111.1"
      - to: "::/0"
        via: "2400:8500:1135:9203::1"
例2
network:
  version: 2
  ethernets:
    eno1:
      dhcp4: true

3. netplan設定ファイルを編集

非推奨

50-cloud-init.yamlをそのまま修正しても問題なく使えますが、非推奨です。 50-cloud-init.yamlは cloud-init により自動生成されるファイル です。 再起動や再プロビジョニング時に上書きされる可能性があるため、 新たにファイルを作成してください。

ファイル作成時のファイル名規則

netplan内のyamlファイル名に2ルールがあります。

  • 先頭数字
  • yaml拡張子

また、01~99まで数字の小さい順番に読み込まれていきます。文字だけでも読み込まれるが... そのため、同じNIC(インターフェース名)が記入されている場合数字の大きい方が適用されます。

ファイル名例
00-installer-config.yaml
01-netcfg.yaml
50-cloud-init.yaml
99-custom.yaml
設定の競合

仮に99-custom.yamlに全ての設定を記入した場合。00~98までの設定が無効になり、99-custom.yamlの設定が有効になる。


4. 固定IPの設定を書く

yamlファイルの構成例です。

sudo nano /etc/netplan/99-custom.yaml
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
nameservers

8.8.8.8や8.8.4.4はgoogleのDNSです、適切なaddressに置き換えてください。

各項目の意味

  • dhcp4: no → DHCPを無効化
  • addresses → 固定IP
  • routes → デフォルトゲートウェイ
  • nameservers → DNSサーバ
Warning

インデントは スペース2つ。Tabは使用不可です。


5. 設定内容を確認(事前チェック)

sudo netplan get

エラーが出ず、yamlの設定情報だけ出力されれば構文エラーが無く動作します。
エラーが出た場合はインデントとNIC名を確認します。

エラー例

Permissionsエラー

例1
Permissions for /etc/netplan/99-custom.yaml are too open. Netplan configuration should NOT be accessible by others.

root 以外が読める状態は禁止する必要があります。

修正
sudo chmod 600 /etc/netplan/99-custom.yaml

unknown keyエラー

Error in network definition: unknown key '...'

タイピング間違え unknown keyはたぶんタイピングの間違えです。


6. テスト適用(必須)

SSH切断事故を防ぐため、必ず先に実行します。

sudo netplan try

挙動

  • 一時的に設定が反映される
  • 通信できるか確認
  • 問題なければ Enter
  • 問題があれば何もしない(自動ロールバック)
Note

try は確認用です。永続化されません。


7. 本適用

sudo netplan apply

これを実行して初めて、再起動後も設定が維持されます。


8. 再起動後の確認項目

設定の確認をします。

  • ipaddressの確認
  • デフォルトゲートウェイ確認
  • DNS確認
  • 疎通確認

確認コマンド

リブート
sudo reboot

ipaddressの確認

設定したipaddressになっているか?

ip a show enp0s3
指定したIPになっているか?
192.168.1.100

デフォルトゲートウェイ確認

ip route
デフォルトゲートウェイが設定値になっているか?
default via 192.168.1.1 dev enp0s3

DNS確認

resolvectl status

疎通確認

ping 192.168.1.1     # ゲートウェイ
ping 8.8.8.8         # 外部IP
ping google.com      # DNS確認

よくあるトラブル

  • インデントミス(Tab使用)
  • NIC名の誤り
  • ゲートウェイIPの間違い
  • IPアドレスの重複
  • 既存DHCP設定との競合

まとめ

固定ip設定はnetplanを使用します。yaml形式での入力でありり少し間違えると動作しないのでnetplan setでも変更できるが結局何が一番一番いいのだろうか?

  • Ubuntu 24.04の固定IP設定はnetplanで修正 netplan get-> netplan try -> netplan apply の順番が重要
  • apply しないと再起動後に維持されない
  • 50-cloud-init.yaml を編集は基本しない。

関連記事

コメントを読み込み中...