目次

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の後に、任意の数の設定項目を空白区切りで追加する。

接続中のインタフェースに反映させるには、インタフェースの再起動が必要。

代表的な設定項目

設定値を削除したい場合は、空文字列“”を値に設定する。

複数設定可の項目は項目名だけなら置き換え。 項目名に+または-を付けると、指定した値の追加削除になる。 一回で複数設定したい場合はカンマ,で区切って設定する。

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

ネットワーク接続の追加

動的アドレス(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