GNU/Linux >> Linux の 問題 >  >> Linux

nmcliを使用してLinuxコマンドラインからネットワーク接続を管理する

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.secondaries

DHCPを使用するように接続を元に戻します。 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
  1. コマンドラインからリモートでLinuxワークスペースを構成する

  2. Linuxコマンドラインからソフトウェアをインストールする方法

  3. LinuxコマンドラインからのGoogleドライブの使用

  1. パス–Linuxコマンドラインからパスワードを管理する

  2. Linux コマンド ラインの基本 – コマンド ラインからのコマンドの実行

  3. Linux コマンドラインからの SHA-256 ハッシュの生成

  1. Linuxコマンドラインでのパイプの操作

  2. LibreOffice、lprコマンドを使用してコマンドラインから印刷しますか?

  3. Linux でコマンドラインを使用して起動可能な ISO から起動可能な USB を作成する方法は?