articles:centos7_nmcli

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は短縮名がある。ip4gw4ip6gw6ip4+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
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"

/etc/sysconfig/network-scripts/ifcfg-eth0等の設定ファイルを直接変更した場合は、 NetworkManagerに通知して変更を反映させる。

全てのファイルを読み込みし直す。

nmcli con reload

特定のファイルだけ読み込みし直す。

nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth0
  • 最終更新: 2023-04-04 19:00
  • by nabium