CentOS 7.xのネットワーク設定(nmcli)
CentOS 7.xのネットワーク設定コマンド nmcli
の使用方法。
インタフェース名(ifname)をeth0
、コネクションの接続ID(id)をSystem eth0
として例を記載。
詳しくは、RHELのネットワークガイド 2.3. NETWORKMANAGER のコマンドラインツール NMCLI の使用を参照。
状態表示
ネットワーク接続の一覧
$ nmcli con show NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0
NAME
が接続ID、DEVICE
がインタフェース名。
文字が緑色なら接続中、オレンジ色なら接続試行中、白色なら未接続。
オプションに--active
を付けると、接続中の接続だけを表示する。
ネットワーク接続の設定内容
$ nmcli con show "System eth0" connection.id: System eth0 connection.uuid: 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 connection.stable-id: -- connection.interface-name: eth0 connection.type: 802-3-ethernet connection.autoconnect: yes ...
ネットワークデバイスの状態
$ nmcli dev status DEVICE TYPE STATE CONNECTION eth0 ethernet connected System eth0 eth1 ethernet disconnected -- lo loopback unmanaged --
ホスト名の変更
nmcli general hostname centos7
ネットワーク接続の停止と開始
nmcli dev discon eth0 nmcli con up ifname eth0
ネットワーク接続の開始でインタフェース名ではなく接続IDを指定したい場合はこちら。
nmcli con up "System eth0"
ネットワーク接続の設定変更
nmcli con mod 接続ID
の後に、任意の数の設定項目を空白区切りで追加する。
接続中のインタフェースに反映させるには、インタフェースの再起動が必要。
代表的な設定項目
- ipv4.method [auto,manual,link-local]
- ipv4.addresses 複数設定可
- ipv4.gateway
- ipv4.dns 複数設定可
- ipv4.routes 複数設定可
“ip[/prefix] [gateway] [metric],…”
例:“192.168.1.0/24 192.168.0.1, 192.168.2.0/24 192.168.0.1”
- ipv6.method
- ipv6.addresses 複数設定可
設定値を削除したい場合は、空文字列“”
を値に設定する。
複数設定可の項目は項目名だけなら置き換え。
項目名に+
または-
を付けると、指定した値の追加削除になる。
一回で複数設定したい場合はカンマ,
で区切って設定する。
addressesとgatewayは短縮名がある。ip4
、gw4
、ip6
、gw6
。
ip4
は+ipv4.addresses
と同じ働き(変更ではなく追加)をするので注意。
設定例
複数可の項目に値を追加
$ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.2/24 $ sudo nmcli con mod "System eth0" +ipv4.addresses 192.168.0.3/24 $ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.2/24, 192.168.0.3/24
設定値の変更
$ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.2/24, 192.168.0.3/24 $ sudo nmcli con mod "System eth0" ipv4.addresses 192.168.0.4/24 $ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.4/24
設定値の変更(複数指定)
$ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.4/24 $ sudo nmcli con mod "System eth0" ipv4.addresses 192.168.0.2/24,192.168.0.3/24 $ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.2/24, 192.168.0.3/24
複数可の項目から指定した値を削除
$ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.2/24, 192.168.0.3/24 $ sudo nmcli con mod "System eth0" -ipv4.addresses 192.168.0.3/24 $ nmcli con show "System eth0" | grep ipv4.addresses ipv4.addresses: 192.168.0.2/24
項目の設定値を削除
IPv4アドレスの全削除は出来ないので、DNSで。
$ nmcli con show "System eth0" | grep ipv4.dns: ipv4.dns: 8.8.8.8,8.8.4.4 $ sudo nmcli con mod "System eth0" ipv4.dns "" $ nmcli con show "System eth0" | grep ipv4.dns: ipv4.dns: --
複数項目の一括設定
nmcli con mod "System eth0" ipv4.addresses 192.168.0.2/24 ipv4.dns 8.8.8.8,8.8.4.4
ネットワーク接続の追加
動的アドレス(DHCP)のネットワーク接続を追加
nmcli con add type ethernet con-name "System eth1" ifname eth1
NetworkManagerがconnection.autoconnect yes ipv4.method auto
を自動で設定。
また、/etc/sysconfig/network-scripts/ifcfg-接続ID
を自動で作成する。
この例ではifcfg-System_eth1
が出来ていたので、接続IDをインタフェース名と同じにしておいた方が便利。
コマンドが完了した時点でネットワークへの接続を開始する。
静的アドレスのネットワーク接続を追加
nmcli con add type ethernet con-name "System eth1" ifname eth1 ip4 192.168.0.3/24 gw4 192.168.0.1
NetworkManagerがconnection.autoconnect yes ipv4.method manual
を自動で設定。
この例では接続IDをeth1
としたので、/etc/sysconfig/network-scripts/ifcfg-eth1
を自動で作成。
コマンドが完了した時点でネットワークへの接続を開始する。
ネットワーク接続の削除
nmcli con del "System eth1"
ファイルを直接変更したら、NetworkManagerに通知する
/etc/sysconfig/network-scripts/ifcfg-eth0
等の設定ファイルを直接変更した場合は、
NetworkManagerに通知して変更を反映させる。
全てのファイルを読み込みし直す。
nmcli con reload
特定のファイルだけ読み込みし直す。
nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth0