1、NetworkManager簡介
在 Red Hat Enterprise Linux 7 中,NetworkManager 提供的默認聯網服務是一個動態網絡控制和配置守護
進程,它嘗試在其可用時保持網絡設備和連接處於活動狀態。仍支持傳統 ifcfg 類型配置文件。
-
nmcli:NetworkManager的命令行工具(CLI)
-
nmtui:NetworkManager的文本用戶界面工具(TUI)
安裝NetworkManager:
#yum install NetworkManager
查看NetworkManager守護進程狀態:
#systemctl status NetworkManager
設置開機啟動NetworkManager服務:
#systemctl enable NetworkManager
2、使用文本用戶界面(nmtui)進行網絡配置
#nmtui
從上面看出 可以配置IP地址、主機名。
建議使用這種方法配置主機名很方便。
3、使用sysconfig文件進行網絡配置
網卡接口的具體信息保存在/etc/sysconfig/network-scripts/ 目錄下的ifcfg文件中。
[root@test network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="e51a1d1e-fe3b-4360-b916-d005fa98fa7d"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.110.168
NETMASK=255.255.255.0
GATEWAY=192.168.110.2
DNS1=114.114.114.114
在RHEL7中編輯ifcfg文件時,networkmanager不會自動意識到更改,必須讓networkmanager 重新讀取該配置文件,使用
如下指令:
#nmcli connection reload
或者,
# systemctl restart network
官方文檔中提到:
建議不要在ifcfg文件的同一位置保存其備份文件。網絡腳本會運行ifcfg-*,擴展名.old、.orig、.rpmnew、.rpmorig和
.rmpsave除外。最好不要將備份文件保存在/etc/目錄下。
ifup和ifdown指令
ifup ensxx //調用networkmanager 啟動該接口連接
ifdown ensxx //調用networkmanager 終止該接口連接
4、使用nmcli命令行工具配置網絡
nmcli指令與配置文件對應關系
nmcli指令幫助信息:
#nmcli help
#nmcli general help
4.1 查看網卡接口信息
#nmcli device status
#nmcli device show eno49
4.2查看連接信息
#nmcli conn show
查看某個接口連接的詳細信息:
#nmcli conn show eno49
顯示所有活動連接:
4.3啟動與停止接口
啟動接口:
nmcli connection up eno49
nmcli device connect eno49
#停止接口
nmcli connection down eno49
nmcli device disconnect eno49
建議使用nmcli dev connect/disconnect enoxx指令,這樣斷開鏈接后,會將接口放到“手動”模式,接口不會被自動激活。
刪除網絡連接的配置文件:
nmcli conn delete eno49
重新加載網絡配置文件:
nmcli conn reload
4.4 修改網卡是不是開機自動啟動(ONBOOT=yes/no)
nmcli conn modify eno49 connection.autoconnect no/on
4.5設置修改IP地址和DNS
給eno49添加一個IP(IPADDR)
# nmcli connection modify eth0 ipv4.addresses 192.168.0.58
給eno49添加一個子網掩碼(NETMASK)
# nmcli connection modify eth0 ipv4.addresses 192.168.0.58/24
IP獲取方式設置成手動(BOOTPROTO=static/none/dhcp)
# nmcli connection modify eth0 ipv4.method manual
添加DNS
# nmcli connection modify eth0 ipv4.dns 114.114.114.114
刪除DNS
# nmcli connection modify eth0 -ipv4.dns 114.114.114.114
添加一個網關(GATEWAY)
# nmcli connection modify eth0 ipv4.gateway 192.168.0.2
或者:
nmcli connection modify eno49 ipv4.addresses '192.168.10.10/24 ' ipv4.gateway '192.168.10.254' ipv4.dns '8.8.8.8'
6、RHEL7中一致網絡設備命名【摘自官方文檔】
在 Red Hat Enterprise Linux 7 中,udev 支持大量不同的命名方案。默認是根據固件、拓撲及位置信息分配
固定名稱。這樣做的優點是命名可完全自動進行,並可預期,即使添加或刪除硬件后也會保留其名稱(不會出
現重復枚舉的情況),同時可順利更換損壞的硬件。不足之處是,相比傳統的名稱,比如 eth0 或 wlan0,這
些名稱有時會比較難理解。例如:enp5s0。
RHEL7中命名方案層級結構:
默認情況下,systemd 會使用以下策略,采用支持的命名方案為接口命名:
-
方案 1:如果固件或 BIOS 信息適用且可用,則使用整合了為板載設備提供索引號的固件或 BIOS 的名稱(例如:eno1),否則請使用方案 2。
-
方案 2:如果固件或 BIOS 信息適用且可用,則使用整合了為 PCI 快速熱插拔插槽提供索引號的固件或BIOS 名稱(例如 ens1),否則請使用方案 3。
-
方案 3:如果硬件連接器物理位置信息可用,則使用整合了該信息的名稱(例如:enp2s0),否則請使用方案 5。
-
方案 4: 默認不使用整合接口 MAC 地址的名稱(例如:enx78e7d1ea46da),但用戶可選擇使用此方案。
-
方案 5:傳統的不可預測的內核命名方案,在其他方法均失敗后使用(例如: eth0)。
這個策略(如上所述)是默認策略。
如果該系統已啟用 biosdevname,則會使用該方案。注:啟用
biosdevname 需要添加 biosdevname=1 作為命令行參數(Dell 系統除外),此時只要安裝
biosdevname,就會默認使用該方案。如果用戶已添加 udev 規則,該規則會更高內核設備名稱,則會優
先使用這些規則。
結合上述規則,從下面可以看出eno49/50是板載的網卡。ens1f0/ens1f1是PCI網卡,后面添加的。
