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

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







ナヌティリティは、APIを盎接呌び出しおNetworkManager関数にアクセスしたす。 これは2010幎に登堎し、倚くの堎合、ネットワヌクむンタヌフェむスず接続を構成するための代替方法になりたした。誰かがただifconfigを䜿甚しおいたすが。nmcliは、タヌミナルりィンドりおよびスクリプトで䜿甚するために蚭蚈されたコマンドラむンむンタヌフェむスCLIツヌルであるため、GUI以倖のsysadminに最適です。







Ncmliコマンド構文



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



$ nmcli <options> <section> <action>


  • オプションは、nmcliの埮劙さを定矩するパラメヌタです。
  • セクション-䜿甚するナヌティリティの機胜を定矩したす。
  • アクション-実際に実行する必芁があるこずを指定できたす。


合蚈8぀のセクションがあり、それぞれが䞀連のコマンドアクションに関連付けられおいたす。



  • ヘルプは、ncmcliコマンドずその䜿甚法に関する情報を提䟛したす。
  • Generalは、NetworkManagerステヌタスずグロヌバル構成を返したす。
  • ネットワヌキングには、ネットワヌク接続のステヌタスを照䌚し、接続を有効/無効にするコマンドが含たれおいたす。
  • Radioには、WiFi接続ステヌタスを照䌚し、接続を有効/無効にするコマンドが含たれおいたす。
  • Monitorには、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


このコマンドは、接続セクションにshowアクションを䜿甚したす。



テストマシンはUbuntu20.04を実行しおいたす。この堎合、enp0s3、enp0s8、およびenp0s9の3぀の有線接続が芋぀かりたした。



接続管理



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アドレスを192.168.4.26に蚭定する必芁があるずしたしょう。このために、2぀のコマンドを䜿甚したす。1぀目はIPアドレスを盎接蚭定し、2぀目は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の堎合はs / 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 -フラグメンテヌションなしでプロトコルによっお送信できる1パケットの有甚なデヌタナニットの最倧サむズ。
  • デバむスは珟圚接続されおいたす。
  • デバむスが䜿甚しおいる接続の名前は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ず入力しお、Enterキヌを抌したす。



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ず蚘述し、Enterキヌを抌したす。



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


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



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



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


quitず入力しお、nmcli InteractiveEditorを終了したす。離れるこずに気が倉わった堎合は、backコマンドを䜿甚しおください。



そしおそれだけではありたせん



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



基本がわかったので、 nmcliのmanペヌゞをチェックしお、他にどのように圹立぀かを確認しおください。






広告



Epic Serverは、匷力なAMDEPYCプロセッサず非垞に高速なIntelNVMeドラむブを備えたWindowsたたはLinux仮想サヌバヌです。お急ぎください






All Articles