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 文件被修改,因此需要重啓服務去讀取配置;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章