環境說明:
博客使用的linux版本:CentOS Linux release 7.7.1908 (Core)
終端漢化:漢化是爲了方便學習,點擊這裏查看
【本期這裏使用的是本地服務器; cat /etc/redhat-release】
yum源:阿里源
一、nmcli相關簡介
NetworkManager:一個系統守護進程,有多種可用的圖形化前端
NetworkManager會不斷掃描系統上網絡硬件的變化以及新的接入點。如果有新的有線網絡可用,則NetworkManager會自動切換到該有線網絡 。如果電線斷開, NetworkManager會悄悄切換回首選的無線連接。
nmcli:
- nmcli是用於控制NetworkManager和報告網絡狀態的命令行工具。它可以替代 nm-applet或其他圖形客戶端。 nmcli用於創建,顯示,編輯,刪除,激活和停用網絡連接,以及控制和顯示網絡設備狀態
- 通過nmcli使用NetworkManager,而不是手動管理網絡連接。nmcli支持簡潔的輸出格式,該格式更適合腳本處理。
二、演示環境準備
1.安裝linux系統【CentOS Linux release 7.7.1908 (Core)】
2.VMware 添加多個網卡【我這裏添加兩個,nat模式】
3. 開啓虛擬機
4. nmcli命令使用前要啓動 NetworkManager服務
rpm -qa |grep NetworkManager #查看是否安裝了對應包
dnf install -y NetworkManager #安裝了可以跳過本步,未安執行安裝
systemctl start NetworkManager #centos7啓動方法
5. 驗證 nmcli 命令是否可用
nmcli -v #查看nmcli版本
nmcli -t -f RUNNING general #顯示NetworkManager是否在運行
nmcli -t -f STATE general #顯示NetworkManager運行狀態
三、nmcli常用參數介紹
參數 | 含義 |
---|---|
-a | 停止並詢問所有缺少的必需參數網絡 |
-c | 監控和管理網絡設備的連接 |
-f | 指定打印那些字段 |
d | 監控和管理網絡設備的接口 |
-g | 打印指定字段中的值 |
-p | 對齊值頁眉,更容易閱讀 |
-t | 簡潔打印 |
-v | 顯示nmcli版本 |
四、nmcli語法格式
- 網絡控制命令
nmcli networking { on | off | connectivity } [ARGUMENTS…] - 連接管理
nmcli connection { show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export } [ARGUMENTS…]
五、nmcli命令應用
1. 網絡控制命令
- 網絡開啓、關閉
nmcli radio wifi off #關閉wifi
nmcli networking off #關閉網絡
nmcli networking on #開啓網絡
- 網絡連通性
nmcli -p networking connectivity
補充內容:
常見狀態 | 含義 |
---|---|
none | 主機未連接到任何網絡。 |
portal | 無法訪問Internet |
limited | 主機已連接到網絡,但無法訪問Internet |
full | 主機已連接到網絡,並且可以訪問Internet |
unknown | 找不到連接狀態 |
2.連接管理命令
- 查看所有網絡連接/查看活動網絡連接
nmcli -p connection #顯示所有網絡連接信息
nmcli -p device status #查看所有的網卡設備
- 查看指定網卡詳細信息
nmcli device show ens37 #顯示指定網卡的詳細信息
nmcli device show #顯示所有網卡的詳細信息
- 停用、啓用和斷開網卡
nmcli connection down '有線連接 1' #關閉ens37的網絡連接
nmcli connection up '有線連接 1' #打開ens37的網絡連接
nmcli device disconnect ens37 #斷開ens37設備
nmcli connection delete '有線連接 1' #刪除ens37設備 有線連接1 的網絡配置文件
nmcli connection reload #重新加載配置文件
nmcli dev connect ens37 #連接ens37設備
#這裏ens37 設備的連接叫 有線連接1 在你禁用後重新激活會話就可以解決了
- nmcli 網卡配置 (ens37示例)
nmcli connection modify ens37 connection.autoconnect yes #設置ens37設備開機啓動
nmcli connection modify ens37 ipv4.method manual #關閉dhcp
nmcli connection modify ens37 ipv4.addresses 192.168.243.38/24 #修改iPv4地址
nmcli connection modify ens37 +ipv4.addresses 192.168.243.39/24 #添加ipv4地址
#nmcli connection modify ens37 -ipv4.addresses 192.168.243.39/24 #刪除ipv4地址
nmcli connection modify ens37 ipv4.gateway 192.168.243.254 #修改網關
nmcli connection modify ens37 ipv4.dns 114.114.114.114 #修改dns
nmcli connection modify ens37 +ipv4.dns 8.8.8.8 #添加dns
nmcli connection down ens37 #停用網絡連接
nmcli connection up ens37 #啓用網絡連接
修改後網卡配置文件中的內容
HWADDR=00:0C:29:24:D1:8B
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
UUID=f02ffae7-0799-4b18-8a5c-ebe14383f06a
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.243.38
PREFIX=24
GATEWAY=192.168.243.254
DNS1=114.114.114.114
DNS2=8.8.8.8
~
注意:修改配置文件後需要重啓網卡連接生效
nmcli connection down ens37 #停用網絡連接
nmcli connection up ens37 #啓用網絡連接
六、 補充:網卡配置文件說明
- 網卡配置文件路徑:/etc/sysconfig/network-scripts
ll /etc/sysconfig/network-scripts/ifcfg-*
#都是網卡配置文件
我們也可以直接編輯網卡配置文件實現以上功能
HWADDR=00:0C:29:24:D1:8B #物理mac地址
TYPE=Ethernet #網絡類型標識
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp #獲取ip地址方式,static使用靜態IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no #yes時激活的設備的IPv4配置失敗意味着激活被認爲是整體故障
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no #yes時激活的設備的IPv6配置失敗意味着激活被認爲是整體故障
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37 #連接名稱
UUID=f02ffae7-0799-4b18-8a5c-ebe14383f06a #網卡唯一標識
DEVICE=ens37 #網卡名稱
ONBOOT=yes #設置開機是否重啓網卡