Edited at

CentOS7のnmcliコマンドについて

More than 1 year has passed since last update.

CentOSはバージョン7からNetwork Managerが標準で実行されています。一応互換性のため、従来のnetworkサービスもあるので、

# systemctl disable NetworkManager

# systemctl start network
# systemctl disable network
# systemctl stop NetworkManager

と実行すれば元通り使えるのですが、Network Managerが有効だと割と便利なのでNetworkManagerは使ったほうがいいですよーという話。


これまでのIPアドレスの設定変更

IPアドレスの変更はifcfgから始まるファイルを直接いじっていたと思います。

# ls /etc/sysconfig/network-scripts/ |grep ifcfg

ifcfg-enp0s3
ifcfg-enp0s8
ifcfg-lo

NetworkManagerが有効でも同じではあるんですが、デバイスの設定ファイルがなかった時は最初から作らなければならないですし面倒ですよね。

そこでNetworkManagerの登場。nmcuiとnmtuiという便利なコマンドがあります。今回はnmcuiの使い方をちょっとご紹介。


これからのIPアドレスの設定変更

これからはnmcuiコマンドですよ。例えばenp0s8のIPアドレスの設定を変更するには次のように実行します。

# nmcli c m enp0s8 ipv4.method manual ipv4.addresses 192.168.56.101/24 

超簡単ですね。ちなみにこのままだと再起動後にIPアドレスが設定されなくなるので次のように設定を追加します。

# nmcli c m enp0s8 ipv4.method manual ipv4.addresses 192.168.56.101/24 connection.autoconnect yes

直感的ですね。ネットワークデバイスに対して設定できる設定の一覧は次のように実行するとわかります。

# nmcli c s enp0s8

connection.id: enp0s8
connection.uuid: 306603cb-f8e9-497f-8e4f-f00c63f5e2e1
connection.interface-name: enp0s8
connection.type: 802-3-ethernet
connection.autoconnect: yes
...
ipv4.addresses: 192.168.56.101/24
...

ちなみにnmcliではホスト名も変更可能です。

一行目で任意のホスト名を設定してsystemd-hostnamedを再起動するだけです。

# nmcli general hostname my-server

# systemctl restart systemd-hostnamed

ただ便利なnmcliですが、ちょっとした問題があります。それはOSインストール時に追加したNICの名前がユニークなものになってしまう点です。例えばCentOS7でインストール後にNICを追加すると次のようになってしまいます。

# nmcli c s  ←接続の一覧を表示

NAME
Wired connection 1... ←追加したNIC(enp0s8)
enp0s3... ←元のNIC

これでも困ることはあまりないのですが、先ほどのようにIPアドレスを変更するには次のように入力しなければなりません。

# nmcli c m "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.56.101/24 connection.autoconnect yes

これを解決するにはやはり、nmcliコマンドを使います。

Wired connection 1という名前のデバイスを本来のデバイス名と同じ

enp0s8にするにはconnection.interface-nameとconnection.idを変更して再起動すると良いようです。

# nmcli c m "Wired connection 1" connection.interface-name enp0s8 connection.id enp0s8

再起動後はこの通り。

# nmcli c s

NAME
enp0s8 ←追加したNIC(enp0s8)
enp0s3 ←元のNIC


参考にしたサイト