Help us understand the problem. What is going on with this article?

CentOS7のnmcliコマンドについて

More than 3 years have 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

参考にしたサイト

ytooyama
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした