nmcli網絡配置命令



nmcli使用方法非常類似linux ip命令、cisco交換機命令,並且支持tab補全,也可在命令最后通過-h、--help、help查看幫助。在nmcli中有2個命令最為常用:

nmcli語法:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
   OBJECT和COMMAND可以用全稱也可以用簡稱,最少可以只用一個字母,建議用頭三個字母。OBJECT里面我們平時用的最多的就是connection和device,還有其他的選項在里暫時不介紹,這里需要簡單區分一下connection和device

詳細的介紹請看這篇文章:RHEL/CentOS系列發行版nmcli命令概述

這里主要介紹命令的使用

1、查看網絡接口信息
--------------------------------------------------------------
nmcli          ##查看ip(類似於ifconfig、ip addr)

nmcli device status      ##所有接口的簡略信息

nmcli device show       ##所有接口的詳細信息

nmcli device show interface-name     ##特定接口的詳細信息
--------------------------------------------------------------

2、查看連接信息
--------------------------------------------------------------
nmcli connection show         ##所有連接的簡略信息

nmcli connection show --active      ##顯示激活的連接

nmcli connection show inteface-name   ##某個接口的詳細連接信息
--------------------------------------------------------------

3、激活連接與取消激活鏈接
--------------------------------------------------------------
#激活連接
nmcli connection up connection-name
nmcli device connect interface-name

#取消激活鏈接
nmcli connection down connection-name    ##這個操作當取消一個激活后,如果有其它連接會自動激活其它連接
nmcli device disconnect interface-name     ##這個操作會取消接口上的激活,如果有其它連接也不會自動激活其它連接
--------------------------------------------------------------
建議使用 nmcli device disconnect(connect) interface-name,因為連接斷開可將該接口放到“手動”模式,這樣做用戶讓 NetworkManager 啟動某個連接前,或發生外部事件(比如載波變化、休眠或睡眠)前,不會啟動任何自動連接。


4、創建動態獲取ip地址的連接
--------------------------------------------------------------
nmcli connection add type ethernet con-name connection-name ifname interface-name

add表示添加連接,type后面是指定創建連接時候必須指定類型,類型有很多,可以通過nmcli c add type -h看到,這里指定為ethernet。con-name后面是指定創建連接的名字,ifname后面是指定物理設備,網絡接口

例子:nmcli connection add type ethernet con-name dhcp-ens33 ifname ens33
--------------------------------------------------------------

5、創建靜態ip地址連接
--------------------------------------------------------------
nmcli connection add type ethernet con-name connection-name ifname interface-name ipv4.method manual ipv4.addresses address ipv4.gateway address

ipv4.addresses后面指定網卡ipv4的地址,ipv4.gateway后面指定網卡的ipv4網關

例子:nmcli connection add type ethernet con-name static-enp0s3 ifname enp0s3 ipv4.method manual ipv4.addresses 192.168.1.115/24 ipv4.gateway 192.168.1.1
--------------------------------------------------------------
注意:創建連接后,NetworkManager 自動將 connection.autoconnect 設定為 yes。還會將設置保存到 /etc/sysconfig/network-scripts/connection-name 文件中,且自動將 ONBOOT 參數設定為 yes。

6、常用參數和網卡配置文件參數的對應關系這個只使用RHEL系列的發行版,不適合Debian系列發行版
--------------------------------------------------------------

7、修改連接配置

--------------------------------------------------------------
#添加一個ip地址
nmcli connection modify connection-name ipv4.addresses 192.168.0.58     ##如果已經存在ip會更改現有ip

#給eth0添加一個子網掩碼(NETMASK)
nmcli connection modify connection-name ipv4.addresses 192.168.0.58/24

#獲取方式設置成手動(BOOTPROTO=static/none)

nmcli connection modify connection-name ipv4.method manual

#獲取方式設置成自動(BOOTPROTO=dhcp)

nmcli connection modify connection-name ipv4.method auto

#添加DNS

nmcli connection modify connection-name ipv4.dns 114.114.114.114

#刪除DNS

nmcli connection modify connection-name -ipv4.dns 114.114.114.114 (注意這里的減號)

#添加一個網關(GATEWAY)

nmcli connection modify connection-name ipv4.gateway 192.168.0.2

#可一塊寫入:

nmcli connection modify connection-name ipv4.dns 114.114.114.114 ipv4.gateway 192.168.0.2

#修改連接是否隨開機激活
nmcli connection modify connection-name connection.autoconnect no/on

#配置靜態路由,重啟系統依然生效

nmcli connection modify connection-name +ipv4.routes "192.168.12.0/24 10.10.10.1"

這樣會將 192.168.122.0/24 子網的流量指向位於 10.10.10.1 的網關,同時在 /etc/sysconfig/network-scripts/目錄下生產一個route-connection-name的文件,這里記錄了這個連接的路由信息

--------------------------------------------------------------

8、重載connection
--------------------------------------------------------------
#重載所有ifcfg到connection(不會立即生效,在通過配置文件更改后需要做這個操作讓NM知道你做了更改,重新激活連接或重啟NM服務后生效)
nmcli connection reload
--------------------------------------------------------------
#重載指定ifcfg到connection(不會立即生效,重新激活連接或重啟NM服務后生效)
nmcli connection load /etc/sysconfig/network-scripts/ifcfg-connection-name
nmcli connection load /etc/sysconfig/network-scripts/route-connection-name
--------------------------------------------------------------

9、刪除connection
--------------------------------------------------------------
nmcli connection delete connection-name
--------------------------------------------------------------

10、設置主機名
--------------------------------------------------------------
#查詢當前主機名
nmcli general hostname

#修改主機名
nmcli general hostname new-hostname

#重啟hostname(主機名)服務
systemctl restart systemd-hostnamed
--------------------------------------------------------------
注意:CentOS7 / Redhat7 下的主機名管理是基於系統服務systemd-hostnamed,服務自身提供了hostnamectl命令用於修改主機名,推薦這種方式進行修改;
使用nmcli命令更改主機名時,systemd-hostnamed服務並不知曉 /etc/hostname 文件被修改,因此需要重啟服務去讀取配置;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM