ip addr add 192.0.2.10/24 dev eth0 でアドレスを付けたのに、再起動したら消えてた
【疑問】ip addr で付けたアドレスが再起動で消えた。hostnamectl・/etc/hosts と nmcli・systemd-networkd・ifup で恒久的に設定する【LPICレベル1】
前提のおさらい。IPv4 のアドレスは 192.0.2.10/24 みたいにアドレスとプレフィックスの長さで書いて、別のネットワーク宛てはデフォルトゲートウェイに送る。DNS サーバーの場所も要る
>>1
ip コマンドの変更は、今動いてるカーネルにだけ効く一時的なもの。再起動しても残すには、ネットワークを管理するしくみの設定ファイルに書く
よく使われるのは NetworkManager(nmcli)、systemd-networkd、Debian の ifupdown(/etc/network/interfaces)
>>3
nmcli の使い方を教えて
>>4
全体の状態は nmcli general status、機器の一覧は nmcli device status、接続(設定のまとまり)の一覧は nmcli connection show
NetworkManager では、設定を「接続(connection)」として名前を付けて持つ。機器(device)に接続を当てはめて使う
>>5
固定のアドレスにするには?
>>6nmcli connection modify office ipv4.method manual ipv4.addresses 192.0.2.10/24 ipv4.gateway 192.0.2.1 ipv4.dns 192.0.2.53nmcli connection up office で反映
新しく作るなら nmcli connection add type ethernet ifname eth0 con-name office から。DHCP に戻すなら ipv4.method auto
>>7
con は connection、dev は device の略で通る。DNS を足すときは +ipv4.dns で追加(nmcli-examples の man)
>>5
無線 LAN は?
>>9nmcli device wifi list で見える SSID の一覧、nmcli device wifi connect "SSID" password "パスワード" でつなぐ(--ask で聞かせることもできる)。無線を止めるのは nmcli radio wifi off
>>7
設定はどこに保存されるん
>>11
/etc/NetworkManager/system-connections/ に、接続ごとの .nmconnection ファイル(keyfile の形式)。画面のある端末向けのメニューなら nmtui
>>3
systemd-networkd のときは?
>>13
/etc/systemd/network/ に .network ファイルを置く(systemd.network の man の例)[Match]Name=enp2s0[Network]Address=192.0.2.10/24Gateway=192.0.2.1
状態は networkctl
>>3
Debian の /etc/network/interfaces は?
>>15
interfaces の man の書き方auto eth0(起動のときに上げる)iface eth0 inet static address 192.0.2.10/24 gateway 192.0.2.1
DHCP なら iface eth0 inet dhcp。上げ下げは ifup eth0・ifdown eth0
古い Red Hat 系は /etc/sysconfig/network-scripts/ifcfg-eth0 に書いてた
ホスト名を変えたい
>>17
ホスト名は /etc/hostname に1行で書いてある。hostname で表示
systemd なら hostnamectl hostname web01 で変える(古い版は hostnamectl set-hostname web01。今の版にも残ってた)。--static(/etc/hostname)・--transient(今だけ)・--pretty(自由な表示用)の3種類がある
>>18
名前を変えたら /etc/hosts も
>>19
/etc/hosts は「IPアドレス 正式な名前 別名…」の表で、DNS に聞く前に(nsswitch.conf の順で)使われる127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopback192.0.2.10 web01.example.com web01
Debian は自分のホスト名を 127.0.1.1 の行に書く
>>20
試したマシンには NetworkManager も networkd も動いてなかったから、ip は表示だけ、nmcli・networkctl・ifup は man とパッケージの中のファイルで確かめた。設定は何も変えてない
>>3
ip は一時的、残すなら nmcli か .network か interfaces。ホスト名は hostnamectl と /etc/hostname、名前の表は /etc/hosts。消えた理由が分かった
管理人のひとこと
- ip コマンドの設定は一時的。恒久的な設定は NetworkManager(nmcli、/etc/NetworkManager/system-connections/)、systemd-networkd(/etc/systemd/network/*.network、networkctl)、Debian の ifupdown(/etc/network/interfaces、ifup・ifdown)、古い Red Hat 系の ifcfg-eth0。
- nmcli:general status、device status、connection show、
connection modify 名前 ipv4.method manual ipv4.addresses … ipv4.gateway … ipv4.dns …、connection up、connection add、device wifi list・connect、radio wifi off。 - ホスト名は /etc/hostname、
hostnamectl hostname 名前(古い版は set-hostname)。static・transient・pretty の3種類。 - /etc/hosts は「IPアドレス 正式名 別名」。127.0.0.1 localhost、::1 localhost。Debian は自分の名前を 127.0.1.1 に書く。