自結(jié):NetworkManager管理指定配置文件配置的網(wǎng)絡(luò)接口,根據(jù)接口配置定義網(wǎng)絡(luò)環(huán)境。/etc/sysconfig/network-scripts/ifcfg-ens88 中定義nm_controlled=yes那么此配置文件就被networkmanager管理了。
問(wèn)題產(chǎn)生背景
? ? ?調(diào)試虛擬機(jī)的網(wǎng)絡(luò)問(wèn)題(CentOS 7系統(tǒng)),習(xí)慣性直接改/etc/sysconfig/network-scripts/ifcfg-xxx配置文件,但是不知道為什么重啟network后靜態(tài)ip沒有生效。然后百度了一下,CentOS 7使用NetworkManager來(lái)管理網(wǎng)絡(luò)配置,就順便接觸了下網(wǎng)絡(luò)管理命令行工具NetworkManager command line tool,也叫nmcli。
NAT模式
1、同樣,先設(shè)置虛擬機(jī)的網(wǎng)絡(luò)適配器為NAT模式
2、修改VMware的“虛擬網(wǎng)絡(luò)編輯器”:點(diǎn)編輯 --> 虛擬網(wǎng)絡(luò)編輯器:打開之后首先點(diǎn)擊NAT模式,然后去掉下面DHCP的勾,然后點(diǎn)擊NAT設(shè)置:
? ? ? ?NAT默認(rèn)設(shè)置了110網(wǎng)段,這個(gè)可以修改,修改的話要統(tǒng)一修改不要落下。沒有特殊需求就不要修改了。打開NAT設(shè)置面板之后,記住下面紅框中這個(gè)IP:
3、設(shè)置完成后,啟動(dòng)虛擬機(jī),修改第一個(gè)配置文件,這次要按照NAT設(shè)置中的IP進(jìn)行配置:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0按如下改動(dòng):
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0C:29:17:01:FC
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no 表示該接口將通過(guò)該配置文件進(jìn)行設(shè)置,而不是通過(guò)網(wǎng)絡(luò)管理器NerworkManager進(jìn)行管理。
IPADDR=192.168.110.128 #網(wǎng)段限制在110所以IP地址變了
NETMASK=255.255.255.0
GATEWAY=192.168.110.2 #按照NAT設(shè)置中的網(wǎng)關(guān)地址設(shè)置
BROADCAST=192.168.110.255
DNS1=192.168.110.2
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
參數(shù)詳解:
1. 配置參數(shù)說(shuō)明注:這些參數(shù)值不區(qū)分大小寫,不區(qū)分單引號(hào)和雙引號(hào),甚至可以不用引號(hào)。TYPE:配置文件接口類型。在/etc/sysconfig/network-scripts/目錄有多種網(wǎng)絡(luò)配置文件,有Ethernet、IPsec等類型,網(wǎng)絡(luò)接口類型為Ethernet。DEVICE:網(wǎng)絡(luò)接口名稱BOOTPROTO:網(wǎng)卡獲取ip地址方式:none dhcp static,dhcp表示動(dòng)態(tài)分配ip;none或者static則為靜態(tài)固定ipONBOOT:系統(tǒng)啟動(dòng)時(shí)是否激活yes:系統(tǒng)啟動(dòng)時(shí)激活該網(wǎng)絡(luò)接口no:系統(tǒng)啟動(dòng)時(shí)不激活該網(wǎng)絡(luò)接口
UUID含義是通用唯一識(shí)別碼 (Universally Unique Identifier),在此可以忽略IPADDR:IP地址NETMASK:子網(wǎng)掩碼GATEWAY:網(wǎng)關(guān)地址BROADCAST:廣播地址HWADDR/MACADDR:MAC地址。只需設(shè)置其中一個(gè),同時(shí)設(shè)置時(shí)不能相互沖突。PEERDNS:是否指定DNS。如果使用DHCP協(xié)議,默認(rèn)為yes。yes:如果DNS設(shè)置,修改/etc/resolv.conf中的DNSno:不修改/etc/resolv.conf中的DNSDNS{1, 2}:DNS地址。當(dāng)PEERDNS為yes時(shí)會(huì)被寫入/etc/resolv.conf中。DNS可以設(shè)置多個(gè),在DNS后面加數(shù)字依次排序,NM_CONTROLLED:是否由Network Manager控制該網(wǎng)絡(luò)接口。修改保存后立即生效,無(wú)需重啟。被其坑過(guò)幾次,建議一般設(shè)為no。yes:由Network Manager控制no:不由Network Manager控制USERCTL:用戶權(quán)限控制yes:非root用戶允許控制該網(wǎng)絡(luò)接口no:非root用戶不運(yùn)行控制該網(wǎng)絡(luò)接口IPV6INIT:是否執(zhí)行IPv6yes:支持IPv6no:不支持IPv6IPV6ADDR:IPv6地址/前綴長(zhǎng)度
4、修改第二個(gè)配置文件:
[root@localhost ~]# vim /etc/sysconfig/network按如下改動(dòng):
NETWORKING=yes 配置網(wǎng)卡是否啟動(dòng)
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain
GATEWAY=192.168.110.2 這個(gè)配置成虛擬機(jī)的網(wǎng)關(guān)
5、修改完畢之后重啟網(wǎng)絡(luò)服務(wù):
[root@localhost ~]# service network restart
Centos 7 網(wǎng)絡(luò)配置文件
? 一. ?/etc/sysconfig/network??? ? ? ? ?全局設(shè)置,默認(rèn)里面啥也沒有,可以配置主機(jī)名、全局默認(rèn)網(wǎng)關(guān)以及網(wǎng)卡是否啟動(dòng)。如果連接配置文件ifcfg-xxx也配置了網(wǎng)關(guān),會(huì)覆蓋全局默認(rèn)網(wǎng)關(guān)。如果沒有配置,那么使用全局默認(rèn)網(wǎng)關(guān) ? ? ? 修改主機(jī)名: ? ? ? ? ? ?vi /etc/sysconfig/network 修改HOSTNAME(永久改) ? ? ? ? ? ?hostname 主機(jī)名 命令修改(臨時(shí)改)
二. resolv.conf 文件說(shuō)明
resolv.conf是resolver類庫(kù)使用的配置文件,每當(dāng)一個(gè)程序需要通過(guò)域名來(lái)訪問(wèn)internet上面的其它主機(jī)時(shí),需要利用該類庫(kù)將域名轉(zhuǎn)換成對(duì)應(yīng)的IP,然后才可進(jìn)行訪問(wèn) 修改vi /etc/resolv.conf 是臨時(shí)更改DNS,網(wǎng)絡(luò)重啟后就被清空了或者覆蓋。會(huì)根據(jù)配置文件中配置的DNS1和網(wǎng)關(guān)后自動(dòng)修改這個(gè)文件。 ? ?此檔案可用來(lái)設(shè)定 DNS 用戶端要求名稱解析時(shí),所定義的各項(xiàng)內(nèi)容。我們分別來(lái)看一個(gè)完整的resolv.conf的檔案: ? 修改DNS。就是編輯 etc/resolv文件或者網(wǎng)卡配置文件,前者是臨時(shí)更改,后者是永久更改,永久更改后需要重啟網(wǎng)卡生效,臨時(shí)更改不用。
domain twnic.com.tw
nameserver 192.168.10.1
nameserver 192.168.2.5
search twnic.com.tw twnic.net.tw
“domain”指定本地的網(wǎng)域名稱,如果查詢時(shí)的名稱沒有包含小數(shù)點(diǎn),則會(huì)自動(dòng)補(bǔ)上此處的網(wǎng)域名稱做為域名的結(jié)尾,再送給DNS服務(wù)器。 “nameserver”指定用戶端要求進(jìn)行名稱解析的 nameserver IP位址,在此可指定多部DNS伺服器,則用戶端將會(huì)依序提出查詢要求。 “search”這個(gè)選項(xiàng)為非必要選項(xiàng),而功能在于若使用者指定主機(jī)名稱查詢時(shí),所需要搜尋的網(wǎng)域名稱。例如,當(dāng)我們?cè)O(shè)?“search twnic.com.tw”時(shí),當(dāng)DNS伺服器在做名稱解析過(guò)程中,無(wú)法對(duì)輸入的名稱,例如pc1,找出相對(duì)應(yīng)的IP時(shí),則DNS會(huì)利用search的設(shè)定值加上需查詢的名稱,即pc1.twnic.com.tw來(lái)進(jìn)行解析,解析失敗時(shí)則會(huì)嘗試pc1.twnic.net.tw。 需要注意的是當(dāng)我們想嘗試多種在沒有包含小數(shù)點(diǎn),于字尾補(bǔ)上所需要搜尋的網(wǎng)域名稱時(shí),我們會(huì)在"search"中指定幾種組合給DNS伺服器,而不能在"domain"中指定。因?yàn)椤癲omain”是指定本地的網(wǎng)域名稱,而搜尋時(shí)也以“domain”為優(yōu)先嘗試,如果失敗之后才會(huì)嘗試"search"中的組合。
? ? 三、其他配置文件
? ? ? ? ?/etc/sysconfig/network-scripts/ 連接配置信息 ifcfg 文件,配置ip地址、網(wǎng)關(guān)、DNS ? ? ? ? /etc/NetworkManager/system-connections/ ?VPN、移動(dòng)寬帶、PPPoE連接
NetworkManager解釋
?一、NetworkManager啟用及其作用 ? ? ? ?啟用NetworkManager管理指定網(wǎng)絡(luò)接口,只需要在配置文件 /etc/sysconfig/network-scripts/ifcfg-ethX中加入如下配
NM_CONTROLLED=yes
? ? ? ?NetworkManager服務(wù)管理網(wǎng)絡(luò)方便在哪? ? ? ? ?很重要的一點(diǎn)是:一個(gè)設(shè)備可以對(duì)應(yīng)多個(gè)配置文件,但是同一時(shí)間只能有一個(gè)配置文件生效,這對(duì)于頻率切換網(wǎng)絡(luò)環(huán)境是非常方便的,不用再跑那個(gè)目錄下去改配置 文件。比如:原先網(wǎng)卡接的是10.1.0.0/24網(wǎng)絡(luò),有時(shí)候?yàn)榱藴y(cè)試,臨時(shí)改到192.168.1.0/24網(wǎng)絡(luò)去,測(cè)試完后又改回來(lái) 10.1.0.0/24,在NetworkManager的管理里面,只要把這兩個(gè)網(wǎng)絡(luò)環(huán)境下的配置寫好,以后就只要一條命令就可以完成切換了!這就是 NetworkManager帶來(lái)的便捷之處!
二、nmcli和其他網(wǎng)絡(luò)設(shè)置 ? ? ? 在CentOS7中默認(rèn)使用NetworkManager守護(hù)進(jìn)程來(lái)監(jiān)控和管理網(wǎng)絡(luò)設(shè)置。nmcli是NetworkManager的命令行工具,會(huì)自動(dòng)把nmcli所做的配置寫到/etc/sysconfig/network-scripts/目錄下面。
常用命令
查看網(wǎng)絡(luò)接口信息# 簡(jiǎn)單信息nmcli device status# 詳細(xì)的接口信息nmcli device show# 接口的詳細(xì)信息nmcli device show interface-name查看連接(connection)的信息# 簡(jiǎn)單信息nmcli connection show# 詳細(xì)的連接信息nmcli connection show# 某個(gè)連接的詳細(xì)信息nmcli connection show connection-name啟動(dòng)和停止接口nmcli connection down connection-namenmcli connection up connection-namenmcli device disconnect interface-namenmcli device connect interface-name建議使用 nmcli dev disconnect interface-name 命令,而不是 nmcli con down connection-name 命令,因?yàn)檫B接斷開可將該接口放到“手動(dòng)”模式,這樣做用戶讓 NetworkManager 啟動(dòng)某個(gè)連接前,或發(fā)生外部事件(比如載波變化、休眠或睡眠)前,不會(huì)啟動(dòng)任何自動(dòng)連接。創(chuàng)建連接nmcli connection add type ethernet con-name connection-name ifname interface-namenmcli connection add type ethernet con-name connection-name ifname interface-name ip4 address gw4 address## e.g. 創(chuàng)建一個(gè)基于eth1接口的連接# 創(chuàng)建動(dòng)態(tài)連接,即BOOTPROTO默認(rèn)為DHCP[root@localhost ~]# nmcli c add type eth con-name dynamic-eth1 ifname eth1Connection 'dynamic-eth1' (9c0ad8a9-21f6-40b5-9313-e5c7e4b356f1) successfully added.# 創(chuàng)建靜態(tài)連接[root@localhost ~]# nmcli connection add type eth con-name static-eth1 ifname eth1 ip4 172.16.60.10/24# nmcli connection add type eth con-name static-eth1 ifname eth1 ip4 172.16.60.10/24 gw4 192.168.60.1Connection 'static-eth1' (0640bf7f-9490-44a8-be96-2e710fb650e6) successfully added.創(chuàng)建連接后,NetworkManager 自動(dòng)將 connection.autoconnect 設(shè)定為 yes。還會(huì)將設(shè)置保存到 /etc/sysconfig/network-scripts/ connection-name 文件中,且自動(dòng)將 ONBOOT 參數(shù)設(shè)定為 yes。激活連接nmcli connection up connection-name## e.g. 激活eth1接口的static-eth1連接[root@localhost ~]# nmcli c up static-eth1Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)nmcli命令修改所對(duì)應(yīng)的文件條目nmcli con mod???????????ifcfg-* 文件ipv4.method manual???????BOOTPROTO=noneipv4.method auto?????????BOOTPROTO=dhcpconnection.id eth0????????NAME=eth0(ipv4.addresses??????????IPADDR0=192.0.2.1“192.0.2.1/24???????????PREFIX0=24192.0.2.254”)???????????GATEWAY0=192.0.2.254ipv4.dns 8.8.8.8????????DNS0=8.8.8.8pv4.dns-search example.com???DOMAIN=example.compv4.ignore-auto-dns true????PEERDNS=noconnection.autoconnect yes???ONBOOT=yesconnection.interface-name eth0 DEVICE=eth0802-3-ethernet.mac-address... HWADDR=...
[root@centos7 ~]# nmcli help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }OPTIONS-t[erse] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? terse output-p[retty] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?pretty output-m[ode] tabular|multiline ? ? ? ? ? ? ? ? ?output mode-f[ields] <field1,field2,...>|all|common ? specify fields to output-e[scape] yes|no ? ? ? ? ? ? ? ? ? ? ? ? ? escape columns separators in values-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 helpOBJECTg[eneral] ? ? ? NetworkManager's general status and operationsn[etworking] ? ?overall networking controlr[adio] ? ? ? ? NetworkManager radio switchesc[onnection] ? ?NetworkManager's connectionsd[evice] ? ? ? ?devices managed by NetworkManager
? ? ? ?OBJECT和COMMAND可以用全稱也可以用簡(jiǎn)稱,最少可以只用一個(gè)字母,建議用頭三個(gè)字母。OBJECT里面我們平時(shí)用的最多的就是connection和device,這里需要簡(jiǎn)單區(qū)分一下connection和device。
device叫網(wǎng)絡(luò)接口,是物理設(shè)備 ? connection是連接,偏重于邏輯設(shè)置 ?多個(gè)connection可以應(yīng)用到同一個(gè)device,但同一時(shí)間只能啟用其中一個(gè)connection。 ? ?這樣的好處是針對(duì)一個(gè)網(wǎng)絡(luò)接口,我們可以設(shè)置多個(gè)網(wǎng)絡(luò)連接,比如靜態(tài)IP和動(dòng)態(tài)IP,再根據(jù)需要up相應(yīng)的connection。
?新添加的網(wǎng)卡NetworkManager自動(dòng)識(shí)別。比如新添加網(wǎng)卡enp0s8
[root@centos7 ~]# nmcli con show
NAME ? ? ? ? ? ? ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
Wired connection 1 ?0c451785-b098-4c5c-994d-9107171b439d ?802-3-ethernet ?enp0s8
enp0s3 ? ? ? ? ? ? ?295e1841-0ff3-4db9-8800-4e25fc2944da ?802-3-ethernet ?enp0s3?
? “Wired connection 1”是新增的網(wǎng)絡(luò)連接,對(duì)應(yīng)的網(wǎng)絡(luò)接口叫enp0s8; ? “enp0s3”是最初的網(wǎng)絡(luò)連接,默認(rèn)與網(wǎng)絡(luò)接口同名。
看看設(shè)備:
[root@centos7 ~]# nmcli dev show enp0s3
GENERAL.DEVICE: ? ? ? ? ? ? ? ? ? ? ? ? enp0s3
GENERAL.TYPE: ? ? ? ? ? ? ? ? ? ? ? ? ? ethernet
GENERAL.HWADDR: ? ? ? ? ? ? ? ? ? ? ? ? 08:00:27:15:35:D2
GENERAL.MTU: ? ? ? ? ? ? ? ? ? ? ? ? ? ?1500
GENERAL.STATE: ? ? ? ? ? ? ? ? ? ? ? ? ?100 (connected)
GENERAL.CONNECTION: ? ? ? ? ? ? ? ? ? ? eth0
GENERAL.CON-PATH: ? ? ? ? ? ? ? ? ? ? ? /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER: ? ? ? ? ? ? ? on
IP4.ADDRESS[1]: ? ? ? ? ? ? ? ? ? ? ? ? ip = 192.168.150.110/24, gw = 192.168.150.254
IP4.DNS[1]: ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.150.254
IP6.ADDRESS[1]: ? ? ? ? ? ? ? ? ? ? ? ? ip = fe80::a00:27ff:fe15:35d2/64, gw = ::
[root@centos7 ~]#
[root@centos7 ~]# nmcli dev show enp0s8
GENERAL.DEVICE: ? ? ? ? ? ? ? ? ? ? ? ? enp0s8
GENERAL.TYPE: ? ? ? ? ? ? ? ? ? ? ? ? ? ethernet
GENERAL.HWADDR: ? ? ? ? ? ? ? ? ? ? ? ? 08:00:27:98:D1:B7
GENERAL.MTU: ? ? ? ? ? ? ? ? ? ? ? ? ? ?1500
GENERAL.STATE: ? ? ? ? ? ? ? ? ? ? ? ? ?100 (connected)
GENERAL.CONNECTION: ? ? ? ? ? ? ? ? ? ? eth1
GENERAL.CON-PATH: ? ? ? ? ? ? ? ? ? ? ? /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER: ? ? ? ? ? ? ? on
IP4.ADDRESS[1]: ? ? ? ? ? ? ? ? ? ? ? ? ip = 10.0.3.15/24, gw = 10.0.3.2
IP4.DNS[1]: ? ? ? ? ? ? ? ? ? ? ? ? ? ? 10.0.3.2
IP6.ADDRESS[1]: ? ? ? ? ? ? ? ? ? ? ? ? ip = fe80::a00:27ff:fe98:d1b7/64, gw = ::
[root@centos7 ~]#?
? ? ? 需要注意的是,enp0s3設(shè)備對(duì)應(yīng)的連接名改為eth0,但對(duì)應(yīng)的ifcfg文件并沒有改名,我們改改試試,改之前先備份原配置文件到其他目錄(注意,不能備份到network-scripts目錄!)。
[root@centos7 network-scripts]# cat ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=295e1841-0ff3-4db9-8800-4e25fc2944da
ONBOOT=yes
IPADDR0=192.168.150.110
PREFIX0=24
GATEWAY0=192.168.150.254
DNS1=192.168.150.254
HWADDR=08:00:27:15:35:D2
[root@centos7 network-scripts]#
[root@centos7 network-scripts]# cp ifcfg-enp0s3 /root/
[root@centos7 network-scripts]# mv ifcfg-enp0s3 ifcfg-eth0
[root@centos7 network-scripts]#
[root@centos7 network-scripts]# systemctl restart network
[root@centos7 network-scripts]#?
沒有問(wèn)題,配置文件改名成功,強(qiáng)迫癥又一次勝利了,耶! 我們還可以看到,ifcfg-eth0里面沒有參數(shù)指明設(shè)備enp0s3,唯一與設(shè)備enp0s3相對(duì)應(yīng)的是MAC地址(HWADDR 08:00:27:15:35:D2)。
現(xiàn)在試試增加一個(gè)針對(duì)新網(wǎng)絡(luò)接口enp0s8的連接,現(xiàn)有連接是 eth1:
[root@centos7 network-scripts]# cat ifcfg-eth1
HWADDR=08:00:27:98:D1:B7
TYPE=Ethernet
BOOTPROTO=dhcp
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
NAME=eth1
UUID=0c451785-b098-4c5c-994d-9107171b439d
ONBOOT=yes
嗯,是自動(dòng)獲得IP的。 我們新建一個(gè)連接eth1-1,分配固定IP。
[root@centos7 ~]# nmcli con show
NAME ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
eth1-1 ?ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9 ?802-3-ethernet ?-- ? ??
eth1 ? ?0c451785-b098-4c5c-994d-9107171b439d ?802-3-ethernet ?enp0s8
eth0 ? ?295e1841-0ff3-4db9-8800-4e25fc2944da ?802-3-ethernet ?enp0s3
只是增加了一個(gè)連接,其他的沒有變化。 我們啟動(dòng)新連接 eth1-1
[root@centos7 ~]# nmcli con up eth1-1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
[root@centos7 ~]#
[root@centos7 ~]# nmcli con show
NAME ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
eth1-1 ?ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9 ?802-3-ethernet ?enp0s8
eth1 ? ?0c451785-b098-4c5c-994d-9107171b439d ?802-3-ethernet ?-- ? ??
eth0 ? ?295e1841-0ff3-4db9-8800-4e25fc2944da ?802-3-ethernet ?enp0s3
[root@centos7 ~]#
[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s8
IP4.ADDRESS[1]:ip = 10.0.3.110/24, gw = 10.0.3.2
“nmcli -t -f IP4.ADDRESS dev show enp0s8” 是以腳本友好的方式顯示網(wǎng)絡(luò)接口信息。 現(xiàn)在可以很明顯的看到,將連接eth1-1 up了之后,eth1-1占據(jù)了原來(lái)由eth1占據(jù)的DEVICE enp0s8,并且IP地址已經(jīng)是指定的10.0.3.110/24 了。
[root@centos7 network-scripts]# cat ifcfg-eth1-1
TYPE=Ethernet
BOOTPROTO=none
IPADDR0=10.0.3.110
PREFIX0=24
GATEWAY0=10.0.3.2
DNS1=10.0.3.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth1-1
UUID=ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9
DEVICE=enp0s8
ONBOOT=yes
ifcfg-eth1-1 文件里沒有HWADDR參數(shù),但是多了一個(gè)DEVICE參數(shù),等于enp0s8,你可以對(duì)比一下 ifcfg-eth1 看看區(qū)別在哪。 連接的配置文件 ifcfg-*,可以用 DEVICE 指定設(shè)備名,也可以用HWADDR指定設(shè)備的MAC地址,最終結(jié)果都一樣的指向某個(gè)設(shè)備(網(wǎng)絡(luò)接口)。我們?cè)僭囋囉胣mcli增加連接:
[root@centos7 ~]# nmcli con add con-name eth1-2 ifname enp0s8 type ethernet ip4 10.0.3.120/24 gw4 10.0.3.2
Connection 'eth1-2' (468815f5-ce97-43bd-904a-3078e2e59fec) successfully added.
[root@centos7 ~]#
[root@centos7 ~]# nmcli con show
NAME ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
eth1-1 ?ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9 ?802-3-ethernet ?enp0s8
eth1 ? ?0c451785-b098-4c5c-994d-9107171b439d ?802-3-ethernet ?-- ? ??
eth0 ? ?295e1841-0ff3-4db9-8800-4e25fc2944da ?802-3-ethernet ?enp0s3
eth1-2 ?468815f5-ce97-43bd-904a-3078e2e59fec ?802-3-ethernet ?-- ? ??
[root@centos7 ~]#
[root@centos7 ~]# nmcli con up eth1-2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@centos7 ~]#
[root@centos7 ~]# nmcli con show
NAME ? ?UUID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TYPE ? ? ? ? ? ?DEVICE
eth1-1 ?ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9 ?802-3-ethernet ?-- ? ??
eth1 ? ?0c451785-b098-4c5c-994d-9107171b439d ?802-3-ethernet ?-- ? ??
eth0 ? ?295e1841-0ff3-4db9-8800-4e25fc2944da ?802-3-ethernet ?enp0s3
eth1-2 ?468815f5-ce97-43bd-904a-3078e2e59fec ?802-3-ethernet ?enp0s8
[root@centos7 ~]#
[root@centos7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s8
IP4.ADDRESS[1]:ip = 10.0.3.120/24, gw = 10.0.3.2
[root@centos7 ~]#?
再看看新的ifcfg文件:
[root@centos7 network-scripts]# cat ifcfg-eth1-2
TYPE=Ethernet
BOOTPROTO=none
IPADDR0=10.0.3.120
PREFIX0=24
GATEWAY0=10.0.3.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth1-2
UUID=468815f5-ce97-43bd-904a-3078e2e59fec
DEVICE=enp0s8
ONBOOT=yes
[root@centos7 network-scripts]#?
現(xiàn)在up的連接是eth1-2,網(wǎng)絡(luò)接口enp0s8的IP是10.0.3.120 如果重新up連接eth1-1,nmcli con up eth1-1,網(wǎng)絡(luò)接口enp0s8的IP變成了10.0.3.110 如果重新up連接eth1,??nmcli con up eth1,??網(wǎng)絡(luò)接口enp0s8的IP就回到原來(lái)自動(dòng)獲得的值10.0.3.15
所以,對(duì)一個(gè)網(wǎng)絡(luò)接口設(shè)置不同的連接,可以快速的切換不同的網(wǎng)絡(luò)配置,這個(gè)真的滿厲害的。如果希望系統(tǒng)重啟后僅up某個(gè)特定連接,那么可以把其他連接配置文件的ONBOOT=no,ONBOOT=no的連接也可以隨時(shí)up。
常見錯(cuò)誤
unkonw the name or the server這種提示的話一般都是DNS配置的有問(wèn)題。 destination not unreachable,這種錯(cuò)誤的話一般都是你的ifcfg-eth0里面的GATEWAY或者IPDDR配置的不對(duì)。 虛擬機(jī)ip沖突。因?yàn)閂amware NAT方式主機(jī)網(wǎng)卡采用的Vmware network adapter net8,所以這個(gè)net8的ip也要和你虛擬機(jī)的IPADDR、GATWAY都不一樣,也是在192.168.137.1~192.168.137.255中間取值。此時(shí)如果沖突,可以查看宿主機(jī)vmnet8IP地址是否和虛擬機(jī)相同 在開啟網(wǎng)絡(luò)時(shí),有錯(cuò)誤提示:Restarting network (via systemctl):??Job for network.service failed. See 'systemctl status network.service' and 'journalctl -xn' for details.
?1.根據(jù)提示執(zhí)行: ?systemctl status network.service ??提示錯(cuò)誤日志:15:30:10 localhost.localdomain systemd[1]:?Failed to start LSB: Bring up/down networking.
2.用 ?ip ?addr ?命令查看MAC地址( 此行 link/ether 00:5c:33:2e:dd:10) ?與文件 ?/etc/sysconfig/network-scripts/ifcfg-* ?中顯示的(此行 HWADDR=00:e3:21:3d:5d:ee) ?時(shí)行對(duì)比時(shí)發(fā)現(xiàn)不一致。
3.注釋掉 ?/etc/sysconfig/netwrok-scripts/ifcfg-* 中 ?HWADDR= * :*:*:*:*:* 此行
4. 在下面更改為 ??HWADDR=00:5C:33:2E:DD:10 ??(也就是用IP ADDR 命令所查到的MAC)
ip addr(圖中標(biāo)記的就是ip地址)命令輸出中沒有inet選項(xiàng)(1) 如果上邊一欄中沒有inet,那么輸入:systemctl ?status?NetworkManager.service(驗(yàn)證網(wǎng)絡(luò)管理服務(wù)狀態(tài))(2)檢查受網(wǎng)絡(luò)管理器管理的網(wǎng)絡(luò)接口:(輸入:nmcli dev status)(如果某個(gè)接口的nmcli的輸出結(jié)果是“已斷開”,說(shuō)明該接口不受網(wǎng)絡(luò)管理器管理,網(wǎng)絡(luò)也是沒有生效的,反之,則生效了)(3)解決步驟:
service NetworkManager stop
service Network??restart
service??NetworkManager??start
解釋:關(guān)閉NetworkManager(service NetworkManagerstop),重啟network(service network restart),再啟動(dòng)NetworkManager
NetworkManager(service NetworkManager start)因?yàn)镹etworkManager會(huì)對(duì)network重啟造成影響,所以先關(guān)閉它,最后這服務(wù)不啟動(dòng)也有影響,所以最后在啟動(dòng)它(4)虛擬機(jī)網(wǎng)絡(luò)啟用后,輸入:nmcli dev status,顯示:(說(shuō)明已經(jīng)連接)
知識(shí)補(bǔ)充: ??????Linux 設(shè)備分為三類:字符設(shè)備(如鍵盤、鼠標(biāo)等)、塊設(shè)備(如硬盤、光驅(qū)、軟驅(qū)等)和網(wǎng)絡(luò)設(shè)備,如以太網(wǎng)卡。為了屏蔽網(wǎng)絡(luò)環(huán)境中物理網(wǎng)絡(luò)設(shè)備的多樣性,LINUX對(duì)所有的物理設(shè)備進(jìn)行抽象并定義了一個(gè)統(tǒng)一的概念,稱之為接口(Interface),接口實(shí)際是運(yùn)行于Linux內(nèi)核一種設(shè)備服務(wù)程序,所有的硬件廠商按照同一規(guī)格編寫,從而提供了一個(gè)對(duì)所有類型的硬件一致化的操作集合來(lái)處理基本數(shù)據(jù)的發(fā)送和接收。一個(gè)網(wǎng)絡(luò)接口可以被看作是一個(gè)發(fā)送和接收數(shù)據(jù)包(packets)的實(shí)體。內(nèi)核在啟動(dòng)時(shí),通過(guò)網(wǎng)絡(luò)驅(qū)動(dòng)程序,檢索系統(tǒng)的固件信息,將網(wǎng)絡(luò)設(shè)備在Linux系統(tǒng)的中登記。這樣網(wǎng)絡(luò)設(shè)備在做數(shù)據(jù)包發(fā)送和接收時(shí),可以通過(guò)接口實(shí)現(xiàn)linux 利用網(wǎng)絡(luò)設(shè)備于外界的交互。接口可以在內(nèi)核初始化時(shí)進(jìn)行,也可以通過(guò)insmod命令來(lái)加載。 ??????根據(jù)標(biāo)準(zhǔn),每一個(gè)具體的網(wǎng)絡(luò)接口都應(yīng)該有一個(gè)名字,以在系統(tǒng)中能唯一標(biāo)識(shí)一個(gè)網(wǎng)絡(luò)接口。常見的網(wǎng)絡(luò)接口名如下: ??????Linux 存在很多的網(wǎng)絡(luò)管理命令,通常我們使用的是network 服務(wù), NetworkManager 服務(wù), ipconfig命令, ip 命令 和 netstat 命令,ss命令等。
?
總結(jié)
以上是生活随笔 為你收集整理的Centos7 NAT网络连接方式以及NetworkManger进行网络连接管理 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。