Linux基礎

nmcli の使い方,オプション一覧 (自動接続,デフォルトゲートウェイ/ip/dns変更,ステータス確認)

CentOS7 以上では Network Manager を積極的に使う

CentOS7 以降では Network Manager を使うことが推奨されています。

なのでネットワーク周りの CLI コマンドは nmcli を使いましょう。

設定反映には基本、インタフェースの再起動 (nmcli con up [if]) のみで OK ですが、デバイス名の変更だけは OS の再起動が必要となるようです。

NetworkManager が認識しているインタフェースおよびステータスを表示

[root@localhost ~]# nmcli device
デバイス タイプ 状態 接続
eth1 ethernet 接続済み eth1
eth2 ethernet 接続済み eth2
eth3 ethernet 切断済み --
lo loopback 管理無し --
[root@localhost ~]#

有効なものを緑で表示し、利用できないものを赤で表示します。

NetworkManager管理下のインタフェースを表示(有効に利用できるものを緑で表示)

[root@localhost ~]# nmcli connection show
名前 UUID タイプ デバイス
eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1
eth2 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet eth2
eth3 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet --
[root@localhost ~]#

上記コマンドはよく "nmcli c s" と略されます。

インタフェースの自動接続設定

初期設定ではインタフェースが自動接続になっていないため、自動接続を有効にしましょう。

[root@localhost ~]# nmcli connection modify eth2 connection.autoconnect yes
[root@localhost ~]# nmcli connection up eth2

上のコマンドはよく "nmcli c m" や "nmcli con mod" と略されます。同様に下のコマンドは "nmcli c u" や "nmcli con up" と略されます。

IPアドレスの設定

[root@localhost ~]# nmcli connection modify eth2 ipv4.method manual ipv4.addresses "10.1.1.2/24"
[root@localhost ~]# nmcli connection up eth2

設定反映には NetworkManager の再起動をせずとも、2行目の "nmcli connection up" コマンドでOKです。(down も不要)

デフォルトゲートウェイの設定

[root@localhost ~]# nmcli connection modify eth2 ipv4.gateway "10.1.1.254"
[root@localhost ~]# nmcli connection up eth2

同様にupコマンドで設定反映。

DNSサーバの設定

[root@localhost ~]# nmcli connection modify eth2 ipv4.dns "8.8.8.8"
[root@localhost ~]# nmcli connection up eth2

同様に up コマンドで設定反映。

このコマンドは設定を上書きするため、2台目(セカンダリ等)を設定するには次のコマンドを実行します。

複数の DNS サーバ設定の追加・削除

追加するときは +ipv4

[root@localhost ~]# nmcli connection modify eth2 +ipv4.dns "8.8.4.4"
[root@localhost ~]# nmcli connection up eth2

削除するときは -ipv4

[root@localhost ~]# nmcli connection modify eth2 -ipv4.dns "8.8.4.4"
[root@localhost ~]# nmcli connection up eth2

スタティックルートの設定追加・削除

追加するときは +ipv4

[root@localhost ~]# nmcli connection modify eth2 +ipv4.routes "192.168.1.0/24 10.1.2.254"
[root@localhost ~]# nmcli connection up eth2

削除するときは -ipv4

[root@localhost ~]# nmcli connection modify eth2 -ipv4.routes "192.168.1.0/24 10.1.2.254"
[root@localhost ~]# nmcli connection up eth2

セカンダリIPアドレスの追加 (1つのNICに複数IP設定)

複数の IP を持たせたいときはセカンダリ IP アドレスを設定することができます。セカンダリIPの追加をするときは +ipv4 を使います。3 個以上でも登録できます。

[root@localhost ~]# nmcli connection modify eth2 +ipv4.addresses "10.1.1.3/24"
[root@localhost ~]# nmcli connection up eth2

IPを削除するときは -ipv4

[root@localhost ~]# nmcli connection modify eth2 -ipv4.addresses "10.1.1.3/24"
[root@localhost ~]# nmcli connection up eth2

プロファイル名(名前/NAME)を変える

[root@localhost ~]# nmcli connection show
名前 UUID タイプ デバイス
eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1
eth2 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet eth2
eth3 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet --
[root@localhost ~]#

上記の状態で、eth2 を変更するには以下のコマンドを打ちます。

[root@localhost ~]# nmcli connection modify eth2 connection.id ens38

すると即時反映で以下のように変わります。

[root@localhost ~]# nmcli connection show
名前 UUID タイプ デバイス
eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1
ens38 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet eth2
有線接続1 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet --
[root@localhost ~]#

"???? 1" 等と表示される場合は ssh で日本語環境でログインすればマルチバイトで表示されるはずです。私の場合は "有線接続 1" と表示されましたので

[root@localhost ~]# nmcli connection modify "有線接続 1" connection.id ens38

で修正できました。

デバイス名を変更する

デバイス名を変更するには以下のようにします。

[root@localhost ~]# nmcli connection modify eth2 connection.interface-name ens38
[root@localhost ~]# shutdown -r now

名前の変更とは違い、再起動が必要となります。再起動後は以下のように変わります。

[root@localhost ~]# nmcli connection show
名前 UUID タイプ デバイス
eth1 99fbd3ed-f1d8-4c81-a2cf-9665fd6cd2f9 802-3-ethernet eth1
ens38 ebe5b183-c4b0-3d40-b1f6-fe4623a5085f 802-3-ethernet ens38
eth3 3508a332-4320-3fdf-bb7a-25539a2a6a14 802-3-ethernet eth3
[root@localhost ~]#

対話的に設定する場合

[root@localhost ~]# nmcli con edit id ens38
===| nmcli インテラクティブ接続エディター |===既存の '802-3-ethernet' 接続を編集中: 'ens38'使用できるコマンドを表示するには 'help' または '?' を入力します。
プロパティ詳細を表示するには 'describe [.]' を入力します。次の設定を変更することができます: connection, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6, proxy
nmcli> ?
------------------------------------------------------------------------------
---[ メインメニュー ]---
goto [ | ] :: 設定またはプロパティーに移動する
remove [.] | :: 設定を削除する、またはプロパティー値をリセットする
set [. ] :: プロパティー値を設定する
describe [.] :: プロパティーの説明を表示する
print [all | [.]] :: 接続を出力する
verify [all | fix] :: 接続を検証する
save [persistent|temporary] :: 接続を保存する
activate [] [/|] :: 接続をアクティベートする
back :: ひとつ上のレベルに移動する (戻る)
help/? [] :: このヘルプを表示する
nmcli :: nmcli 設定
quit :: nmcli を終了する
------------------------------------------------------------------------------
nmcli> goto ?
エラー: 無効な設定名; '?' は [connection, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6, proxy] にはありません
nmcli> goto connection
変更できるのは次のプロパティになります: id, uuid, interface-name, type, permissions, autoconnect, autoconnect-priority, autoconnect-retries, timestamp, read-only, zone, master, slave-type, autoconnect-slaves, secondaries, gateway-ping-timeout, metered, lldp, stable-id
nmcli connection> goto id
nmcli connection.id> ?
------------------------------------------------------------------------------
---[ プロパティメニュー]---
set [] :: 新しい値の設定
add [] :: プロパティに新規オプションを追加
change :: 現在の値を変更
remove [ |] :: 値の削除
describe :: プロパティの詳細表示
print [setting | connection] :: プロパティ値 (設定/接続) の表示
back :: 上のレベルに移動
help/? [] :: このヘルプまたはコマンドの詳細を表示
quit :: nmcli の終了
------------------------------------------------------------------------------
nmcli connection.id> print
id: ens38
nmcli connection.id> set eth1
nmcli connection.id> back
nmcli connection> save
接続 'eth1' (ebe5b183-c4b0-3d40-b1f6-fe4623a5085f) が正常に更新されました。
nmcli connection> quit
[root@localhost ~]#

コメント

タイトルとURLをコピーしました