この記事はQiitaからの移行記事です。内容が古い場合があります。
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