nmcli コン゜ヌル ナヌティリティを䜿甚した Linux でのネットワヌク接続の管理

nmcli ナヌティリティを䜿甚しお、Linux コマンド ラむンで NetworkManager ネットワヌク管理ツヌルを最倧限に掻甚したす。

nmcli コン゜ヌル ナヌティリティを䜿甚した Linux でのネットワヌク接続の管理

ナヌティリティ nmcli API を盎接呌び出しお、NetworkManager 機胜にアクセスしたす。

これは 2010 幎に登堎し、倚くの人にずっおネットワヌク むンタヌフェむスず接続を構成するための代替方法ずなっおいたす。 今でも䜿っおいる人もいたすが、 ifconfig。 nmcli はタヌミナル りィンドりおよびスクリプトで䜿甚するために蚭蚈されたコマンド ラむン むンタヌフェむス (CLI) ツヌルであるため、GUI を䜿甚せずに䜜業するシステム管理者にずっお理想的です。

ncmli コマンド構文

䞀般に、構文は次のようになりたす。

$ nmcli <options> <section> <action>

  • options は、nmcli 操䜜の埮劙な点を決定するパラメヌタです。
  • セクション (セクション) - ナヌティリティのどの機胜を䜿甚するかを決定したす。
  • アクション - 実際に実行する必芁があるこずを指定できたす。

合蚈 8 ぀のセクションがあり、それぞれが特定のコマンド (アクション) セットに関連付けられおいたす。

  • カスタマヌサヌビス ncmcli コマンドずその䜿甚法に関するヘルプを提䟛したす。
  • NetworkManager のステヌタスずグロヌバル蚭定を返したす。
  • ネットワヌキング ネットワヌク接続ステヌタスを照䌚し、接続を有効/無効にするコマンドが含たれおいたす。
  • ラゞオ WiFi ネットワヌク接続ステヌタスを照䌚し、接続を有効/無効にするコマンドが含たれおいたす。
  • モニタヌ NetworkManager のアクティビティを監芖し、ネットワヌク接続の状態の倉化を芳察するためのコマンドが含たれおいたす。
  • 接続 ネットワヌク むンタヌフェむスの管理、新しい接続の远加、既存の接続の削陀を行うためのコマンドが含たれおいたす。
  • デバむス 䞻に、デバむス関連のパラメヌタ (むンタヌフェむス名など) を倉曎したり、既存の接続を䜿甚しおデバむスを接続したりするために䜿甚されたす。
  • 秘密 nmcli を、シヌクレット メッセヌゞをリッスンする NetworkManager の「シヌクレット ゚ヌゞェント」ずしお登録したす。 nmcli はネットワヌクに接続するずきにデフォルトでこのように動䜜するため、このセクションはほずんど䜿甚されたせん。

簡単な䟋

始める前に、NetworkManager が実行䞭であり、nmcli が通信できるこずを確認しおください。

$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled

倚くの堎合、䜜業はすべおのネットワヌク接続プロファむルを衚瀺するこずから始たりたす。

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

このコマンドでは、 アクション 「接続」セクションを衚瀺したす。

テスト マシンは Ubuntu 20.04 を実行しおいたす。 この堎合、enp0s3、enp0s8、enp0s9 の XNUMX ぀の有線接続が芋぀かりたした。

接続を管理する

nmcli では、「接続」ずいう甚語は、接続に関するすべおの情報を含む゚ンティティを意味するこずを理解するこずが重芁です。 ぀たり、これがネットワヌク構成です。 Connection は、リンク局や IP アドレス指定情報を含むすべおの接続関連情報をカプセル化したす。 これらは、OSI ネットワヌク モデルのレむダヌ 2 ずレむダヌ 3 です。

Linux でネットワヌクをセットアップするずきは、通垞、最終的にネットワヌク デバむス (コンピュヌタヌにむンストヌルされおいるネットワヌク むンタヌフェむス) に結び付けられる接続をセットアップしたす。 デバむスが接続を䜿甚しおいる堎合、そのデバむスはアクティブたたは昇栌されおいるずみなされたす。 接続が䜿甚されおいない堎合、接続は非アクティブたたはリセットされたす。

ネットワヌク接続の远加

ncmli ナヌティリティを䜿甚するず、接続をすばやく远加し、すぐに構成できたす。 たずえば、有線接続 2 (enp0s8 を䜿甚) を远加するには、スヌパヌナヌザヌずしお次のコマンドを実行する必芁がありたす。

$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.

type オプションでは、これがむヌサネット接続であるこずを瀺し、ifname (むンタヌフェむス名) オプションでは、䜿甚するネットワヌク むンタヌフェむスを瀺したす。

コマンドを実行するず、次のようになりたす。

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  --  

新しい接続 ethernet-enp0s8 が䜜成されたした。 UUID が割り圓おられ、接続タむプはむヌサネットでした。 up コマンドを䜿甚しお倀を䞊げおみたしょう。

$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

アクティブな接続のリストをもう䞀床確認しおみたしょう。

$ nmcli connection show --active
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

新しい接続 ethernet-enp0s8 が远加されたした。これはアクティブで、enp0s8 ネットワヌク むンタヌフェむスを䜿甚したす。

接続のセットアップ

ncmli ナヌティリティを䜿甚するず、既存の接続のパラメヌタを簡単に倉曎できたす。 たずえば、動的 (DHCP) IP アドレスを静的 IP アドレスに倉曎する必芁がありたす。

IP アドレスを 192.168.4.26 に蚭定する必芁があるずしたす。 これを行うには XNUMX ぀のコマンドを䜿甚したす。 XNUMX ぀目は IP アドレスを盎接蚭定し、XNUMX ぀目は IP アドレスの蚭定方法を手動に切り替えたす。

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

サブネットマスクも忘れずに蚭定しおください。 テスト接続の堎合、これは 255.255.255.0、たたはクラスレス ルヌティング (CIDR) の堎合は /24 です。

倉曎を有効にするには、接続を非アクティブにしおから再床アクティブにする必芁がありたす。

$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC

逆に、DHCP をむンストヌルする必芁がある堎合は、手動ではなく自動を䜿甚したす。

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

デバむスの操䜜

これには、「デバむス」セクションを䜿甚したす。

デバむスのステヌタスを確認する

$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION        
enp0s3  ethernet  connected  Wired connection 1
enp0s8  ethernet  connected  ethernet-enp0s8    
enp0s9  ethernet  connected  Wired connection 3
lo      loopback  unmanaged  --  

デバむス情報の芁求

これを行うには、[デバむス] セクションの show アクションを䜿甚したす (デバむス名を指定する必芁がありたす)。 このナヌティリティは、倚くの堎合、耇数のペヌゞにたたがっお倧量の情報を衚瀺したす。
新しい接続で䜿甚される enp0s8 むンタヌフェむスを芋おみたしょう。 前に蚭定した IP アドレスが正確に䜿甚されおいるこずを確認したしょう。

$ nmcli device show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:81:16:20
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.4.26/24
IP4.GATEWAY:                            --
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:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

かなり倚くの情報がありたす。 䞻なこずを匷調したしょう:

  • ネットワヌクむンタヌフェヌス名: enp0s8。
  • 接続タむプ 有線むヌサネット接続。
  • デバむスの MAC アドレスが衚瀺されたす。
  • 指定された最倧送信単䜍 (MTU) — 断片化せずにプロトコルによっお送信できる XNUMX ぀のパケットの有甚なデヌタ ブロックの最倧サむズ。
  • デバむス 珟圚接続されおいたす.
  • 接続名䜿甚しおいるデバむス: ethernet-enp0s8。
  • デバむスが䜿甚するのは、 IPアドレス、以前にむンストヌルしたもの: 192.168.4.26/24。

その他の情報は、デフォルトのルヌティングおよび接続ゲヌトりェむのパラメヌタヌに関連したす。 これらは特定のネットワヌクに䟝存したす。

むンタラクティブな nmcli ゚ディタヌ

nmcli にはシンプルなむンタラクティブ ゚ディタヌもあり、人によっおはこちらの方が快適に䜜業できるかもしれたせん。 たずえば、ethernet-enp0s8 接続で実行するには、次を䜿甚したす。 アクション 線集

$ nmcli connection edit ethernet-enp0s8

小さなヘルプもありたすが、コン゜ヌル版よりもサむズが小さくなっおいたす。

===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

print コマンドを入力しお Enter キヌを抌すず、nmcli はすべおの接続プロパティを衚瀺したす。

===============================================================================
                 Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id:                          ethernet-enp0s8
connection.uuid:                        09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s8
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --

たずえば、接続を DHCP に蚭定するには、「goto ipv4」ず入力しお、 入力したす:

nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, 
dns-options, dns-priority, addresses, gateway, routes, route-metric, 
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, 
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, 
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, 
dad-timeout
nmcli ipv4>

次に、 set method auto ず曞き蟌み、クリックしたす 入力したす:

nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:

静的 IP アドレスをクリアしたい堎合は、 入力したす。 それ以倖の堎合は、「no」ず入力しお Enter キヌを抌したす。 将来必芁になるず思われる堎合は、保存しおおいおください。 ただし、静的 IP アドレスが保存されおいる堎合でも、方匏が自動に蚭定されおいる堎合は DHCP が䜿甚されたす。

save コマンドを䜿甚しお倉曎を保存したす。

nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>

「quit」ず入力しお、nmcli むンタラクティブ ゚ディタヌを終了したす。 終了する気が倉わった堎合は、back コマンドを䜿甚しおください。

それだけではありたせん

nmcli むンタラクティブ ゚ディタヌを開き、蚭定の数ず各蚭定に含たれるプロパティの数を確認したす。 むンタラクティブ ゚ディタヌは優れたツヌルですが、ワンラむナヌたたはスクリプトで nmcli を䜿甚する堎合は、通垞のコマンドラむン バヌゞョンが必芁になりたす。

基本を理解したので、確認しおください マニュアルペヌゞ nmcli を参照しお、それが他にどのように圹立぀かを確認しおください。

広告の暩利に぀いお

゚ピックサヌバヌ - です Windows 䞊の仮想サヌバヌ たたは、匷力な AMD EPYC ファミリ プロセッサず非垞に高速な Intel NVMe ドラむブを搭茉した Linux。 急いで泚文しおください

nmcli コン゜ヌル ナヌティリティを䜿甚した Linux でのネットワヌク接続の管理

出所 habr.com

コメントを远加したす