3.3. nmcli を使用する IP ネットワークの設定
- サーバー、ヘッドレスのマシン、およびターミナルについては、GUI を介さずに直接 nmcli を使って NetworkManager を制御し、ネットワーク接続を作成、編集、開始、および停止したり、ネットワークの状態を把握したりできます。
- スクリプトに関しては、nmcli はスクリプト処理に適した簡素出力フォーマットをサポートします。この場合、ネットワーク接続を手動で管理するのではなく、ネットワーク設定の整合性を維持するために用いられます。
nmcli [OPTIONS] OBJECT { COMMAND | help }ここで、OBJECT は
general
、networking
、radio
、connection
、device
、agent
、および monitor
のいずれかに設定できます。コマンドには、このいずれかのプレフィックスを使用できます。たとえば、nmcli con help
、nmcli c help
、nmcli connection help
はいずれも同じ出力を生成します。
- -t (terse)
- このモードは、コンピューターのスクリプト処理に使用される場合があり、値だけを表示する簡潔な出力を確認できます。
例3.1 簡潔な出力の表示
nmcli -t device
ens3:ethernet:connected:Profile 1 lo:loopback:unmanaged: - -f (field)
- このオプションでは、どのフィールドを出力に表示できるかを指定します。たとえば、NAME、UUID、TYPE、AUTOCONNECT、ACTIVE、DEVICE、STATE などです。フィールドは、1 つまたは複数使用できます。複数のフィールドを使用する場合は、フィールドを区切るコンマの後にスペースを入れないでください。
例3.2 出力内のフィールドの指定
~]$
また、次のようなスクリプトの記述に適しています。nmcli -f DEVICE,TYPE device
DEVICE TYPE ens3 ethernet lo loopback~]$
nmcli -t -f DEVICE,TYPE device
ens3:ethernet lo:loopback - -p (pretty)
- このオプションでは、nmcli により、人間が理解可能な出力を生成します。たとえば、値を揃え、ヘッダーを表示します。
例3.3 pretty モードで出力の表示
nmcli -p device
===================== Status of devices ===================== DEVICE TYPE STATE CONNECTION -------------------------------------------------------------- ens3 ethernet connected Profile 1 lo loopback unmanaged -- - -h (help)
- ヘルプ情報を表示します。
nmcli help
- このコマンドでは、その後のコマンドで使用される利用可能なオプションおよびオブジェクト名のリストが表示されます。
nmcli object help
- このコマンドでは、指定したオブジェクトに関する利用可能なアクションのリストが表示されます。以下に例を示します。
nmcli c help
3.3.1. nmcli の簡単な選択例
例3.4 NetworkManager の全体ステータスの確認
~]$ nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
簡潔モードの場合:
~]$ nmcli -t -f STATE general
connected
例3.5 NetworkManager のログ記録の状態の表示
~]$ nmcli general logging
LEVEL DOMAINS
INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,A
UTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,
WIMAX,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,DBUS_PROPS,TEAM,CONCHECK,DC
B,DISPATCH
例3.6 すべての接続の表示
~]$ nmcli connection show
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
ens3 aaf6eb56-73e5-4746-9037-eed42caa8a65 ethernet --
例3.7 現在アクティブな接続のみを表示
~]$ nmcli connection show --active
NAME UUID TYPE DEVICE
Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
例3.8 NetworkManager が認識するデバイスおよびそのステータスの表示
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected Profile 1
lo loopback unmanaged --
表3.1 nmcli コマンドの省略形の例
nmcli command | 省略形 | |
---|---|---|
nmcli general status | nmcli g | |
nmcli general logging | nmcli g log | |
nmcli connection show | nmcli con show | |
nmcli connection show --active | nmcli con show -a | |
nmcli device status | nmcli dev |
3.3.2. nmcli を使用したネットワークインターフェースの起動および停止
nmcli con up id bond0 nmcli con up id port0 nmcli dev disconnect bond0 nmcli dev disconnect ens3
注記
nmcli connection down
コマンドでは、デバイスからの接続は非アクティブ化されますが、その後デバイスが接続を自動的にアクティブ化することは禁じません。nmcli device disconnect
コマンドでは、デバイスが切断され、手動の操作がない限りその後デバイスが接続を自動的にアクティブ化することはありません。
3.3.3. nmcli オプションについて
connection.type
- 接続の種類です。設定可能な値は、adsl、bond、bond-slave、bridge、bridge-slave、bluetooth、cdma、ethernet、gsm、infiniband、olpc-mesh、team、team-slave、vlan、wifi、wimax です。それぞれの接続の種類には、固有のコマンドオプションがあります。man ページの 『nmcli(1)』 の
TYPE_SPECIFIC_OPTIONS
の一覧を参照してください。以下に例を示します。gsm
接続の場合は、apn
でアクセスポイント名を指定する必要があります。nmcli c add connection.type gsm apn access_point_name
wifi
デバイスの場合は、ssid
でサービスセットの識別子を指定する必要があります。nmcli c add connection.type wifi ssid My identifier
connection.interface-name
- 接続に関連するデバイス名です。
nmcli con add connection.interface-name enp1s0 type ethernet
connection.id
- 接続プロファイルに使用される名前です。接続名を指定しないと、以下のように生成されます。
connection.type -connection.interface-name
connection.id
は 接続プロファイル の名前。デバイスを表すインターフェース名 (wlp61s0
、ens3
、em1
など) と混同しないようにしてください。なお、ユーザーはインターフェースと同じ名前を接続に付けることができますが、これらは別のものです。1 つのデバイスに複数の接続プロファイルを利用することもできます。これは、モバイルデバイスの場合や異なるデバイス間でネットワークケーブルを切り替える場合に非常に便利です。必要に応じて、設定を編集するのではなく、異なるプロファイルを作成してインターフェースに適用します。id
オプションも接続プロファイル名を参照します。
show
、up
、down
等の nmcli コマンドで最も重要なオプションを以下に示します。
id
- ユーザーが接続プロファイルに割り当てる識別用文字列。nmcli connection コマンドで、ID を使用して接続を指定できます。コマンド出力の NAME フィールドには、必ず 接続 ID が表示されます。con-name が参照するのと同じ接続プロファイル名が参照されます。
uuid
- システムが接続プロファイルに割り当てる一意の識別用文字列。
nmcli connection
コマンドで、uuid
を使用して接続を指定できます。
3.3.4. nmcli インタラクティブ接続エディターの使用
~]$ nmcli con edit
表示されたリストから有効な接続の種類を入力するよう求められます。接続の種類を入力すると、nmcli プロンプトが表示されます。接続の種類に精通している場合は、有効な接続の type
オプションを nmcli con edit
コマンドに追加して、直接 nmcli プロンプト表示とすることができます。既存の接続プロファイルを編集する場合は、以下のような形式になります。nmcli con edit [id | uuid | path] ID新規接続プロファイルの編集には、以下の形式を使用します。
nmcli con edit [type new-connection-type] [con-name new-connection-name]
help
と入力します。設定およびプロパティーの説明を確認するには、describe
コマンドを使用します。describe setting.property以下に例を示します。
nmcli> describe team.config
3.3.5. nmcli による接続プロファイルの作成および修正
nmcli c add {ARGUMENTS}
nmcli c add
では、以下に示す異なる 2 つのタイプのパラメーターが使用可能です。
- プロパティー名
- 接続を内部的に記述するために NetworkManager が使用する名前。最も重要なものを以下に示します。
- connection.type
nmcli c add connection.type
bond
- connection.interface-name
nmcli c add connection.interface-name
enp1s0
- connection.id
nmcli c add connection.id
"My Connection"
属性およびその設定に関する詳細は、man ページのnm-settings(5)
を参照してください。
- エイリアス名
- 内部的にプロパティーに翻訳された、人間が理解可能な名前。最も一般的なものを以下に示します。
- type (connection.type プロパティー)
nmcli c add type
bond
- ifname (connection.interface-name プロパティー)
nmcli c add ifname
enp1s0
- con-name (connection.id プロパティー)
nmcli c add con-name
"My Connection"
nmcli
では、接続を作成するのに エイリアス名
を使用する必要がありました。たとえば、ifname
enp1s0 および con-name
My Connection。以下の形式のコマンドが使用されました。nmcli c add type ethernet ifname enp1s0 con-name "My Connection"
プロパティー名
と エイリアス名
の両方を、区別なく使用できます。以下の例は、すべて有効で同じ結果が得られます。nmcli c add type ethernet ifname enp1s0 con-name "My Connection" ethernet.mtu 1600
nmcli c add connection.type ethernet ifname enp1s0 con-name "My Connection" ethernet.mtu 1600
nmcli c add connection.type ethernet connection.interface-name enp1s0 connection.id "My Connection" ethernet.mtu 1600
type
引数だけは、すべての接続の種類で必須です。また、ifname
は bond
、team
、bridge
、および vlan
を除くすべての種類で必須です。
- type (type_name)
- 接続の種類です。例:
nmcli c add type
bond
- ifname (interface_name)
- 接続のバインド先となるインターフェースです。例:
nmcli c add ifname interface_name type ethernet
nmcli c modify
connection.id
を My Connection から My favorite connection
に、connection.interface-name
を enp1s0
に変更するには、以下のようにコマンドを実行します。nmcli c modify "My Connection" connection.id "My favorite connection" connection.interface-name enp1s0
注記
プロパティー名
が使用されます。エイリアス名
は、互換性の理由からしか使用されません。
nmcli c modify "My favorite connection" ethernet.mtu 1600
nmcli con up con-name
以下に例を示します。
nmcli con up My-favorite-connection
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16)
3.3.6. nmcli を使用したネットワーク接続
~]$ nmcli con show
NAME UUID TYPE DEVICE
Auto Ethernet 9b7f2511-5432-40ae-b091-af2457dfd988 802-3-ethernet --
ens3 fb157a65-ad32-47ed-858c-102a48e064a2 802-3-ethernet ens3
MyWiFi 91451385-4eb8-4080-8b82-720aab8328dd 802-11-wireless wlp61s0
出力結果の NAME
フィールドは、常に接続 ID (名前) を表す事に留意してください。これはインターフェース名と同じように見えますが、異なるものです。上記の 2 つ目の接続では、NAME フィールドである ens3
は、ユーザーがプロファイルに割り当て、インターフェース ens3 に適用される接続 ID です。最後の接続では、ユーザーが、接続 ID MyWiFi
をインターフェース wlp61s0 に割り当てています。
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet disconnected --
ens9 ethernet disconnected --
lo loopback unmanaged --
3.3.7. nmcli を使用した動的イーサネット接続の追加および設定
動的イーサネット接続を追加する
IP
設定を使用して、イーサネット設定プロファイルを追加し、DHCP
がネットワーク設定を割り当てられるようにするには、以下のコマンドを実行します。nmcli connection add type ethernet con-name connection-name ifname interface-name
~]$ nmcli con add type ethernet con-name my-office ifname ens3
Connection 'my-office' (fb157a65-ad32-47ed-858c-102a48e064a2) successfully added.
~]$ nmcli con up my-office
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
デバイスおよび接続のステータスを確認します。
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected my-office
ens9 ethernet disconnected --
lo loopback unmanaged --
動的イーサネット接続の設定
DHCP
サーバーに送信するホスト名を変更するには、以下のように dhcp-hostname
プロパティーを編集します。
~]$ nmcli con modify my-office my-office ipv4.dhcp-hostname host-name ipv6.dhcp-hostname host-name
DHCP
サーバーに送信する IPv4
クライアント ID を変更するには、dhcp-client-id
プロパティーを編集します。
~]$ nmcli con modify my-office my-office ipv4.dhcp-client-id client-ID-string
IPv6
には dhcp-client-id
プロパティーがなく、dhclient が IPv6
に識別子を作成します。詳細は、dhclient(8)
man ページを参照してください。
DHCP
サーバーにより、ホストに送信された DNS
サーバーを無視するには、ignore-auto-dns
プロパティーを修正します。
~]$ nmcli con modify my-office my-office ipv4.ignore-auto-dns yes ipv6.ignore-auto-dns yes
nm-settings(5)
を参照してください。
例3.9 インタラクティブエディターを使用した動的イーサネット接続の設定
~]$ nmcli con edit type ethernet con-name ens3
===| nmcli interactive connection editor |===
Adding a new '802-3-ethernet' connection
Type 'help' or '?' for available commands.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb
nmcli> describe ipv4.method
=== [method] ===
[NM property description]
IPv4 configuration method. If 'auto' is specified then the appropriate automatic method (DHCP, PPP, etc) is used for the interface and most other properties can be left unset. If 'link-local' is specified, then a link-local address in the 169.254/16 range will be assigned to the interface. If 'manual' is specified, static IP addressing is used and at least one IP address must be given in the 'addresses' property. If 'shared' is specified (indicating that this connection will provide network access to other computers) then the interface is assigned an address in the 10.42.x.1/24 range and a DHCP and forwarding DNS server are started, and the interface is NAT-ed to the current default network connection. 'disabled' means IPv4 will not be used on this connection. This property must be set.
nmcli> set ipv4.method auto
nmcli> save
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? [yes] yes
Connection 'ens3' (090b61f7-540f-4dd6-bf1f-a905831fc287) successfully saved.
nmcli> quit
~]$
デフォルトの動作では、接続プロファイルが永続的に保存されます。必要な場合は save temporary
コマンドで、プロファイルを次回の再起動時までメモリーにだけ保持することもできます。
3.3.8. nmcli を使用した静的イーサネット接続の追加および設定
静的イーサネット接続の追加
IPv4
設定のイーサネット接続を追加するには、以下の形式のコマンドを使用します。nmcli connection add type ethernet con-name connection-name ifname interface-name ip4 address gw4 address
ip6
および gw6
のオプションを使用して IPv6
アドレスとゲートウェイ情報を追加することもできます。
IPv4
アドレスおよびゲートウェイを使用して静的イーサーネット接続を作成するには、以下のコマンドを実行します。
~]$必要に応じて、同時にデバイスのnmcli con add type ethernet con-name test-lab ifname ens9 ip4 10.10.10.10/24 \
gw4 10.10.10.254
IPv6
アドレスおよびゲートウェイを指定します。
~]$nmcli con add type ethernet con-name test-lab ifname ens9 ip4 10.10.10.10/24 \
gw4 10.10.10.254 ip6 abbe::cafe gw6 2001:db8::1
Connection 'test-lab' (05abfd5e-324e-4461-844e-8501ba704773) successfully added.
IPv4
DNS
サーバーアドレスを設定するには、以下のコマンドを実行します。
~]$ nmcli con mod test-lab ipv4.dns "8.8.8.8 8.8.4.4"
このコマンドにより、以前に設定された DNS
サーバーが置換されることに注意してください。2 つの IPv6
DNS
サーバーアドレスを設定するには、以下のコマンドを実行します。
~]$ nmcli con mod test-lab ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
このコマンドにより、以前に設定された DNS
サーバーが置換されることに注意してください。別の方法では、+
接頭辞を使用して、新たな DNS
サーバーを以前のセットに追加します。
~]$ nmcli con mod test-lab +ipv4.dns "8.8.8.8 8.8.4.4"
~]$ nmcli con mod test-lab +ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
~]$ nmcli con up test-lab ifname ens9
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
デバイスおよび接続のステータスを確認します。
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected my-office
ens9 ethernet connected test-lab
lo loopback unmanaged --
~]$ nmcli -p con show test-lab
===============================================================================
Connection profile details (test-lab)
===============================================================================
connection.id: test-lab
connection.uuid: 05abfd5e-324e-4461-844e-8501ba704773
connection.interface-name: ens9
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.timestamp: 1410428968
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0[出力は省略されています]
-p, --pretty
オプションを使用すると、出力にタイトルバナーが追加され、セクションが分けられます。
例3.10 インタラクティブエディターを使用した静的イーサネット接続の設定
~]$ nmcli con edit type ethernet con-name ens3
===| nmcli interactive connection editor |===
Adding a new '802-3-ethernet' connection
Type 'help' or '?' for available commands.
Type 'describe [>setting<.>prop<]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb
nmcli> set ipv4.addresses 192.168.122.88/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli>
nmcli> save temporary
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? [yes] no
nmcli> save
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? [yes] yes
Connection 'ens3' (704a5666-8cbd-4d89-b5f9-fa65a3dbc916) successfully saved.
nmcli> quit
~]$
デフォルトの動作では、接続プロファイルが永続的に保存されます。必要な場合は save temporary
コマンドで、プロファイルを次回の再起動時までメモリーにだけ保持することもできます。
connection.autoconnect
を yes
に設定します。NetworkManager は、その設定を /etc/sysconfig/network-scripts/ifcfg-my-office
に書き出します。ここで、対応する BOOTPROTO を none
に設定し、ONBOOT を yes
に設定します。
3.3.9. nmcli を使用してプロファイルを特定のデバイスにロック
nmcli connection add type ethernet con-name connection-name ifname interface-nameプロファイルを、互換性のあるイーサーネットインターフェースに利用できるようにするには、以下のコマンドを実行します。
nmcli connection add type ethernet con-name connection-name ifname "*"特定のインターフェースを設定しない場合も、
ifname
引数は使用する必要があります。プロファイルを互換性のあるデバイスに使用できるようにするには、ワイルドカード文字 *
を使用します。
nmcli connection add type ethernet con-name "connection-name" ifname "*" mac 00:00:5E:00:53:00
3.3.10. nmcli を使用する Wi-Fi 接続の追加
~]$ nmcli dev wifi list
SSID MODE CHAN RATE SIGNAL BARS SECURITY
FedoraTest Infra 11 54 MB/s 98 ▂▄▆█ WPA1
Red Hat Guest Infra 6 54 MB/s 97 ▂▄▆█ WPA2
Red Hat Infra 6 54 MB/s 77 ▂▄▆_ WPA2 802.1X
* Red Hat Infra 40 54 MB/s 66 ▂▄▆_ WPA2 802.1X
VoIP Infra 1 54 MB/s 32 ▂▄__ WEP
MyCafe Infra 11 54 MB/s 39 ▂▄__ WPA2
IP
設定で Wi-Fi 接続プロファイルを作成し、DNS
アドレスの自動割り当てを有効にするには、以下のコマンドを実行します。
~]$WPA2 パスワード (例: 「caffeine」) を設定するには、以下のコマンドを実行します。nmcli con add con-name MyCafe ifname wlp61s0 type wifi ssid MyCafe \
ip4 192.168.100.101/24 gw4 192.168.100.1
~]$パスワードのセキュリティーに関する情報は、『Red Hat Enterprise Linux 7 セキュリティーガイド』を参照してください。nmcli con modify MyCafe wifi-sec.key-mgmt wpa-psk
~]$nmcli con modify MyCafe wifi-sec.psk caffeine
~]$ nmcli radio wifi [on | off ]
nmcli を使用した特定プロパティーの変更
mtu
) を確認するには、以下のコマンドを実行します。
~]$ nmcli connection show id 'MyCafe' | grep mtu
802-11-wireless.mtu: auto
設定のプロパティーを変更するには、以下のコマンドを実行します。
~]$ nmcli connection modify id 'MyCafe' 802-11-wireless.mtu 1350
変更を確認するには、以下のコマンドを実行します。
~]$ nmcli connection show id 'MyCafe' | grep mtu
802-11-wireless.mtu: 1350
802-3-ethernet
や 802-11-wireless
といったパラメーターを設定として参照し、mtu
を設定のプロパティーとして参照することに留意してください。プロパティーおよびそれらの設定に関する詳細情報は、nm-settings(5)
man ページを参照してください。
3.3.11. 特定のデバイスを無視するように NetworkManager を設定
lo
(loopback) デバイス以外のすべてのデバイスを管理します。ただし、特定のデバイスを unmanaged
として設定して、NetworkManager がこれらのデバイスを無視するように設定できます。この設定では、スクリプトを使用して、このようなデバイスを手動で管理できます。
3.3.11.1. NetworkManager で、デバイスを Unmanaged (管理外) として永続的に設定
unmanaged
として設定できます。この手順では、NetworkManager で enp1s0
インターフェースを unmanaged(管理外)として永続的に設定する方法を説明します。
unmanaged
として設定するには、「NetworkManager でデバイスの非管理として一時的に設定」 を参照してください。
手順
- 必要に応じて、デバイスの一覧を表示して、設定するデバイスを
unmanaged
として識別します。#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ... - 以下の内容で
/etc/NetworkManager/conf.d/99-unmanaged-devices.conf
ファイルを作成します。[keyfile] unmanaged-devices=interface-name:enp1s0
複数のデバイスを非管理対象として設定するには、unmanaged-devices
パラメーターのエントリーをセミコロンで区切ります。[keyfile] unmanaged-devices=interface-name:interface_1;interface-name:interface_2;...
NetworkManager
サービスを再読み込みします。#
systemctl reload NetworkManager
検証手順
- デバイスの一覧を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet unmanaged -- ...enp1s0
デバイスの横にあるunmanaged
の状態は、NetworkManager がこのデバイスを管理しないことを示します。
関連情報
3.3.11.2. NetworkManager でデバイスの非管理として一時的に設定
unmanaged
として設定できます。この手順では、NetworkManager で enp1s0
インターフェースを unmanaged (管理外) として永続的に設定する方法を説明します。
unmanaged
として永続的に設定するには、「NetworkManager で、デバイスを Unmanaged (管理外) として永続的に設定」 を参照してください。
手順
- 必要に応じて、デバイスの一覧を表示して、設定するデバイスを
unmanaged
として識別します。#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ... enp1s0
デバイスをunmanaged
の状態に設定します。#
nmcli device set enp1s0 managed no
検証手順
- デバイスの一覧を表示します。
#
nmcli device status
DEVICE TYPE STATE CONNECTION enp1s0 ethernet unmanaged -- ...enp1s0
デバイスの横にあるunmanaged
の状態は、NetworkManager がこのデバイスを管理しないことを示します。