成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

[[341673]]

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

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

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

ncmli 的語法

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

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

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

  • help 提供有關 nmcli 命令和使用方法的幫助信息
  • general 返回 NetworkManager 的狀態和總體配置信息
  • networking 提供命令來查詢某個網絡連接的狀態和啟動、禁用連接的功能
  • radio 提供命令來查詢某個 WiFi 網絡連接的狀態和啟動、禁用連接的功能
  • monitor 提供命令來監控 NetworkManager 的活動并觀察網絡連接的狀態改變
  • connection 提供命令來啟用或禁用網絡接口、添加新的連接、刪除已有連接等功能
  • device 主要被用于更改與某個設備(例如接口名稱)相關聯的連接參數或者使用一個已有的連接來連接設備
  • secret 注冊 nmcli 來作為一個 NetworkManager 的秘密代理,用以監聽秘密信息。這個子命令很少會被用到,因為當連接到網絡時,nmcli 會自動做這些事

簡單的示例

首先,我們驗證一下 NetworkManager 正在運行并且 nmcli 可以與之通信:

  1. $ nmcli general
  2. STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
  3. connected  full          enabled  enabled  enabled  enabled

探測總是管理一個系統的首要部分。為了列出內存或磁盤上的網絡連接配置,可以使用下面的命令:

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

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

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

連接管理

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

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

添加網絡連接

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

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

其中 type 選項指定需要一個 Ethernet 類型的連接,而 ifname(接口名)選項指定你想要為這個連接使用的網絡接口設備。

讓我們看看發生了什么變化:

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

通過上圖可以看到新的連接 ethernet-enp0s8 已經創建好了。它的 通用唯一標識符Universally Unique IDentifier(UUID)也一同被賦予,并且其連接類型為 “Ethernet”。我們可以使用 up 子命令再加上連接名稱(或 UUID)來使得這個連接被激活:

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

再次查看激活的連接:

  1. $ nmcli connection show --active
  2. NAME                UUID                                  TYPE      DEVICE
  3. Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
  4. ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  enp0s8
  5. 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(手動):

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

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

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

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

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

  1. $ nmcli connection modify ethernet-enp0s8 ipv4.method auto

設備管理

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

檢查設備狀態

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

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

顯示設備詳情

為了檢查某個網絡接口的詳情,可以使用 device 子命令中的 show 操作。假如你不提供某個設備的名稱,那么會獲取并展示所有設備的詳情。你可以上下翻動來查看這些信息。

要查看你最近添加的連接所對應的設備 enp0s8,你可以使用下面的命令,請注意驗證它使用的 IP 地址是否為先前你要求設置的那個:

  1. $ nmcli device show enp0s8
  2. GENERAL.DEVICE:                         enp0s8
  3. GENERAL.TYPE:                           ethernet
  4. GENERAL.HWADDR:                         08:00:27:81:16:20
  5. GENERAL.MTU:                            1500
  6. GENERAL.STATE:                          100 (connected)
  7. GENERAL.CONNECTION:                     ethernet-enp0s8
  8. GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
  9. WIRED-PROPERTIES.CARRIER:               on
  10. IP4.ADDRESS[1]:                         192.168.4.26/24
  11. IP4.GATEWAY:                            --
  12. IP4.ROUTE[1]:                           dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
  13. IP6.ADDRESS[1]:                         fe80::6d70:90de:cb83:4491/64
  14. IP6.GATEWAY:                            --
  15. IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103
  16. 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 子命令將為你指定的連接打開一個交互式編輯器,例如:

  1. $ nmcli connection edit ethernet-enp0s8

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

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

假如你輸入 print 然后敲擊 Enter 鍵, nmcli 將列舉出與這個接口相關的所有屬性。這些屬性有很多,你可以上下翻動來查看這個列表:

  1. ===============================================================================
  2.                  Connection profile details (ethernet-enp0s8)
  3. ===============================================================================
  4. connection.id:                          ethernet-enp0s8
  5. connection.uuid:                        09d26960-25a0-440f-8b20-c684d7adc2f5
  6. connection.stable-id:                   --
  7. connection.type:                        802-3-ethernet
  8. connection.interface-name:              enp0s8
  9. connection.autoconnect:                 yes
  10. connection.autoconnect-priority:        0
  11. connection.autoconnect-retries:         -1 (default)
  12. connection.multi-connect:               0 (default)
  13. connection.auth-retries:                -1
  14. connection.timestamp:                   1593967212
  15. connection.read-only:                   no
  16. connection.permissions:                 --
  17. connection.zone:                        --
  18. connection.master:                      --
  19. connection.slave-type:                  --
  20. connection.autoconnect-slaves:          -1 (default)
  21. connection.secondaries:                 --

如果你想將你的連接改為 DHCP,則請輸入 goto ipv4 然后敲 Enter 鍵:

  1. nmcli> goto ipv4
  2. 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
  3. nmcli ipv4>

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

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

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

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

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

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

nmcli 的更多內容

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

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

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-12-16 13:15:00

Linux服務器IP方法

2021-07-29 10:00:43

XMLXMLStarletLinux

2022-10-18 10:00:09

Linuxtcpdump命令

2019-05-09 15:12:20

Linux 系統 數據

2023-01-31 17:36:22

IPLinux網絡

2011-01-24 13:44:16

PING TCPIP Windows網

2010-08-24 09:10:14

Linux命令行工具

2018-11-05 13:50:44

Linux命令tcpdump

2014-03-06 14:42:36

Linux命令行

2021-11-15 14:30:49

Pythonargparse編程語言

2018-10-22 10:00:05

Linux命令ls

2023-03-02 19:36:34

C語言

2020-08-21 07:35:12

Linux命令行計算器

2010-06-01 19:24:40

SVN命令行

2022-08-14 19:19:14

Linux

2019-05-21 10:38:17

Linux命令行

2021-07-29 09:07:44

React視圖庫Web 開發

2022-02-14 08:21:48

Linux元字符

2022-11-20 16:21:33

Linuxping 命令網絡連接

2011-01-24 13:53:15

IP配置Windows網絡連接
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色综合99| 视频一区二区在线观看 | 久久精品国产一区二区三区不卡 | 国产一区二区三区网站 | 欧美色综合| 最大av在线| 狠狠做深爱婷婷综合一区 | 麻豆一区二区三区 | 高清av电影| 91精品国产一区二区三区 | 国产精品久久一区 | 久久躁日日躁aaaaxxxx | 国产一区在线免费观看 | 欧美日韩手机在线观看 | 玖玖视频 | 久久美女网 | 999国产精品视频 | 亚洲成人精选 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 99精品欧美一区二区三区综合在线 | 91视频入口| 一区二区三区国产好的精 | va精品| 久久精品免费一区二区三 | 国产一区二区电影 | 欧美aaa级| 黑色丝袜三级在线播放 | 国产一区二区三区在线免费 | 久久久久久国产 | 国产欧美日韩在线播放 | 国产这里只有精品 | 欧美一级二级三级视频 | 亚洲国产成人精品久久 | 精品二三区 | 日本精品视频一区二区 | 一区二区精品视频 | 日韩av成人在线观看 | av夜夜操 | 成人三级视频 | 亚洲巨乳自拍在线视频 | 久久精品一级 |