nmcliコマンドを使用すると、Linuxコマンドラインから直接NetworkManagerツールの機能を利用できます。これは、アプリケーションプログラマーのインターフェース(API)を利用してNetworkManagerの機能にアクセスするNetworkManagerパッケージの不可欠な部分です。
nmcliは2010年にリリースされ、ifconfigなどのネットワークインターフェイスと接続を構成する他のモードに取って代わります。これは、ターミナルウィンドウおよびスクリプトで使用するように設計されたコマンドラインインターフェイス(CLI)ツールであるため、グラフィカルユーザーインターフェイス(GUI)のないシステムで作業するシステム管理者にとって理想的です。
ncmli構文
nmcliコマンドはオプションを受け入れます nmcliの動作を変更するセクション nmcliに、使用する機能とアクションを通知します。 何をしたいのかを教えてくれます:
$ nmcli
システム管理者の詳細
- Sysadminブログを有効にする
- 自動化されたエンタープライズ:自動化によってITを管理するためのガイド
- eBook:システム管理者向けのAnsible自動化
- 現場からの物語:IT自動化に関するシステム管理者ガイド
- eBook:SREおよびシステム管理者向けのKubernetesのガイド
- 最新のシステム管理者の記事
8つのセクションがあり、それぞれが特定のネットワークアクションのセットに関連しています。
- ヘルプ ncmcliのコマンドと使用法に関するヘルプを提供します。
- 一般 NetworkManagerのステータスとグローバル設定を取得します。
- ネットワーキング ネットワーク接続のステータスを照会し、接続を有効または無効にするコマンドを提供します。
- ラジオ WiFiネットワーク接続のステータスを照会し、接続を有効または無効にするコマンドを提供します。
- 監視 NetworkManagerアクティビティを監視し、ネットワーク接続のステータス変更を監視するコマンドを提供します。
- 接続 ネットワークインターフェイスを上下させたり、新しい接続を追加したり、既存の接続を削除したりするためのコマンドを提供します。
- デバイス 主に、デバイスに関連付けられているパラメータ(インターフェース名など)を変更したり、既存の接続を使用してデバイスを接続したりするために使用されます。
- 秘密 nmcliをシークレットメッセージをリッスンするNetworkManagerシークレットエージェントとして登録します。 nmcliはネットワークに接続するときにこれを自動的に行うため、これが必要になることはめったにありません。
最初のチェックとして、NetworkManagerが実行されており、nmcliがNetworkManagerと通信できることを確認します。
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
偵察は、多くの場合、システム管理の最初の部分です。すべてのメモリ内およびディスク上のネットワーク接続プロファイルを一覧表示するには:
有線接続1 ac3241e4-b424-35d6-aaa7-07498561688dイーサネットenp0s3有線接続2 2279d917-fa02-390c-8603-3083ec5a1d3eイーサネット/>
NAME UUID型デバイス
$ nmcli接続ショーenp0s8
有線接続352d89737-de92-35ec-b082-8cf2e5ac36e6イーサネットenp0s9
このコマンドはshow
を使用します connection
からのアクション セクション。
この例で使用されているテストマシンは、Ubuntu20.04を実行しています。 3つのネットワークアダプタがインストールされています: enp0s3
、 enp0s8
、および enp0s9
。
nmcliの命名法を理解することが重要です。ネットワークの接続 接続に関するすべての情報を保持するものです。これは、ネットワークの構成と考えることができます。 。接続は、データリンク層やIPアドレス情報など、接続に関連するすべての情報をカプセル化します。これは、OSIネットワークモデルのレイヤー2とレイヤー3です。
Linuxでネットワークを構成する場合、通常は、コンピューターにインストールされているネットワークインターフェイスであるネットワークデバイスに最終的にバインドする接続を構成します。デバイスが接続を使用している場合、その接続はアクティブであると言われます または上 。アクティブの反対は非アクティブです またはダウン 。
ncmliコマンドを使用すると、ネットワーク接続をすばやく作成し、それらの構成の要素を同時に指定できます。有線接続2を使用して新しい接続を追加するには、 enp0s8
、 sudo
を使用する必要があります :
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection'ethernet-enp0s8'(09d26960-25a0-440f-8b20-c684d7adc2f5)が正常に追加されました。
type
オプションはイーサネット接続を要求し、 ifname
(インターフェース名)オプションは、接続で使用するネットワークインターフェースデバイスを指定します。
何が起こったかを確認してください:
有線接続1 ac3241e4-b424-35d6-aaa7-07498561688dイーサネットenp0s3有線接続2 2279d917-fa02-390c-8603-3083ec5a1d3eイーサネット/>
NAME UUID型デバイス
$ nmcli接続ショーenp0s8
有線接続352d89737-de92-35ec-b082-8cf2e5ac36e6ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet-
新しい接続、 ethernet-enp0s8
、 作成されました。そのユニバーサル一意識別子(UUID)が割り当てられ、接続タイプはイーサネットです。 up
でアクティブにします コマンドの後に接続名(またはUUID)が続く:
$ nmcli connection up ethernet-enp0s8
接続が正常にアクティブ化されました(D-Busアクティブパス:/ org / freedesktop / NetworkManager / ActiveConnection / 4)
アクティブな接続をもう一度確認してください:
$nmcli接続表示--active
NAME UUID -c684d7adc2f5 ethernetenp0s8
有線接続352d89737-de92-35ec-b082-8cf2e5ac36e6ethernet enp0s9
新しい接続、 ethernet-enp0s8
、がアクティブになり、 enp0s8
にバインドされます ネットワークインターフェイスデバイス。
ncmliコマンドを使用すると、既存の接続のパラメーターを簡単に調整できます。おそらく、1つのネットワークインターフェイスを動的ホスト構成プロトコル(DHCP)から静的IPアドレスに切り替えたいと思うでしょう。
192.168.4.26
の固定IPアドレスが必要だとします。 あなたの新しい接続のために。これを実現するには、2つのコマンドを発行する必要があります。 1つはIPアドレスを設定し、もう1つはIPアドレスを取得する接続の方法を manual
に設定します。 :
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual
サブネットマスクを指定することを忘れないでください。このテストネットワークでは、 255.255.255.0
です。 、または / 24
クラスレスドメイン間ルーティング(CIDR)で。
変更を有効にするには、バウンスする必要があります 接続を停止し、再び起動して接続します。最初のコマンドは接続を切断し、2番目のコマンドは接続を再開します:
$nmcli接続ダウンイーサネット-enp0s8
接続'ethernet-enp0s8'が正常に非アクティブ化されました(D-Busアクティブパス:/ org / freedesktop / NetworkManager / ActiveConnection / 4)
$nmcli接続アップイーサネット- enp0s8
接続が正常にアクティブ化されました(D-Busアクティブパス:/ org / freedesktop / NetworkManager / ActiveConnection / 6)
DHCPを使用するように接続を設定する場合は、 auto
を使用します manual
の代わりに :
$ nmcli connection modify ethernet-enp0s8 ipv4.method auto
device
のコマンド nmcliコマンドのセクションでは、コンピューターにインストールされているネットワークインターフェイスを管理できます。
すべてのネットワークインターフェースのステータスをすばやく確認するには:
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected ethernet-enp0s8
enループバックアンマネージド-
ネットワークインターフェースの詳細を調べるには、 show
を使用します デバイス
からのアクション セクション。デバイス名を指定しない場合は、すべてのデバイスの詳細が取得されて表示されます。スクロールして上下にページを移動し、確認できます。
enp0s8
をご覧ください 、新しい接続が使用しているデバイス。使用中のIPアドレスが以前にリクエストしたアドレスであることを確認してください:
$ nmcli device show enp0s8
GENERAL.DEVICE:enp0s8
GENERAL.TYPE:8:00 ER:16 /> ER:01
GEN ER .MTU 1500
GENERAL.STATE:100(接続)
GENERAL.CONNECTION:イーサネットenp0s8
GENERAL.CON-PATH:/ ORG / freedesktop / NetworkManagerを/のActiveConnection / 6
有線PROPERTIES.CARRIER:192.168.4.26/24
IP4.GATEWAY:
IP4.ADDRESS [1]に -
IP4.ROUTE [1]:DST =192.168.4.0 / 24、nh =0.0.0.0、mt =103
IP6.ADDRESS [1]:fe80 ::6d70:90de:cb83:4491/64
IP6.GATEWAY:IP 6 <.ROUTE [1]:dst =fe80 ::/ 64、nh =::、mt =103
IP6.ROUTE [2]::/8:n =ff ta ble =255
応答は非常に詳細です。とりわけ、それは次のことを示しています:
- ネットワークインターフェース名 、この場合は
enp0s8
、udevによって割り当てられます。 - ネットワーク接続タイプ 、この場合は物理イーサネット接続です。
- デバイスのメディアアクセス制御(MAC)アドレス 、ネットワーク上のデバイスを識別します。
- 最大伝送ユニット。これは、1回のトランザクションで伝送できる最大のプロトコルデータユニットのサイズです。これより大きいものはすべて、いくつかのパケットに分割されます。
- このデバイスは現在接続されています 。
- 接続の名前 このデバイスの使用は
ethernet-enp0s8
。 - 接続のIPアドレス このデバイスを使用します。要求に応じて、
192.168.4.26 / 24
に設定されます 。
その他の情報は、接続先のネットワークに応じて、この接続に適用されたデフォルトのルーティングとゲートウェイの設定に関連しています。
nmcliのインタラクティブエディタ
これはコマンドラインツールですが、nmcliには基本的なインタラクティブエディタが含まれています。 編集コード> アクションは、指定した接続でインタラクティブエディタを開きます:
$ nmcli connection edit ethernet-enp0s8
少量のヘルプテキストが表示され、次にnmcliコマンドプロンプトが表示されます:
===| nmcliインタラクティブ接続エディター|===
既存の「802-3-ethernet」接続の編集:「ethernet-enp0s8」
「help」または「?」と入力します。使用可能なコマンドについては、
「print」と入力してすべての接続プロパティを表示します。
「describe[。 ]」と入力すると、プロパティの詳細な説明が表示されます。
You次の設定を編集できます:接続、802-3-イーサネット(イーサネット)、802-1x、dcb、sriov、ethtool、match、ipv4、ipv6、tc、proxy
nmcli>
print
と入力した場合 Enterを押します 、nmcliは、接続に関連付けられているすべてのプロパティを一覧表示します。多くのプロパティがあります。リストを上下にスクロールできます:
===============================================================================
接続プロファイルの詳細(ethernet-enp0s8)
===============================================================================
connection.id:ethernet-enp0s8
connection.uuid:960 -25 440f-8b20-c684d7adc2f5
connection.stable-id:-
connection.type:connect
connection .interface-name:8
connection.autoconnect-priority:0
connection.autoconnect-retries:-1(デフォルト)
connection.multi-connect:0(デフォルト)
connection.auth-retries: -1
connection.timestamp:1593967212
connection.read-only:no
connection.permissions:-
connection r /> connection.master:-
connection.slave-type:-
connection.autoconnect-slaves:-1(デフォルト)
connection.secondariesDHCPを使用するように接続を元に戻します。
goto ipv4
と入力します Enterを押します :nmcli> goto ipv4
次のプロパティを編集できます:method、dns、dns-search、dns-options、dns-priority、addresses、gateway、routes、route-metric、route-table、routing-ルール、ignore-auto-routes、ignore-auto-dns、dhcp-client-id、dhcp-iaid、dhcp-timeout、dhcp-send-hostname、dhcp-hostname、dhcp-fqdn、dhcp-hostname-flags、never-デフォルト、may-fail、dad-timeout
nmcli ipv4>変更するプロパティは
method
です 。set method auto
と入力します Enterを押します :nmcli ipv4> set method auto
'ipv4.addresses'もクリアしますか? [はい]:接続で静的IPアドレスを削除する場合は、 Enterを押します。 。保持するには、
no
と入力します Enterを押します 。将来また使用する可能性があると思われる場合は、保管しておくことができます。静的IPアドレスが保存されている場合でも、method
auto
に設定されています 、DHCPを使用します。
save
と入力します 変更を保存するには:nmcli ipv4> save
Connection'ethernet-enp0s8'(09d26960-25a0-440f-8b20-c684d7adc2f5)が正常に更新されました。
nmcli ipv4>
quit
と入力します nmcliインタラクティブエディタを終了します。終了したくない場合は、back
と入力します メインレベルに戻り、エディタを使い続けます。nmcliにはまだまだあります
インタラクティブエディタを参照して、設定の数と各設定のプロパティの数を確認してください。インタラクティブエディタは優れたツールですが、気の利いたワンライナーの場合、またはスクリプトでnmcliを使用するには、通常のコマンドラインバージョンが必要です。
基本がわかったので、nmcliのmanページをチェックして、他に何ができるかを確認してください。
Linux