Ubuntu22.04に固定IPアドレスを設定する
本記事はUbuntu22.04の有線LANアダプタに固定IPアドレスを設定する方法について説明します。
Ubuntuはインストールの初期設定では、IPアドレスが自動付与される設定になっています。
この設定だと、再起動する度にIPアドレスが変わってしまうため、サーバ機として利用するには不都合です。このため、UbuntuのIPアドレスを固定させます。
1.接続ネットワーク情報の確認
設定値を確定させるために、Ubuntuを接続するLANの情報を確認します。これは、インターネットアクセスルータで確認します。
確認する項目は、以下のとおりです。以下の記事の設定値については、「私の場合は・・」となっているため、ご自身のLAN環境の設定値に置き換えてください。
ほとんどの場合、アクセスルータのLAN側IPアドレスのサブネットマスクは255.255.255.0、または/24となっています。
255.255.255.0と/24は同じ意味です。この場合、LANに接続するデバイス(PC、スマートフォン、タブレット、etc)のIPアドレス(192.168.0.1)は、"."(ドット)で区切られた4つの数字のうち、前3つ(192.168.0)は固定、後ろの1つは1〜254の値に設定する必要があります。
また、同じIPアドレスを複数のデバイスに設定することはできまん。このため、アクセスルータで使われているIPアドレス(192.168.0.1)は使えません。
DHCPサーバは、固定IPアドレスが設定されていないデバイスがLANに接続されたときに、IPアドレスを自動割当するサーバです。自動割当に使われるIPアドレス(192.168.0.2〜192.168.0.32)は、重複する可能性があるので、固定IPには使用できません。
通常、アクセスルータがDHCPサーバを兼ねます。自動割当されるIPアドレスの範囲は、アクセスルータの設定を確認してください。
ルータによっては、初期設定で、自身のIPアドレス以外の全てのIPアドレスを自動割当の対象としていることがあります。このような場合は、固定IPアドレスを設定できるよう、自動割当するIPアドレスの範囲を変更してください。
2.ネットワークアダプタのデバイス名を確認する
固定IPアドレスを設定するUbuntu PCの有線LANアダプタのデバイス名を確認します。Ubuntu22.04の場合、有線LANアダプタのアドレスは"enp<数字>s<数字>"の命名規則になっているようです。
デバイス名は"ip addr" コマンドで確認します。
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: enp89s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 1c:69:7a:a2:21:45 brd ff:ff:ff:ff:ff:ff
私のPCの場合、"enp89s0"が有線LANのネットワークアダプタのデバイス名になっているので、以下、このデバイス名で説明します。適宜ご自身のPCの有線LANネットワークアダプタのデバイス名に読み替えてください。
3.固定IPアドレスを設定する
IPアドレスの設定は、/etc/netplanに拡張子".yaml"の設定ファイルを保存することで行います。
まずは、どのような設定ファイルが保存されているか確認します。
$ cd /etc/netplan
$ ls -l
-rw-r--r-- 1 root root 104 4月 19 19:09 01-network-manager-all.yaml
設定ファイルの中身を確認
$ sudo cat 01-network-manager-all.yaml.bak
Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
YAML形式の設定ファイルになっています。"network:"と"version:2"は固定です。"renderer: "で指定されている"NetworkManager"は、PCの有線/無線LANアダプタにIPアドレスを自動設定するツールです。
何かあった時に後で設定を元に戻せるように、ファイル名を変えて初期設定ファイルを残しておきます。
$ cd /etc/netplan
$ sudo mv 01-network-manager-all.yaml 01-network-manager-all.yaml.bak
$ ls -l
-rw-r--r-- 1 root root 104 4月 19 19:09 01-network-manager-all.yaml.bak
つづいて、nanoなどのテキストエディタを使って、固定IPの設定ファイルを作成します。ファイル名の拡張子は、"yaml"としてください。これ以外の拡張子のファイルは設定を適用する際に無視されます。
ここでは、ファイル名を"100-enp89s0-fixed.yaml"として説明します。
$ sudo nano 100-enp89s0-fixed.yaml
設定ファイル"/etc/netplan/100-enp89s0-fixed.yaml"の中身
network:
version: 2
renderer: networkd
ethernets:
enp89s0:
addresses: [192.168.0.100/24]
nameservers:
addresses: [8.8.8.8]
routes:
- to: default
via: 192.168.0.1
・yamlは、インデント(段落)に意味があるため、同じレベルにくるべき項目の行頭位置がずれるとエラーになります。行頭の空白を消さないでください。
・固定ipを設定するときは、rendererで設定ツールを"networkd"に指定します。
・ethernets以下は、有線LANアダプタの設定項目です。
・enp89s0以下は、このデバイスのネットワーク設定です。適宜ご自身の有線LANのデバイス名に書き換えてください。
・addressesが設定したい固定IPアドレスです。ここでは192.168.0.100、サブネットマスク24ビットの固定IPアドレスを割り当てています。アドレスは適宜ご自身のLAN環境に合わせて書き換えてください。なお、"[]"(カギ括弧)でくくられているのは、値がリスト形式であることを意味していて、","(カンマ)で区切って複数のIPアドレスを設定することも可能です。ただし、特殊な場合をのぞき、1つのデバイスに対して固定IPアドレスは1つしか設定しません。
・nameservers以下は、キャッシュDNSの設定で、addressesでキャッシュDNSのIPアドレスを指定しています。リスト形式のオブジェクトなのでキャッシュDNSは","(カンマ)区切りで複数設定できます。"8.8.8.8"は、googleがインターネットで公開しているキャッシュDNSサーバのIPアドレスです。このキャッシュDNSサーバは、インターネットに接続していれば誰でも利用可能です。必要に応じ、ご利用のインターネットサービスプロバイダのキャッシュDNSに書き換えるなどしてください。
・routes以下は、IPネットワークの経路設定(ルーティング設定)です。toの値がdefaultとなっているのは、"経路設定されていない宛先ネットワーク全てに対して"という意味です。viaの192.168.0.1はアクセスルータのLANのIPアドレスです。つまりここでは、「LANから外に出る場合はすべてルータを経由してアクセスする」という意味になります。192.168.0.1については、ご自身のLAN環境の設定値に適宜書き換えてください。
設定ファイルの保存が終わったらnetplanコマンドを実行して設定内容を反映させます。
$ sudo netplan apply
なお、/etc/netplan配下の拡張子".yaml"の設定ファイルは、アルファベット順に読み込まれ、設定反映されていきます。拡張子".yaml"以外のファイルは無視されます。拡張子".yaml"ファイルはすべて設定ファイルとして認識されますので、このディレクトリにファイルを保存する際は注意して下さい。
ip addrコマンドで確認。
$ ip addr
略
2: enp89s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 1c:69:7a:a2:21:45 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.100/24 brd 192.168.0.255 scope global enp89s0
valid_lft forever preferred_lft forever
inet6 fe80::1e69:7aff:fea2:2145/64 scope link
valid_lft forever preferred_lft forever
略
無事、enp89s0のipアドレスが192.168.100に設定されました。
ついでに、インターネット接続がうまくいくかどうかwww.google.co.jpにpingをうって確かめてみます。
$ ping www.google.co.jp
PING www.google.co.jp (172.217.26.227) 56(84) bytes of data.
64 bytes from nrt12s51-in-f3.1e100.net (172.217.26.227): icmp_seq=1 ttl=116 time=6.61 ms
無事pingが帰ってきたら、インターネット接続、キャッシュDNSのホスト名解決ともにうまくいったということになります。
うまくいかないときなど、設定を元に戻したいときは、上記で作成した固定IPアドレスを設定するための設定ファイルを消すか、拡張子を".yaml"以外に変更、初期設定ファイルのファイル名を拡張子".yaml"のファイル名に戻し、netplanコマンドを再実行します。
$ cd /etc/netplan
$ sudo mv 01-network-manager-all.yaml.bak 01-network-manager-all.yaml
$ sudo mv 100-enp89s0-fixed.yaml 100-enp89s0-fixed.yaml.bak
$ sudo netplan apply
この記事が気に入ったらサポートをしてみませんか?