這篇文章主要介紹在命令行中如何使用nmcli來(lái)管理網(wǎng)絡(luò)連接,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出興和免費(fèi)做網(wǎng)站回饋大家。
nmcli 命令賦予你直接在 Linux 命令行操作 NetworkManager 工具的能力。
nmcli 命令賦予你直接在 Linux 命令行操作 NetworkManager 工具的能力。它是 NetworkManager 軟件包集成的一部分,通過(guò)使用一些 應(yīng)用程序接口(API)來(lái)獲取 NetworkManager 的功能。
nmcli
發(fā)布于 2010 年,用以替代其他配置網(wǎng)絡(luò)接口和連接的方法,例如 ifconfig。因?yàn)樗且粋€(gè) 命令行界面(CLI)工具,被設(shè)計(jì)用在終端窗口和腳本中,所以對(duì)于那些工作在沒(méi)有 圖形用戶界面(GUI)的系統(tǒng)的管理員來(lái)說(shuō),它是一個(gè)非常理想的工具。
nmcli
命令可以使用選項(xiàng)來(lái)更改它的行為,使用子命令來(lái)告訴 nmcli
想使用它的那部分功能,使用操作來(lái)告訴 nmcli
你想執(zhí)行什么操作。
$ nmcli <選項(xiàng)> <子命令> <操作>
nmcli
一共有 8 個(gè)子命令,每個(gè)子命令有一些相關(guān)的網(wǎng)絡(luò)操作:
help
提供有關(guān) nmcli
命令和使用方法的幫助信息
general
返回 NetworkManager 的狀態(tài)和總體配置信息
networking
提供命令來(lái)查詢某個(gè)網(wǎng)絡(luò)連接的狀態(tài)和啟動(dòng)、禁用連接的功能
radio
提供命令來(lái)查詢某個(gè) WiFi 網(wǎng)絡(luò)連接的狀態(tài)和啟動(dòng)、禁用連接的功能
monitor
提供命令來(lái)監(jiān)控 NetworkManager 的活動(dòng)并觀察網(wǎng)絡(luò)連接的狀態(tài)改變
connection
提供命令來(lái)啟用或禁用網(wǎng)絡(luò)接口、添加新的連接、刪除已有連接等功能
device
主要被用于更改與某個(gè)設(shè)備(例如接口名稱(chēng))相關(guān)聯(lián)的連接參數(shù)或者使用一個(gè)已有的連接來(lái)連接設(shè)備
secret
注冊(cè) nmcli
來(lái)作為一個(gè) NetworkManager 的秘密代理,用以監(jiān)聽(tīng)秘密信息。這個(gè)子命令很少會(huì)被用到,因?yàn)楫?dāng)連接到網(wǎng)絡(luò)時(shí),nmcli
會(huì)自動(dòng)做這些事
首先,我們驗(yàn)證一下 NetworkManager 正在運(yùn)行并且 nmcli
可以與之通信:
$ nmcli generalSTATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled enabled enabled
探測(cè)總是管理一個(gè)系統(tǒng)的首要部分。為了列出內(nèi)存或磁盤(pán)上的網(wǎng)絡(luò)連接配置,可以使用下面的命令:
$ nmcli connection showNAME UUID TYPE DEVICEWired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
上面的命令使用了 connection
子命令中的 show
操作。
用來(lái)運(yùn)行上面這個(gè)例子的測(cè)試機(jī)器上運(yùn)行著 Ubuntu 20.04,它安裝了 3 個(gè)網(wǎng)絡(luò)適配器:enp0s3
、enp0s8
和 enp0s9
。
理解 nmcli
的術(shù)語(yǔ)是非常重要的。一個(gè)網(wǎng)絡(luò)連接包含了一個(gè)連接的所有信息。你可以將它看作一個(gè)網(wǎng)絡(luò)配置。“連接”包含了與其相關(guān)的所有信息,包括 數(shù)據(jù)鏈路層 和 IP 地址信息 。它們是 OSI 網(wǎng)絡(luò)模型 中的第 2 和第 3 層。
當(dāng)你在 Linux 上配置網(wǎng)絡(luò)時(shí),通常來(lái)說(shuō)你是在為某個(gè)網(wǎng)絡(luò)設(shè)備(它們是安裝在一個(gè)電腦中的網(wǎng)絡(luò)接口)配置連接。當(dāng)一個(gè)連接被某個(gè)設(shè)備所使用,那么就可以說(shuō)這個(gè)連接被激活或者上線了,反之是停用或下線。
nmcli
允許你快速地創(chuàng)建網(wǎng)絡(luò)連接并同時(shí)為該連接指定參數(shù)。為了通過(guò)使用“有線連接 2” enp0s8
來(lái)創(chuàng)建一個(gè)新的連接,你可以利用 sudo
來(lái)運(yùn)行下面的命令:
$ sudo nmcli connection add type ethernet ifname enp0s8Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.
其中 type
選項(xiàng)指定需要一個(gè) Ethernet 類(lèi)型的連接,而 ifname
(接口名)選項(xiàng)指定你想要為這個(gè)連接使用的網(wǎng)絡(luò)接口設(shè)備。
讓我們看看發(fā)生了什么變化:
$ nmcli connection showNAME UUID TYPE DEVICEWired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet --
通過(guò)上圖可以看到新的連接 ethernet-enp0s8
已經(jīng)創(chuàng)建好了。它的 通用唯一標(biāo)識(shí)符(UUID)也一同被賦予,并且其連接類(lèi)型為 “Ethernet”。我們可以使用 up
子命令再加上連接名稱(chēng)(或 UUID)來(lái)使得這個(gè)連接被激活:
$ nmcli connection up ethernet-enp0s8Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
再次查看激活的連接:
$ nmcli connection show --activeNAME UUID TYPE DEVICEWired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
可以看到新的連接 ethernet-enp0s8
現(xiàn)在已經(jīng)被激活了,并且與 enp0s8
網(wǎng)絡(luò)接口設(shè)備綁定。
nmcli
命令使得調(diào)整現(xiàn)有連接的參數(shù)變得更加容易。也許你想將某個(gè)網(wǎng)絡(luò)接口從 動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)改為靜態(tài) IP 地址。
假設(shè)你需要為你的新連接分配一個(gè)固定的 IP 地址 192.168.4.26
,那么你需要使用兩個(gè)命令,一個(gè)用于設(shè)定 IP 地址,另一個(gè)用來(lái)將獲取 IP 地址的方法改為 manual
(手動(dòng)):
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24$ nmcli connection modify ethernet-enp0s8 ipv4.method manual
記得指定 子網(wǎng)掩碼,在我們這個(gè)測(cè)試的連接中,它是 無(wú)類(lèi)域間路由(CIDR)中的 255.255.255.0
或 /24
為了使得你的更改生效,你需要通過(guò)停止再重新啟用該連接。下面的第一個(gè)命令是停用該連接,第二個(gè)命令則是啟用它:
$ nmcli connection down ethernet-enp0s8Connection '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)
假如你想將連接設(shè)置為使用 DHCP,則需要將上面的 manual
改為 auto
(自動(dòng)):
$ nmcli connection modify ethernet-enp0s8 ipv4.method auto
nmcli
命令中的 device
子命令允許你管理安裝在你電腦中的網(wǎng)絡(luò)接口。
可以使用下面的命令來(lái)快速檢查所有網(wǎng)絡(luò)接口的狀態(tài):
$ nmcli device statusDEVICE TYPE STATE CONNECTION enp0s3 ethernet connected Wired connection 1enp0s8 ethernet connected ethernet-enp0s8 enp0s9 ethernet connected Wired connection 3lo loopback unmanaged --
為了檢查某個(gè)網(wǎng)絡(luò)接口的詳情,可以使用 device
子命令中的 show
操作。假如你不提供某個(gè)設(shè)備的名稱(chēng),那么會(huì)獲取并展示所有設(shè)備的詳情。你可以上下翻動(dòng)來(lái)查看這些信息。
要查看你最近添加的連接所對(duì)應(yīng)的設(shè)備 enp0s8
,你可以使用下面的命令,請(qǐng)注意驗(yàn)證它使用的 IP 地址是否為先前你要求設(shè)置的那個(gè):
$ nmcli device show enp0s8GENERAL.DEVICE: enp0s8GENERAL.TYPE: ethernetGENERAL.HWADDR: 08:00:27:81:16:20GENERAL.MTU: 1500GENERAL.STATE: 100 (connected)GENERAL.CONNECTION: ethernet-enp0s8GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6WIRED-PROPERTIES.CARRIER: onIP4.ADDRESS[1]: 192.168.4.26/24IP4.GATEWAY: --IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64IP6.GATEWAY: --IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 103IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
上面的輸出非常細(xì)致,它主要顯示了下面這些內(nèi)容:
網(wǎng)絡(luò)接口名稱(chēng),在這個(gè)示例中是 enp0s8
,它是 udev 分配的
網(wǎng)絡(luò)連接類(lèi)型,在這個(gè)示例中是物理的 Ethernet 連接
設(shè)備的
媒介訪問(wèn)控制(MAC)地址,它被用來(lái)在網(wǎng)絡(luò)中識(shí)別該設(shè)備
最大傳輸單元,在單個(gè)傳輸中最大協(xié)議數(shù)據(jù)單位的大小,任何大于這個(gè)大小的數(shù)據(jù)將被分為多個(gè)包來(lái)進(jìn)行傳輸
該設(shè)備當(dāng)前已經(jīng)處于連接狀態(tài)
這個(gè)設(shè)備使用的連接名稱(chēng)是 ethernet-enp0s8
這個(gè)設(shè)備使用的 IP 地址如上面所要求的那樣,被設(shè)置為 192.168.4.26/24
其他的信息則是與這個(gè)設(shè)備連接的網(wǎng)絡(luò)相關(guān)的默認(rèn)路由和網(wǎng)關(guān)設(shè)置信息。
盡管 nmcli
是一個(gè)命令行工具,但它還包含一個(gè)基本的交互式編輯器,edit
子命令將為你指定的連接打開(kāi)一個(gè)交互式編輯器,例如:
$ 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, proxynmcli>
假如你輸入 print
然后敲擊 Enter
鍵, nmcli
將列舉出與這個(gè)接口相關(guān)的所有屬性。這些屬性有很多,你可以上下翻動(dòng)來(lái)查看這個(gè)列表:
=============================================================================== Connection profile details (ethernet-enp0s8)===============================================================================connection.id: ethernet-enp0s8connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5connection.stable-id: --connection.type: 802-3-ethernetconnection.interface-name: enp0s8connection.autoconnect: yesconnection.autoconnect-priority: 0connection.autoconnect-retries: -1 (default)connection.multi-connect: 0 (default)connection.auth-retries: -1connection.timestamp: 1593967212connection.read-only: noconnection.permissions: --connection.zone: --connection.master: --connection.slave-type: --connection.autoconnect-slaves: -1 (default)connection.secondaries: --
如果你想將你的連接改為 DHCP,則請(qǐng)輸入 goto ipv4
然后敲 Enter
鍵:
nmcli> goto ipv4You 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-timeoutnmcli ipv4>
你想改變的屬性是 method
,再繼續(xù)敲 set method auto
然后敲 Enter
鍵:
nmcli ipv4> set method autoDo you also want to clear 'ipv4.addresses'? [yes]:
假如你想讓這個(gè)連接清除掉這個(gè)靜態(tài) IP 地址,則請(qǐng)敲 Enter
鍵,如果要保留,則輸入 no
然后敲 Enter
鍵。假如你想在將來(lái)再次使用它,你可以保留這個(gè) IP 地址。即便存儲(chǔ)了一個(gè)靜態(tài)的 IP 地址,如果 method
被設(shè)置為 auto
,它仍然會(huì)使用 DHCP。
最后輸入 save
來(lái)保存你的更改:
nmcli ipv4> saveConnection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.nmcli ipv4>
輸入 quit
來(lái)離開(kāi) nmcli
的交互式編輯器窗口。假如你不想離開(kāi),可以輸入 back
來(lái)回到最開(kāi)始的命令行提示符界面,然后繼續(xù)使用這個(gè)編輯器。
瀏覽交互式編輯器,你就可以看到 nmcli
有多少設(shè)定和每個(gè)設(shè)定有多少屬性。交互式編輯器是一個(gè)簡(jiǎn)潔的工具,但如果需要在命令行或者在腳本中使用 nmcli
,你還是需要使用常規(guī)的命令行版本。
以上是“在命令行中如何使用nmcli來(lái)管理網(wǎng)絡(luò)連接”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站題目:在命令行中如何使用nmcli來(lái)管理網(wǎng)絡(luò)連接
網(wǎng)址分享:http://vcdvsql.cn/article30/peedso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、動(dòng)態(tài)網(wǎng)站、微信公眾號(hào)、全網(wǎng)營(yíng)銷(xiāo)推廣、外貿(mào)網(wǎng)站建設(shè)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)