📝

LinuxのNetworkManger『nmcli』でネットワーク設定を管理するための覚書

2022/08/01に公開

NetworkManagerの状態を表示したい

$ nmcli general status
STATE     CONNECTIVITY  WIFI-HW  WIFI  WWAN-HW  WWAN 
接続済み  完全          有効     有効  有効     有効

ホスト名を確認したい

$ nmcli general hostname
parrot-virtualbox

ホスト名を編集したい

$ nmcli general hostname {new_hostname}

ネットワークを有効または無効にしたい

$ nmcli networking {on | off}

ネットワークの状態を確認したい

$ nmcli networking connectivity check
# full or noneが表示される

wifiの状態を表示したい

$ nmcli radio wifi
# enabled or disabledが表示される

wifiの接続を有効または無効にしたい

$ nmcli radio wifi {on | off}

モバイルブロードバンド接続(4GLTE,5Gなど)の状態を表示したい

$ nmcli radio wwan
# enabled or disabledが表示される

モバイルブロードバンド接続(4GLTE,5Gなど)を有効または無効にしたい

$ nmcli radio wwan {on | off}
# enabled or disabledが表示される

全ての無線接続を一括で有効または無効にしたい

$ nmcli radio all {on | off}

現在の接続情報を表示したい

# 全ての接続を表示
$ nmcli connection show

NAME        UUID                                  TYPE      DEVICE 
有線接続 1  7e709e70-ba3a-3a93-9ba6-1e084c932b58  ethernet  enp0s3

# activeな接続のみ表示
$ nmcli connection show --active

指定した接続を有効または無効にしたい

$ nmcli connection {up | down} {UUID}

指定した接続の設定を編集したい

# 複数の値から成るプロパティーの場合は、
# '+' 記号を使用すると、アイテムを追加
# '-' 記号を使用すると、アイテムを削除
# どちらも指定されない場合はプロパティ全体を上書きする
$ nmcli connection modify {NAME} {parameter}

静的IPを設定したい

$ nmcli connection modify {interface-name} ipv4.method manual
$ nmcli connection modify {interface-name} ipv4.addresses 192.168.1.1/24

指定した接続の設定をインタラクティブに編集したい

$ nmcli connection edit {UUID}

# プロファイル一覧を表示
nmcli> print
===============================================================================
                      接続プロファイルの詳細 (有線接続 1)
===============================================================================
connection.id:                          有線接続 1
connection.uuid:                        7e709e70-ba3a-3a93-9ba6-1e084c932b58
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s3
connection.autoconnect:                 はい
connection.autoconnect-priority:        -999
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1659321253
connection.read-only:                   いいえ
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     不明
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.wait-device-timeout:         -1
-------------------------------------------------------------------------------
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          いいえ
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
-------------------------------------------------------------------------------
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                いいえ
ipv4.ignore-auto-dns:                   いいえ
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                はい
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     いいえ
ipv4.may-fail:                          はい
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.dhcp-reject-servers:               --
-------------------------------------------------------------------------------
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.ignore-auto-routes:                いいえ
ipv6.ignore-auto-dns:                   いいえ
ipv6.never-default:                     いいえ
ipv6.may-fail:                          はい
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.ra-timeout:                        0 (default)
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                はい
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.token:                             --
-------------------------------------------------------------------------------
proxy.method:                           none
proxy.browser-only:                     いいえ
proxy.pac-url:                          0
proxy.pac-script:                       --
-------------------------------------------------------------------------------

nmcli> set {profile name} {value}
nmcli> save
nmcli> quit

デバイスの状態を確認したい

$ nmcli device status

DEVICE  TYPE      STATE     CONNECTION 
enp0s3  ethernet  接続済み  有線接続 1 
lo      loopback  管理無し  --

指定したデバイスの情報を確認したい

$ nmcli device show {DEVICE}

GENERAL.DEVICE:                         enp0s3
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:F9:8C:93
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     有線接続 1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         10.0.2.15/24
IP4.GATEWAY:                            10.0.2.2
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 10.0.2.2, mt = 100
IP4.ROUTE[2]:                           dst = 10.0.2.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.177.21
IP4.DNS[2]:                             192.168.193.21
IP4.DNS[3]:                             192.168.50.1
IP4.DOMAIN[1]:                          test.local
IP6.ADDRESS[1]:                         fe80::7a8b:e58b:f189:9b1b/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

デバイスの設定を変更したい

$ nmcli device modify {DEVICE} {parameter}

指定したデバイスを接続または切断したい

$ nmcli device {connect | disconnect} {DEVICE}

デバイスを削除したい

$ nmcli device delete {DEVICE}

デバイスの状態を継続監視したい

$ nmcli device monitor {DEVICE}

# デバイスが接続、切断されると標準出力に以下のような出力がされる
enp0s3: 停止中
enp0s3: 切断済み
enp0s3: 接続 '有線接続 1' を使用中
enp0s3: 接続中 (準備)
enp0s3: 接続中 (設定中)
enp0s3: 接続中 (IP 設定を取得中)
enp0s3: 接続中 (IP の接続性チェック)
enp0s3: 接続中 (セカンダリー接続を開始)
enp0s3: 接続済み

wifiのアクセスポイントを表示したい

$ nmcli device wifi list

wifiのアクセスポイントを再検索したい

$ nmcli device wifi rescan

wifiのアクセスポイントに接続したい

$ nmcli device wifi connect {SSID}

wifiのホットスポットを作成したい

$ nmcli device wifi hotspot
GitHubで編集を提案

Discussion