Ubuntu 20.04.4 LTS(Server版)で固定IPの設定


Ubuntu 20.04.4 LTSはインストール時にIPの設定を行う。DHCPサーバからIPを取得する設定にしたが、後から固定IPにする必要が生じたため、その際に設定した方法をメモする。

状況

  • VMware Workstation上にUbuntu 20.04.4 LTSのサーバ版をインストール
  • 初期設定でDHCPサーバからIPを取得するように設定
  • 自宅のWAN側グローバルIPアドレスに届いたHTTPリクエストを今回の仮想サーバ(Ubuntu 20.04.4 LTS)にポートフォワーディングをしたいのだが、その際アドレスが動いてしまっては困るため、固定IPの設定を行いたい

使用した方法

  1. 現在のネットワーク設定ファイルを無効化
  2. 目的の設定を記述した新規設定ファイルを/etc/netplan/に配置
  3. 新規設定ファイルを有効化

手順

1. ネットワーク設定ファイルの無効化

Ubuntu 20.04.4 LTSのサーバ版をインストールすると、ネットワーク設定ファイルが/etc/netplan/00-installer-config.yamlに設置されるので、catコマンドで内容を確認。

00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      dhcp4: true
  version: 2

上記4行目の「ens33」はネットワークインターフェース名であり、新たに設定ファイルを作成する際に必要となるため、メモしておくとよい。また、ens33のタブにdhcp4: trueの記載からDHCPサーバからIPを取得していることが確認できる。

この設定ファイルを無効化するには、設定ファイルを削除するかファイル名を変更する。今回はファイル名を変更して無効化する方法を使用した。

~$ sudo mv 00-installer-config.yaml 00-installer-config.yaml.disabled

cdコマンドで対象のファイルがある場所へ移動してからコマンドを実行

2. 新しい設定ファイルを作成

sudoeditコマンドを使用し、99-netcfg.yamlという設定ファイルを新規作成して内容を記述する。

~$ sudoedit 99-netcfg.yaml 

以下は自分が記述した固定IPの設定例である。

99-netcfg.yaml
network:
  version: 2
    ethernets:
      ens33:                           // ネットワークインターフェース名 
        addresses: [192.168.1.159/24]  // IPアドレス(CIDR記法)
        gateway4: 192.168.1.1          // ゲートウェイ
        nameservers:
          addresses: [192.168.1.1]     // DNSサーバ
          search: []
        optional: true

3. 設定を反映させる

2.で作成した設定を反映させるには以下のコマンドを実行する。

~$ sudo netplan apply

何も出力されなければ正常に反映されている。
再起動を行い、ip aコマンドなどでIPが固定されているかを確認するとよい。

補足:/etc/netplan/に設定ファイル(YAML)が複数ある場合

設定ファイルが複数ある場合には、ファイル名の辞書順で設定がマージされる。
設定項目が重複する場合、ファイル名の辞書順で上書きされていく。00-...yaml, 10-...yaml, 20-...yamlとあった場合、20-...yamlの設定が反映されることになる。