亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在命令行中使用 nmcli 來管理網絡連接

 

nmcli 命令賦予你直接在 linux 命令行操作 NetworkManager 工具的能力。

• 來源:linux.cn • 作者:Dave Mckay • 譯者:FSSlc •

(本文字數:12137,閱讀時長大約:14 分鐘)

 

nmcli 命令賦予你直接在 Linux 命令行操作 NetworkManager 工具的能力。它是 NetworkManager 軟件包集成的一部分,通過使用一些 應用程序接口 (API)來獲取 NetworkManager 的功能。

nmcli 發布于 2010 年,用以替代其他配置網絡接口和連接的方法,例如 ifconfig 。因為它是一個 命令行界面 (CLI)工具,被設計用在終端窗口和腳本中,所以對于那些工作在沒有 圖形用戶界面 (GUI)的系統的管理員來說,它是一個非常理想的工具。

ncmli 的語法

nmcli 命令可以使用選項來更改它的行為,使用子命令來告訴 nmcli 想使用它的那部分功能,使用操作來告訴 nmcli 你想執行什么操作。

$ nmcli <選項> <子命令> <操作>

nmcli 一共有 8 個子命令,每個子命令有一些相關的網絡操作:

  • help 提供有關 nmcli 命令和使用方法的幫助信息
  • general 返回 NetworkManager 的狀態和總體配置信息
  • networking 提供命令來查詢某個網絡連接的狀態和啟動、禁用連接的功能
  • radio 提供命令來查詢某個 WiFi 網絡連接的狀態和啟動、禁用連接的功能
  • monitor 提供命令來監控 NetworkManager 的活動并觀察網絡連接的狀態改變
  • connection 提供命令來啟用或禁用網絡接口、添加新的連接、刪除已有連接等功能
  • device 主要被用于更改與某個設備(例如接口名稱)相關聯的連接參數或者使用一個已有的連接來連接設備
  • secret 注冊 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

上面的命令使用了 connection 子命令中的 show 操作。

用來運行上面這個例子的測試機器上運行著 Ubuntu 20.04,它安裝了 3 個網絡適配器:enp0s3、enp0s8和 enp0s9。

連接管理

理解 nmcli 的術語是非常重要的。一個網絡 連接(connection)包含了一個連接的所有信息。你可以將它看作一個網絡 配置(configuration)。“連接”包含了與其相關的所有信息,包括 數據鏈路層 和 IP 地址信息 。它們是 OSI 網絡模型 中的第 2 和第 3 層。

當你在 Linux 上配置網絡時,通常來說你是在為某個網絡設備(它們是安裝在一個電腦中的網絡接口)配置連接。當一個連接被某個設備所使用,那么就可以說這個連接被 激活(active)或者 上線(up)了,反之是 停用(inactive)或 下線(down)

添加網絡連接

nmcli 允許你快速地創建網絡連接并同時為該連接指定參數。為了通過使用“有線連接 2” enp0s8 來創建一個新的連接,你可以利用 sudo 來運行下面的命令:

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

其中 type 選項指定需要一個 Ethernet 類型的連接,而 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 已經創建好了。它的 通用唯一標識符 (Universally Unique IDentifier)(UUID)也一同被賦予,并且其連接類型為 “Ethernet”。我們可以使用 up 子命令再加上連接名稱(或 UUID)來使得這個連接被激活:

$ 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 網絡接口設備綁定。

調整連接

nmcli 命令使得調整現有連接的參數變得更加容易。也許你想將某個網絡接口從 動態主機配置協議 (Dynamic Host Configuration Protocol)(DHCP)改為靜態 IP 地址。

假設你需要為你的新連接分配一個固定的 IP 地址 192.168.4.26,那么你需要使用兩個命令,一個用于設定 IP 地址,另一個用來將獲取 IP 地址的方法改為 manual(手動):

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

記得指定 子網掩碼 ,在我們這個測試的連接中,它是 無類域間路由 (Classless Inter-Domain Routing)(CIDR)中的 255.255.255.0 或 /24

為了使得你的更改生效,你需要通過停止再重新啟用該連接。下面的第一個命令是停用該連接,第二個命令則是啟用它:

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

假如你想將連接設置為使用 DHCP,則需要將上面的 manual 改為 auto(自動):

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

設備管理

nmcli 命令中的 device 子命令允許你管理安裝在你電腦中的網絡接口。

檢查設備狀態

可以使用下面的命令來快速檢查所有網絡接口的狀態:

$ 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  --  

顯示設備詳情

為了檢查某個網絡接口的詳情,可以使用 device 子命令中的 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,它是 udev 分配的
  • 網絡連接類型,在這個示例中是物理的 Ethernet 連接
  • 設備的 媒介訪問控制(media access control)(mac)地址,它被用來在網絡中識別該設備
  • 最大傳輸單元 ,在單個傳輸中最大協議數據單位的大小,任何大于這個大小的數據將被分為多個包來進行傳輸
  • 該設備當前已經處于連接狀態
  • 這個設備使用的連接名稱是 ethernet-enp0s8
  • 這個設備使用的 IP 地址如上面所要求的那樣,被設置為 192.168.4.26/24

其他的信息則是與這個設備連接的網絡相關的默認路由和網關設置信息。

nmcli 的交互式編輯器

盡管 nmcli 是一個命令行工具,但它還包含一個基本的交互式編輯器,edit 子命令將為你指定的連接打開一個交互式編輯器,例如:

$ nmcli connection edit ethernet-enp0s8

它將顯示少量的幫助文字,接著是 nmcli 的命令提示符:

===| 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>

你想改變的屬性是 method,再繼續敲 set method auto 然后敲 Enter 鍵:

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

假如你想讓這個連接清除掉這個靜態 IP 地址,則請敲 Enter 鍵,如果要保留,則輸入 no 然后敲 Enter 鍵。假如你想在將來再次使用它,你可以保留這個 IP 地址。即便存儲了一個靜態的 IP 地址,如果 method 被設置為 auto ,它仍然會使用 DHCP。

最后輸入 save 來保存你的更改:

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

輸入 quit 來離開 nmcli 的交互式編輯器窗口。假如你不想離開,可以輸入 back 來回到最開始的命令行提示符界面,然后繼續使用這個編輯器。

nmcli 的更多內容

瀏覽交互式編輯器,你就可以看到 nmcli 有多少設定和每個設定有多少屬性。交互式編輯器是一個簡潔的工具,但如果需要在命令行或者在腳本中使用 nmcli,你還是需要使用常規的命令行版本。

現在你有了這些基礎知識,你還可以查看 nmcli 的 man 頁面 來查看它還可以提供什么更多功能。


via: opensource.com

作者: Dave McKay 選題: lujun9972 譯者: FSSLC 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出

分享到:
標簽:連接 網絡
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定