Help us understand the problem. What is going on with this article?

Ubuntu 20.04 LTSで固定IPアドレスの設定

Ubuntu 20.04 LTS Serverでの固定IPアドレス設定。
17.10から、IPアドレスの変更が/etc/network/interfacesをいじる方式からNetplanへ変更になっているのでメモ。(18.04 LTSも)

Netplan | Backend-agnostic network configuration in YAML

IPアドレス変更

OSインストール直後、設定ファイルのパスには、
(Ubuntu 20.04LTSの場合)
Live DVDからインストールした場合は/etc/netplan/00-installer-config.yaml

(Ubuntu 18.04LTSの場合)
Live CDからインストールした場合は/etc/netplan/50-cloud-init.yaml
mini.isoからインストールした場合は/etc/netplan/01-netcfg.yaml

が作成されてますが、【Ubuntu】 /etc/netplan/50-cloud-init.yamlを編集するの止めろにある通り、これらのファイルは触らない方が良いです。

公式サイトのドキュメント( https://ubuntu.com/server/docs/network-configuration )によれば、/etc/netplan/99_config.yaml を作成し設定を上書きするのが正式なようです。(コメントにてご指摘ありがとうございます。)

/etc/netplan/99_config.yaml を作成しIPアドレスを設定します。
以下は設定例。

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.1.70/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

KVMやLXDなどで、物理マシンの外に公開するサーバーを建てたい場合にはブリッジの設定をすると思う。その場合には下記のように記述します。(そして仮想nicをbr0に差し込む)

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [eth0]
      dhcp4: false
      dhcp6: false
      addresses: [192.168.1.70/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
      parameters:
        forward-delay: 0
        stp: false
      optional: true

IPアドレス設定変更の反映

netplan applyを実行して反映します。再起動不要です。

$ sudo netplan apply

tryコマンド

リモートから設定を変更するときに自信があるならばapplyで一気に反映させてもいいけど、失敗して疎通不能になるのは困る場合、反映後指定秒数以内に[Enter]が押せなかったら、元の設定に戻してくれる機能がある。(但し、ブリッジやボンディングには対応していない。timeoutを設定しない時のデフォルトは120秒)
IPアドレスを変更するときなどは、IPアドレスを変えて再度sshしても別な端末になりEnterが押せないので、tmux等仮想端末上からnetplanコマンドを叩いてssh再接続後アタッチ(tmux a)しなおすのが良いかも。

$ sudo netplan try --timeout 10
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in  1 seconds
Reverting.

IPアドレスの確認

ifconfigコマンドがデフォルトでインストールされなくなったので、ipコマンドで確認。

$ ip addr

(2020-05-28 自分用にメモ追記)
ネットワークの状態を詳細に確認するなら、下記コマンドが便利。

$ networkctl status -a

フックスクリプト

interfacesファイルの頃は、pre-up , up , down , post-downにコマンドを書いていたが、Netplanにはそういった機能は無く、例えばrendererにnetworkdを指定した場合、networkdが呼び出すnetworkd-dispatcherにそういった設定を追加する。

sudo apt install -y networkd-dispatcher
sudo mv ap_stop.sh /etc/networkd-dispatcher/routable.d/
sudo mv ap_start.sh /etc/networkd-dispatcher/off.d/

(参考)https://netplan.io/faq#use-pre-up-post-up-etc-hook-scripts
(参考)https://roy-n-roy.github.io/Raspberry%20Pi/Network/

参考

How To Configure Static IP Address on Ubuntu 20.04/18.04/19.10
Network - Configuration | Server documentation | Ubuntu
Netplan reference (←WiFi、ブリッジの設定等もある)
【Ubuntu】 /etc/netplan/50-cloud-init.yamlを編集するの止めろ

zen3
Webシステムの開発をしています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした