今使用している Ubuntu 20.04 LTS のデスクトップ版で固定IPアドレスを設定する方法。
Ubuntu デスクトップは、デフォルトでDHCPサーバーから取得したIPアドレスが自動設定されるため、再起動すると別のIPアドレスに変わることもある。
クライアントPCでUbuntuのIPアドレスを接続先として設定している場合、Ubuntu起動する度のIPアドレスを確認し、設定を更新する必要性が出てきてしまい、大変面倒。
なので、サーバーとして使用する場合、Ubuntuデスクトップに固定IPアドレス(Static IP address)を設定したほうが良い。
本当はインストールの時に設定できたらしいんだけど、知らなかったので、今回は後から設定。。。
以前は /etc/network/interfaces
ファイルを修正して固定IPアドレスを設定してたようだが、今は netplan を使って固定IPアドレスを設定する。
- ネットワークディレクトリを確認
- ネットワーク設定ファイルをコピー
- コピーしたネットワーク設定ファイルを編集
- ネットワーク設定を反映させる
netplan ディレクトリ を確認
まずは、cd /etc/netplan
で netplan ディレクトリを確認する。
Ctrl + Alt + T でターミナルを開き、cd /etc/netplan
netplan ディレクトリ(configuration file が入っている)の中に。
ip a
でネットワークアダプタを確認する。
XXX:/etc/netplan$ ip a
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 XXX.XXX.XXX.XXX/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:0b:05:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.114/24 brd 192.168.110.1 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 feXX::XXX:Xdff:feXb:XXX/64 scope link
valid_lft forever preferred_lft forever
"lo" loop back。今回は関係ない。
見るところは "2: eth0" 。このPCネットワークアダプターは "eth0"。これはPCやネットワークによって違う。
inet 192.168.1.114/24 は自動に割り振られたIPアドレス。/24はプレフィックス。
上記だと、192.168.1までがネットワーク部で、114がホスト部という事になる。
サブネットマスクは 225.225.225.0。
Linux で IP アドレスを確認する方法をメモったので、 ついでにWindowsのも書き留めておく。 コマンドプロンプトを使ってIPアドレスの情報を取得 Win + R で "Run" ウィンドウを開く。 検索欄に …
ファイルの場所を確認
ls
でファイルの場所を確認する。
XXX:/etc/netplan$ ls
01-netcfg.yaml.save 01-network-manager-all.yaml
確認すると、必要な情報は "01-network-manager-all.yaml" ファイルの中にあるらしい。
ネットワーク設定ファイルを開いて情報を更新
nano エディタでyamlファイルを開く。
sodo nano 01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
versionは 2nd ver. で、renderer は NetworkManager。
ここに情報を入れていく。
スペースを2個あけて(大事)、ethernets:
と記載。
アダプター名を入れる
改行して、スペースをさらに2個あけ、アダプター名を入れる。
アダプター名は、先に確認していた "eth0" の事。
dhep を止める
改行して、スペースをさらに2個あけ、 dhcp4: no
と入れる(もしくはfalse。dhcpが自動でIPアドレスを割り当てないように、というコマンド。
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: no
固定IPアドレスを割り当てる
次に指定したい固定IPアドレスを入れるが、ここでの注意点2つ。
- グローバルIPアドレスは使わない
- すでに使われているIPアドレスは使わない
グローバルIPアドレスは使わない
インテ-ネットに出てよいIPアドレスとローカル・エリア・ネットワーク(LAN)内でしか使えないIPアドレスがあり、範囲が決まっている。
ローカルでセットする場合は、通常ローカルIPアドレス群を使う。
一般家庭なら、ルーターのネットワーク内で指定するので、ルーターのIPアドレスを確認してからセットする。
例えばルーターが192.168.12.1だった場合は、192.168.12.2~192.168.12.254の範囲内で好きなものを割り当てて良い。
ネットワーク部は同じにして、ホスト部を変更する。他と被らないように。サブマスクは同じに。
サブマスク等の説明は下記参照。
Linux で IP アドレスを確認する方法をメモったので、 ついでにWindowsのも書き留めておく。 コマンドプロンプトを使ってIPアドレスの情報を取得 Win + R で "Run" ウィンドウを開く。 検索欄に …
既に使われているIPアドレスを使わない
すでに使われているIPアドレスを使うと競合して切断されてしまうので、ping
コマンドで確認してから設定する。
リモート接続がうまくいかない場合、まずはPINGコマンドでネットワークの疎通を確認してみる。 PING コマンドとは PING コマンドは、ping と呼ばれる TCP/IPにおける基本プログラムで、通信相手までネットワ …
例えば、 192.168.1.2
が使われているかどうか確認する場合、
ping -c 4 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=3.55 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=128 time=7.28 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=128 time=2.34 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=128 time=4.66 ms
--- 192.168.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 2.347/4.461/7.280/1.822 ms
上記だと反応があるので、同じネットワーク内の他のデバイスで使われているということ。
これを例えば、 192.168.1.4
が使われているかどうか確認すると、
ping -c 4 192.168.1.4
PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data.
64 bytes from 192.168.1.4: Destination Host Unreachable
64 bytes from 192.168.1.4: Destination Host Unreachable
64 bytes from 192.168.1.4: Destination Host Unreachable
64 bytes from 192.168.1.4: Destination Host Unreachable
--- 192.168.1.2 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3058ms
pipe 4
"unreachable" と出たので、誰も使っておらず、このアドレスを使用しても大丈夫、という事。
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
addresses: [192.168.1.4/24]
Gateway は default routes で
この次は gateway の指定になるが、先日 gateway4 で警告がでたので、
Ubuntu 22.04 LTS で固定IPアドレスを設定しようとした時、gateway4に対して下記警告が。 ** (generate:XXXX) WARNING ** XX:XX:XX.XXX:`gateway4` …
推奨されている default routes で指定することに。
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
addresses: [192.168.1.4/24]
routes:
- to: default
Gateway のはホストOSと同じでOK
ホストOSのGatewayは、W + R -> cmd でコマンドプロンプトを開き、 "cmd" と入力。
Ethernet adapter イーサネット:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : feXX::dXXc:ebXX:dXX:aXXa%XX
IPv4 Address. . . . . . . . . . . : XXX.XXX.XXX.XXX
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : XXX.XXX.XXX.XXX
DNS サーバの指定
name serverを指定する。DNS サーバの IP アドレスをカンマ区切りで複数指定できる。
ここではとりあえず Google Public DNS の 8.8.8.8, 8.8.4.4
を指定すればOK。
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
addresses: [192.168.1.4/24]
routes:
- to: default
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
情報を保存してエディタを閉じる
Ctrl + X で Exit。
"Save modified buffer?" と聞かれるので、"Y" (Yes) を押して Enter。yaml ファイルが上書きされた。
netplan をアプライ
sudo netplan try
で変更を試みる。
XXX:/etc/netppan$ sudo netplan try
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in XX seconds
問題なさそうなので Enter を押す。Configuration が アクセプトされる。
OK そうなので、 sudo netplan apply
で適応する。
XXX:/etc/netppan$ sudo netplan apply
ip a
で確認すると、
XXX:/etc/netplan$ ip a
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 XXX.XXX.XXX.XXX/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:0b:05:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.4/24 brd 192.168.110.1 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 feXX::XXX:Xdff:feXb:XXX/64 scope link
valid_lft forever preferred_lft forever
"eth0" の inet に記載されている IPv4 が、設定した値に変更されていた。
References
Ubuntu 20.04 LTSのデスクトップ版で「固定IPアドレス」を設定する方法を、初心者にも分かりやすく解説します。 Ubuntuをインストールした人の中には、「Window...
ubuntuのプライベートIPアドレスをコマンドラインから固定しました。 ディストリビューションのバージョンが新しくなると設定方法も変化しますね。
LinuxのUbuntuでIPアドレスを設定する方法について紹介します。DHCPから自動でIPアドレスを割り振ってもらう方法や、固定で好きなIPアドレスを設定する方法をまとめました。UbuntuでIPアドレスを変更する前にIPアドレスの設定