CentOS7常用網絡管理命令總結

一、CentOS7網絡接口命名策略(systemd)
二、CentOS7的基礎網絡管理命令
2.1 NetworkManager服務
2.2 nmtui文本交互式工具
2.3 nmcli命令行接口工具
nmcli的語法說明
NetworkManager整體狀態顯示
顯示所有連接或僅活動的連接
顯示所有設備的狀態
顯示指定設備的所有連接屬性
添加動態的以太網連接(DHCP)
添加靜態的以太網連接
設置dns
設置靜態路由
清空指定連接下的靜態路由
2.5 直接編輯ifcfg-xxx文件
ip地址設置
路由設置
2.6 使用ip命令
添加IP地址
清除接口上的所有IP
添加/刪除靜態路由
三、主機名的修改
3.1 直接修改/etc/hostname
3.2 通過hostnamectl 修改
3.3 通過nmcli修改hostname
四、多網卡綁定
4.1 使用nmtui
4.2 使用nmcli
1) 創建bond0并設置ip
2) 添加從接口
五、橋接多網卡
六、VLAN接口

一、CentOS7網絡接口命名策略(systemd)

在centos7之前使用傳統接口命名(eth[0 1 2 …]),優點是簡單易記,但其缺點也很明顯,不能保證接口id與物理槽位一一對應,并且在添加、刪除、更換網卡時可能會出現接口id改變的問題,所以在centos7中使用了如下命名法則:

接口名 類型 命名格式 說明
eno1424112 以太網 eno<index> 用于板載網卡的命名,en代表以太網,o表示onboard(板載設備),index為設備索引號
ens1234123 以太網 ens<slot>[f<function>][d<dev_id>] 用于PCI熱插拔槽上設備命名,s表示slot,f表示function號(多功能pci設備上都有function號),d表示設備號
enp2s1234123 以太網 enp<bus>s<slot>[f<function>][d<dev_id>] 用于外接PCI設備命名,p表示pci總線id,s表示slot,f表示function號(多功能pci設備上都有function號),d表示設備號
enp2s1234123 以太網 enp<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>] 用于外接usb設備
enx78e7d1ea46da 以太網 enx<MAC> 網卡mac地址命名只是一種可供用戶選擇的方式,系統默認不使用這種方式
eth0 以太網 eth<id> 傳統的命名方案,在其他方法均失敗后使用,需要指定net.ifnames=0

補充說明: 
en代表以太網, 
w1代表WLAN, 
ww代表WWAN; 
要使用上述命名方案,系統必須已安裝biosdevname包及啟動biosdevname(啟動時內核參數需要添加biosdevname=1) 
要使用傳統命名法,可以通過編輯/etc/default/grub文件,GRUB_CMDLINE_LINUX的值追加上net.ifnames=0;然后使用grub2-mkconfig -o /etc/grub2.cfg重新生成grub2配置;重啟系統即可

網卡設備的重命名過程:

  1. 按/usr/lib/udev/rules.d/60-net.rules文件中的規則查看所有/etc/sysconfig/network-scripts/ifcfg-xxx文件,如果發現包含HWADDR的值與接口的mac地址匹配,則將該接口重命名為ifcfg-xxx文件中DEVICE指定的名稱;

  2. 如果上一步沒有重命名成功,但已安裝biosdevname且kernel啟動參數沒有設置為biosdevname=0;/usr/lib/udev/rules.d/71-biosdevname.rules中規則會讓biosdevname根據其命名規則重命名該網絡接口;

  3. /lib/udev/rules.d/75-net-description.rules中的規則讓udev通過檢測網卡設備來填充udev屬性,如:ID_NET_NAME_ONBOARD,ID_NET_NAME_SLOT,ID_NET_NAME_PATH,ID_NET_NAME_MAC。但有些設備的屬性可能會未定義;

  4. /usr/lib/udev/rules.d/80-net-name-slot.rules中將按照此屬性優先級順序:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH來重命名步驟1,2中沒有被重命名且kernel啟動參數沒有設置net.ifnames=0的網卡設備;如果所有屬性都沒有設置,網卡將不被重命名。

二、CentOS7的基礎網絡管理命令

centos7使用NetworkManager守護進程來管理網絡,常用的管理命令如下:

  1. nmtui 文本用戶接口

  2. nmcli 命令行接口

  3. control-center GNOME下的圖形接口

  4. nm-connection-editor GTK+ 3圖形接口

2.1 NetworkManager服務

安裝
yum install NetworkManager
啟動服務
systemctl start NetworkManager
查看服務狀態
systemctl status NetworkManager
開機啟動
systemctl enable NetworkManager

2.2 nmtui文本交互式工具

安裝
yum install NetworkManager-tui
使用
nmtui

5a557ee8-a5d2-4d8b-af38-9ed9da01826d.pngfd5144b6-043a-467d-be72-a3611dba172c.png

直接編輯指定網卡 
nmtui edit eno33554960
激活(up)指定網卡
nmtui connect eno33554960

2.3 nmcli命令行接口工具

無論是通過編輯修改ifcfg配置文件或使用nmcli工具修改網絡接口屬性,都要使用如下命令通知NetworkManager才會生效 
1) 通過編輯ifcfg修改:

# 重讀/etc/sysconfig/network-scripts下的所有ifcfg文件
nmcli connection reload
# 重讀指定的ifcfg文件
nmcli con load /etc/sysconfig/network-scripts/ifcfg-eno16777736

2) 通過nmcli工具修改:

# 重新關聯網絡接口
nmcli dev disconnect  eno16777736 ; nmcli con up eno16777736
nmcli的語法說明
命令格式:
nmcli OPTIONS OBJECT { COMMAND | help }
[root@centos7-template ~]# nmcli help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }OPTIONS   包含如下選項:
  -t[erse]                                  不輸出頭部標題信息,一般用于腳本執行
  -p[retty]                                  更加友好的輸出
  -m[ode] tabular|multiline                  指定輸出的模式,包括列表輸出和多行輸出
  -f[ields] <field1,field2,...>|all|common  僅輸出指定的字段內容
  -e[scape] yes|no                          當value中出現列分割符時轉義
  -n[ocheck]                                 don't check nmcli and NetworkManager versions
  -a[sk]                                     ask for missing parameters
  -w[ait] <seconds>                          set timeout waiting for finishing operations
  -v[ersion]                                 show program version
  -h[elp]                                    print this help
  OBJECT        包含如下:  
     g[eneral]       NetworkManager的通用狀態和操作
     n[etworking]    網絡控制相關  
     r[adio]         NetworkManager管理射頻卡配置  
     c[onnection]    NetworkManager的連接管理  
     d[evice]        設備管理  
     a[gent]         NetworkManager secret agent or polkit agent
NetworkManager整體狀態顯示
[root@centos7-template ~]# nmcli gen status
狀態    CONNECTIVITY  WIFI-HW  WIFI    WWAN-HW  WWAN   
連接的  全部          已啟用   已啟用  已啟用   已啟用
顯示所有連接或僅活動的連接
[root@centos7-template ~]# nmcli connection show
名稱         UUID                                  類型            設備        
有線連接 1   8be86794-a88a-4995-983c-6a7470586748  802-3-ethernet  --          
eno16777736  13756690-ac77-b776-4fc1-f5535cee6f16  802-3-ethernet  eno16777736 
test-lab     be5dda98-df56-4466-a7b1-73047f0bbb3d  802-3-ethernet  eno33554960
[root@centos7-template ~]# nmcli connection show -a
名稱         UUID                                  類型            設備        
eno16777736  13756690-ac77-b776-4fc1-f5535cee6f16  802-3-ethernet  eno16777736 
test-lab     be5dda98-df56-4466-a7b1-73047f0bbb3d  802-3-ethernet  eno33554960
顯示所有設備的狀態
[root@centos7-template ~]# nmcli dev status
設備         類型      狀態    CONNECTION  
eno16777736  ethernet  連接的  eno16777736 
eno33554960  ethernet  連接的  test-lab    
eno50332216  ethernet  已斷開  --          
lo           loopback  未管理  --
顯示指定設備的所有連接屬性
[root@centos7-template ~]# nmcli con show test-lab
connection.id:                          test-lab
connection.uuid:                        be5dda98-df56-4466-a7b1-73047f0bbb3d
connection.interface-name:              eno33554960
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   1465380794
connection.read-only:                   no
connection.permissions:                 
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.auto
connect-slaves:          -1 (default)
connection.secondaries:                 
connection.gateway-ping-timeout:        0
connection.metered:                     未知
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:   
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            manual
ipv4.dns:                               
ipv4.dns-search:                        
ipv4.addresses:                         10.10.10.10/24
ipv4.gateway:                           10.10.10.254
ipv4.routes:                            
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv6.method:                            auto
ipv6.dns:                               
ipv6.dns-search:                        
ipv6.addresses:                         
ipv6.gateway:                           --
ipv6.routes:                            
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (未知)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
GENERAL.名稱:                           test-lab
GENERAL.UUID:                           be5dda98-df56-4466-a7b1-73047f0bbb3d
GENERAL.設備:                           eno33554960
GENERAL.狀態:                           已激活
GENERAL.默認:                           否
GENERAL.DEFAULT6:                       否
GENERAL.VPN:                            否
GENERAL.ZONE:                           --
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/2
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/0
GENERAL.SPEC 對象:                      /
GENERAL.MASTER-PATH:                    --
IP4.地址[1]:                            10.10.10.10/24
IP4.網關:                               10.10.10.254
IP6.地址[1]:                            fe80::20c:29ff:fe6f:b254/64
IP6.網關:
添加動態的以太網連接(DHCP)
[root@centos7-template ~]# nmcli dev status
設備         類型      狀態    CONNECTION  
eno16777736  ethernet  連接的  eno16777736 
eno33554960  ethernet  已斷開  --          
eno50332216  ethernet  已斷開  --          
lo           loopback  未管理  --          
[root@centos7-template ~]# nmcli con add type ethernet con-name test1 ifname eno33554960
成功添加的連接 'test1'(5eb90d46-4ea7-48f3-af6b-967b8156dca7)。
#激活連接
[root@centos7-template ~]# nmcli con up id test1
添加靜態的以太網連接
[root@centos7-template ~]# nmcli con add type ethernet con-name test2 ifname eno50332216 ip4 1.1.1.1/24 gw4 1.1.1.254 
成功添加的連接 'test2'(5fa56342-03b5-442c-9794-af466c28bb1a)。
[root@centos7-template ~]# nmcli con up id test2
成功激活的連接(D-Bus 激活路徑:/org/freedesktop/NetworkManager/ActiveConnection/137)
設置dns
[root@centos7-template ~]# nmcli con mod test2 ipv4.dns "114.114.114.114 8.8.8.8"
[root@centos7-template ~]# nmcli con mod test2 +ipv4.dns "8.8.4.4"
[root@centos7-template ~]# nmcli con show test2 | grep dns
ipv4.dns:                               114.114.114.114,8.8.8.8,8.8.4.4
[root@centos7-template ~]# nmcli con mod test2 -ipv4.dns "8.8.4.4"
[root@centos7-template ~]# nmcli con show test2 | grep 'ipv4.dns'
ipv4.dns:                               114.114.114.114,8.8.8.8
[root@centos7-template ~]# nmcli con up id test2
成功激活的連接(D-Bus 激活路徑:/org/freedesktop/NetworkManager/ActiveConnection/137)
設置靜態路由
[root@centos7-template network-scripts]# nmcli con mod test2 ipv4.routes '3.3.3.0/24 1.1.1.4,4.4.4.0/24 1.1.1.4'
[root@centos7-template network-scripts]# nmcli con up id test2
成功激活的連接(D-Bus 激活路徑:/org/freedesktop/NetworkManager/ActiveConnection/28)
[root@centos7-template network-scripts]# ip route list
default via 192.168.124.2 dev eno16777736  proto static  metric 100 
1.1.1.4 dev eno50332216  proto kernel  scope link  src 1.1.1.4  metric 100 
3.3.3.0/24 via 1.1.1.4 dev eno50332216  proto static  metric 100 
4.4.4.0/24 via 1.1.1.4 dev eno50332216  proto static  metric 100 
192.168.124.0/24 dev eno16777736  proto kernel  scope link  src 192.168.124.70  metric 100
清空指定連接下的靜態路由
#方法一:[root@centos7-template network-scripts]# nmcli con mod test2 ipv4.routes ''
[root@centos7-template network-scripts]# nmcli con up id test2 
成功激活的連接(D-Bus 激活路徑:/org/freedesktop/NetworkManager/ActiveConnection/33)
#方法二:
[root@centos7-template network-scripts]# nmcli con edit test2
nmcli> remove ipv4.routes
nmcli> print ipv4.routes
ipv4.routes: 
nmcli> save
Connection 'test2' (ffcbd3c0-f384-0a48-59ec-961241cbe948) successfully updated.
nmcli> activate 
激活監控連接(按任意間繼續)成功激活的連接(D-Bus 激活路徑:/org/freedesktop/NetworkManager/ActiveConnection/23)

補充說明: 
使用nmcli connection的所有增刪改操作都會同步到/etc/sysconfig/network-scripts/ifcfg-<ID>中 
關于nmcli更多的使用例子,請參考: man nmcli-examples

2.5 直接編輯ifcfg-xxx文件

ip地址設置
[root@centos7-template network-scripts]# vim ifcfg-test2
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=test2
DEVICE=eno50332216
ONBOOT=yes
IPADDR=1.1.1.3
PREFIX=32
GATEWAY=1.1.1.254
DNS1=114.114.114.114
[root@centos7-template network-scripts]# systemctl restart network
路由設置
#方法一
[root@centos7-template network-scripts]# vim /etc/sysconfig/network-scripts/route-test2
ADDRESS0=2.2.2.0
NETMASK0=255.255.255.0
GATEWAY0=1.1.1.4
[root@centos7-template network-scripts]# systemctl restart network
#方法二
[root@centos7-template network-scripts]# vim route-test2
3.3.3.0/24 via 1.1.1.4
[root@centos7-template network-scripts]# systemctl restart network

2.6 使用ip命令

添加IP地址
[root@centos7-template ~]# ip addr add 1.1.1.1/24 dev eno33554960
[root@centos7-template ~]# ip addr add 2.2.2.2/24 dev eno33554960
[root@centos7-template ~]# ip addr add 3.3.3.3/24 label eno33554960:3 dev eno33554960
[root@centos7-template ~]# ip addr show
清除接口上的所有IP
[root@centos7-template ~]# ip addr flush eno33554960
[root@centos7-template ~]# ip addr show eno335549603

僅刪除接口上指定的ip,可以使用ip addr del 3.3.3.3/24 dev eno33554960

添加/刪除靜態路由
[root@centos7-template ~]# ip route add default via 1.1.1.1 dev eno33554960
[root@centos7-template ~]# ip route del default dev eno33554960
[root@centos7-template ~]# ip route add 2.2.2.0/24 via 1.1.1.1 dev eno33554960
[root@centos7-template ~]# ip route list
[root@centos7-template ~]# ip route del 2.2.2.0/24 
[root@centos7-template ~]# ip route list

三、主機名的修改

3.1 直接修改/etc/hostname

[root@centos7-template ~]# echo 'new-hostname' > /etc/hostname #修改后需要通知hostnamed
[root@centos7-template ~]# systemctl restart systemd-hostnamed

3.2 通過hostnamectl 修改

[root@new-hostname ~]# hostnamectl set-hostname centos7-template
[root@new-hostname ~]# hostnamectl status
   Static hostname: centos7-template
   Icon name: computer-vm
   Chassis: vm        
   Machine ID: 6c8fe0fba4bc4ea0a1530d52d0ac9d75           
   Boot ID: 4a14b25f14eb4174aee7b21df771870b    
   Virtualization: vmware  
   Operating System: CentOS Linux 7 (Core)       
   CPE OS Name: cpe:/o:centos:centos:7            
   Kernel: Linux 3.10.0-327.el7.x86_64      
   Architecture: x86-64

3.3 通過nmcli修改hostname

[root@centos7-template ~]# nmcli general hostname
centos7-template
[root@centos7-template ~]# nmcli general hostname new-hostname
[root@centos7-template ~]# systemctl restart systemd-hostnamed
[root@centos7-template ~]# hostname
new-hostname

四、多網卡綁定

4.1 使用nmtui

步驟如下:

215c63ac-f10f-48e8-a130-925d92f10ee7.pngCentOS7常用網絡管理命令總結 
f507490e-c01a-4735-8e5b-8ffb93fc019f.pngCentOS7常用網絡管理命令總結 
d4a3403b-9305-4b9b-89a3-65435bbf3d91.pngCentOS7常用網絡管理命令總結 
4d10c19e-7be2-409e-a4da-dc39ba422fe1.pngCentOS7常用網絡管理命令總結 
391ea634-70a3-4eb0-977a-56b5ec73e3d6.png

f3c5f711-6dd5-4680-932b-4f7da6f9336e.png

62e6cad3-ca78-4936-a3db-210d4cfdf468.png

06447e26-1d19-4b47-9ed8-1ffacf253a6c.png

6e9675c7-c4ba-463b-acf3-3e31f25d7b6a.png

4.2 使用nmcli

1) 創建bond0并設置ip
[root@centos7-template ~]# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 1.1.1.1/24
成功添加的連接 'bond0'(9812336b-1c48-4b13-a172-b5f996f797c8)。
2) 添加從接口
[root@centos7-template ~]# nmcli con add type bond-slave con-name test1 ifname eno33554960 master bond0
成功添加的連接 'test1'(6a4f670a-1c77-408a-9808-c8ca8c45f5bb)。
[root@centos7-template ~]# nmcli con add type bond-slave con-name test2 ifname eno50332216 master bond0
成功添加的連接 'test2'(0003b65b-7a1a-497a-9531-d4afc684a025)。

備注: 
需要確保bonding模塊已被kernel加載??梢允褂胠smod | grep bonding檢查,modprobe –first-time bonding載入

五、橋接多網卡

[root@centos7-template ~]# nmcli con add type bridge con-name br0 ifname br0 ip4 1.1.1.1/24
成功添加的連接 'br0'(2ea2906e-cb99-4fad-8ed6-4d1c038ad0b2)。
[root@centos7-template ~]# nmcli con add type bridge-slave con-name test1 ifname eno33554960 master br0
成功添加的連接 'test1'(0f4e9540-eda8-4259-a135-dd0fb6a7c06b)。
[root@centos7-template ~]# nmcli con add type bridge-slave con-name test2 ifname eno50332216 master br0
成功添加的連接 'test2'(385d73b4-5378-4b75-aa80-3b1c8f5c8adc)。
[root@centos7-template ~]# yum install bridge-utils
[root@centos7-template ~]# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000c296fb254   yes         eno33554960
                                        eno50332216

備注: 
需要確保bridge模塊已被kernel加載??梢允褂胠smod | grep bridge檢查,modprobe –first-time bridge載入

六、VLAN接口

[root@centos7-template ~]# nmcli con add type vlan con-name vlan20 ifname vlan20 dev br0 id 20 ip4 2.2.2.2/24
成功添加的連接 'vlan20'(e40abce1-5be5-4bda-b766-c6eb01d1198d)。

備注: 
需要確保8021q模塊已被kernel加載??梢允褂胠smod | grep 8021q檢查,modprobe –first-time 8021q載入 
其中id 20為vlan tagid


原創文章,作者:gateray,如若轉載,請注明出處:http://www.www58058.com/18021

(1)
gateraygateray
上一篇 2016-06-09
下一篇 2016-06-09

相關推薦

  • lvs-dr模型

    dr 模型 1、?directory ,node1 ,node2 三臺主機都是一塊網塊, 并且網卡都為橋接,且node1,nod2,不需要指定網關 在director主機中執行   #ip addr add 192.168.1.20/32 dev ens33 # ipvsadm -A -t 192.168.1.20:80 -s rr # ipvsa…

    Linux干貨 2017-08-26
  • 網絡管理

    一、網絡概念     什么是網絡     資源共享的功能和優點         數據和應用程序         資源 &…

    Linux干貨 2016-09-09
  • Shell腳本編程入門

    認識Shell Shell原意為貝殼 Linux系統中的shell是一個特殊的應用程序,它介于操作系統內核與用戶之間,充當一個“命令解釋器”的角色,負責接收用戶輸入的操作指令(命令)并進行解釋,將需要執行的操作傳遞給內核執行,并輸出執行結果。 可以使用命令查看當前使用的是哪種shell以及當前Linux系統中都支持哪些shell種類。   查看當前…

    Linux干貨 2016-08-12
  • vim編輯器

    導讀:      本章將主要介紹Linux中的一種常用文本編輯器vim,具體內容如下:       □使用vi和vim的三種主要模式       ?移動光標,進入插入模式       ?改變、刪除、復制文本     &n…

    Linux干貨 2016-08-15
  • SElinux配置httpd

    一、啟用SELinux策略并安裝httpd服務,改變網站的默認主目錄為/website,添加SELinux文件標簽規則,使網站可訪問     1、修改selinux策略并重啟 [root@localhost ~]# vim /etc/selinux/config# This file controls the stat…

    Linux干貨 2016-09-19
  • FHS文件系統

    一、什么是FHS?   Filesystem Hierarchy Standard(文件系統目錄標準)的縮寫,多數Linux版本采用這種文件組織形式,類似于Windows操作系統中c盤的文件目錄,FHS采用樹形結構組織文件。FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。 二、它的來源歷史 …

    Linux干貨 2016-10-17
欧美性久久久久