Centos7系統配置上的變化(二)網絡管理基礎

本文轉載自:https://www.cnblogs.com/panblack/p/3999233.html 作者:panblack 轉載請註明該聲明。

上篇簡單介紹了CentOS 7 在服務和網絡方面的一點變化,先前很多爛熟於心的操作指令已經不適用了,不管是否習慣,總要接受、熟悉這些變化。
寫上篇的時候還沒有最小安裝的ISO(CentOS-7.0-1406-x86_64-Minimal.iso),後來安裝了首先發現ifconfig、netstat、route、arp都沒有了,在哪兒呢?

[root@centos7 ~]# yum search ifconfig
......
======================== Matched: ifconfig =========================
net
-tools.x86_64 : Basic networking tools
[root@centos7
~]#

 哦,最小安裝默認沒有包含這些老工具,如果非用不可,就 yum install net-tools 吧,但我就是要看看不用它們我們怎麼來管理網絡。
我們將要用到的是ip指令,ss指令和NetworkManager的兩個工具 nmtui,nmcli。老實說,這幾個工具更加強大了,但還真不太容易習慣呢。

一、ip ss指令替代 ifconfig route arp netstat

1、ip 指令入門
ip [ OPTIONS ] OBJECT { COMMAND | help }  
OBJECT 和 COMMAND可以簡寫到一個字母
ip help          可以查到OBJECT列表和OPTIONS,簡寫 ip h
ip <OBJECT> help   查看針對該OBJECT的幫助,比如 ip addr help,簡寫 ip a h
ip addr          查看網絡接口地址,簡寫 ip a

查看網絡接口地址,替代ifconfig:

[root@centos7 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link
/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet
127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::
1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link
/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
inet
192.168.150.110/24 brd 192.168.150.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe15:35d2
/64 scope link
valid_lft forever preferred_lft forever
[root@centos7
~]#


網絡接口統計信息

[root@centos7 ~]# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link
/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link
/ether 08:00:27:15:35:d2 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
8135366 131454 0 0 0 456
TX: bytes packets errors dropped carrier collsns
646297 2441 0 0 0 0


2、ip route顯示和設定路由

顯示路由表

[root@centos7 ~]# ip route show
default via
192.168.150.254 dev enp0s3 proto static metric 1024
192.168.150.0/24 dev enp0s3 proto kernel scope link src 192.168.150.110

太難看了,格式化一下(顯示的是默認網關和局域網路由,兩行的內容沒有共通性):

[root@centos7 tmp]# ip route show|column -t
default via
192.168.150.254 dev enp0s3 proto static metric 1024
192.168.150.0/24 dev enp0s3 proto kernel scope link src 192.168.150.110


添加靜態路由

[root@centos7 ~]# ip route add 10.15.150.0/24 via 192.168.150.253 dev enp0s3
[root@centos7
~]#
[root@centos7
~]# ip route show|column -t
default via
192.168.150.254 dev enp0s3 proto static metric 1024
10.15.150.0/24 via 192.168.150.253 dev enp0s3 proto static metric 1
192.168.150.0/24 dev enp0s3 proto kernel scope link src 192.168.150.110
[root@centos7
~]#
[root@centos7
~]# ping 10.15.150.1
PING
10.15.150.1 (10.15.150.1) 56(84) bytes of data.
64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.77 ms
64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.08 ms
64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.57 ms
^C


刪除靜態路由只需要把 add 替換成 del,或者更簡單的只寫目標網絡

[root@centos7 ~]# ip route del 10.15.150.0/24

 

 #修改於2014-10-8 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

3、設置永久的靜態路由

ip route 指令對路由的修改不能保存,重啓就沒了。把 ip route 指令寫到 /etc/rc.local 也是徒勞的。

RHEL7官網文檔沒有提到 /etc/sysconfig/static-routes,經測試此文件已經無效;

/etc/sysconfig/network 配置文件僅僅可以提供全局默認網關,語法同 Centos6 一樣: GATEWAY=<ip address>

永久靜態路由需要寫到 /etc/sysconfig/network-scripts/route-interface 文件中,比如添加兩條靜態路由:

[root@centos7 ~]#echo "10.15.150.0/24 via 192.168.150.253 dev enp0s3" > /etc/sysconfig/network-scripts/route-enp0s3
[root@centos7 ~]#echo "10.25.250.0/24 via 192.168.150.253 dev enp0s3" >> /etc/sysconfig/network-scripts/route-enp0s3

注意第二條指令的重定向符號是 >>

重啓計算機、或者重新啓用設備enp0s3才能生效(指令:nmcli dev connect enp0s3 )。

如果要清除永久靜態路由,可以刪除 ifcfg-enp0s3文件或者註釋掉文件裏的相應靜態路由條目,重啓計算機。想要讓修改後的靜態路由立即生效,只能用 ip route del 手工刪除靜態路由條目。

實驗的過程中出現兩個奇怪的現象:

1)有時候路由生效了但是在 ip route show 卻沒有顯示,重啓計算機後是肯定顯示的,原因暫時不明。

2)存在多個網卡時,默認路由似乎是隨機經由某個網卡設備。檢查了所有連接配置文件後發現,第一網卡的默認連接配置文件 ifcfg-eth0 設置了GATEWAY0(此設置會覆蓋/etc/sysconfig/network 定義的全局默認網關),第二網卡的連接配置文件 ifcfg-eth1 使用的是dhcp,會在啓動時也分配默認網關,兩個默認網關讓計算機糊塗了。這是在測試系統裏經常發生的現象,生產系統一般不會讓網卡用dhcp,或者即使是用了也會仔細分配默認網關防止衝突。

其他需要注意的:

1)連接配置文件 ifcfg-* 裏可以設置多個GATEWAY,一般第一個是 GATEWAY0,然後GATEWAY1, GATEWAY2... ,尾號最大的有效;

2)如果必須在/etc/sysconfig/network 文件定義全局網關,連接配置文件 ifcfg-* 就不要設置GATEWAY了,dhcp的連接要注意dhcp服務器不要定義默認網關。

3)ifcfg-enp0s3 文件改名爲 ifcfg-eth0 後,route-enp0s3 文件也要改名爲 route-eth0。

#修改於2014-10-8 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

 

4、用 ip neighbour 代替 arp -n

[root@centos7 ~]# ip nei
192.168.150.254 dev enp0s3 lladdr b8:a3:86:37:bd:f8 STALE
192.168.150.100 dev enp0s3 lladdr 90:b1:1c:94:a1:20 DELAY
192.168.150.253 dev enp0s3 lladdr 00:09:0f:85:86:b9 STALE

可以用 ip nei add 添加靜態 arp 條目,ip nei delete 刪除靜態arp條目,見 http://www.cnblogs.com/lidp/archive/2009/12/02/1697480.html

 

5、用ss 代替 netstat
對應netstat -ant

[root@centos7 ~]# ss -ant
State Recv
-Q Send-Q Local Address:Port Peer Address:Port
LISTEN
0 100 127.0.0.1:25 *:*
LISTEN
0 128 *:22 *:*
ESTAB
0 0 192.168.150.110:22 192.168.150.100:53233
LISTEN
0 100 ::1:25 :::*
LISTEN
0 128 :::22 :::*

 

對應netstat -antp

[root@centos7 tmp]# ss -antp
State Recv
-Q Send-Q Local Address:Port Peer Address:Port
LISTEN
0 100 127.0.0.1:25 *:*
users:((
"master",1817,13))
LISTEN
0 128 *:22 *:*
users:((
"sshd",1288,3))
ESTAB
0 0 192.168.150.110:22 192.168.150.100:59413
users:((
"sshd",2299,3))
LISTEN
0 100 ::1:25 :::*
users:((
"master",1817,14))
LISTEN
0 128 :::22 :::*
users:((
"sshd",1288,4))
[root@centos7 tmp]#

看着真的很彆扭,不管多寬的終端屏,users:部分都會折到下一行,其實是在一行的。

格式化一下,內容整齊了,但是標題行串了:

[root@centos7 tmp]# ss -antp|column -t
State Recv
-Q Send-Q Local Address:Port Peer Address:Port
LISTEN
0 100 127.0.0.1:25 *:* users:(("master",1817,13))
LISTEN
0 128 *:22 *:* users:(("sshd",1288,3))
ESTAB
0 0 192.168.150.110:22 192.168.150.100:59413 users:(("sshd",2299,3))
LISTEN
0 100 ::1:25 :::* users:(("master",1817,14))
LISTEN
0 128 :::22 :::* users:(("sshd",1288,4))



5、網絡配置文件:
/etc/sysconfig/network    說是全局設置,默認裏面啥也沒有,可以添加全局默認網關
/etc/hostname              用nmtui修改hostname後,主機名保存在這裏
/etc/resolv.conf             保存DNS設置,不需要手工改,nmtui裏面設置的DNS會出現在這裏
/etc/sysconfig/network-scripts/       連接配置信息 ifcfg 文件
/etc/NetworkManager/system-connections/  VPN、移動寬帶、PPPoE連接

6、舊的network腳本和ifcfg文件
Centos7 開始,網絡由 NetworkManager 服務負責管理,相對於舊的 /etc/init.d/network 腳本,NetworkManager是動態的、事件驅動的網絡管理服務。舊的 /etc/init.d/network 以及 ifup,ifdown 等依然存在,但是處於備用狀態,即:NetworkManager運行時,多數情況下這些腳本會調用NetworkManager去完成網絡配置任務;NetworkManager麼有運行時,這些腳本就按照老傳統管理網絡。這部分我們回頭作爲專題來搞搞。

[root@centos7 ~]# /etc/init.d/network start
Starting network (via systemctl): [ OK ]

注意(via systemctl),它的作用跟 systemctl restart network 一樣的。



二、nmtui配置基本網絡連接
nmtui 屬於curses-based text user interface(文本用戶界面), 類似 Centos6 的 setup 工具,但只能編輯連接、啓用/禁用連接、更改主機名。系統初裝之後可以第一時間用nmtui配置網絡,挺方便。
看圖吧,功能跳轉可以用 tab 鍵或光標鍵,用空格或回車執行。每個子功能完成了、退出了或取消了會直接回命令行(覺得不方便就試試 nmtui help,有直達的方法)。

在命令行運行 nmtui



添加連接,支持的連接很豐富啊,還有WiFi呢。但是vpn在哪?呵呵,nmtui目前還不支持。



編輯連接。



想編哪裏就跳到哪裏,如果不喜歡enp0s3這樣的連接名,可以在Profile name處改掉,後面會說改名的好處。



注意,編輯複選框只能用空格



啓用/禁用連接,遠程連接的時候可以試試執行一下 <Deactivate>,然後以淚洗面吧。。。。



改主機名,改完後重啓纔有效,不想重啓就回命令行執行 hostname <你的主機名> ,註銷再登錄就好了。



三、nmcli和其他網絡設置
nmcli的功能要強大、複雜的多

[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 help

OBJECT
g[eneral] NetworkManager
's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager
's connections
d[evice] devices managed by NetworkManager

OBJECT和COMMAND可以用全稱也可以用簡稱,最少可以只用一個字母,建議用頭三個字母。OBJECT裏面我們平時用的最多的就是connection和device,這裏需要簡單區分一下connection和device。

device叫網絡接口,是物理設備
connection是連接,偏重於邏輯設置
多個connection可以應用到同一個device,但同一時間只能啓用其中一個connection。
這樣的好處是針對一個網絡接口,我們可以設置多個網絡連接,比如靜態IP和動態IP,再根據需要up相應的connection。

上篇說了,/etc/udev/rules.d/70-persistent-net.rules 文件沒有了,新添加的網卡NetworkManager自動識別。我們現在試試,給Virtualbox虛擬機增加第二塊網卡,虛擬機啓動後直接可以看到並且生效了。

[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”是新增的網絡連接,對應的網絡接口叫enp0s8;
“enp0s3”是最初的網絡連接,默認與網絡接口同名。

我們可以用nmtui把兩個連接改成我們熟悉的名字(nmcli也能,但比較麻煩哦)。改完了看看連接:

[root@centos7 ~]# nmcli con show
NAME UUID TYPE DEVICE
eth1 0c451785
-b098-4c5c-994d-9107171b439d 802-3-ethernet enp0s8
eth0 295e1841
-0ff3-4db9-8800-4e25fc2944da 802-3-ethernet enp0s3

這樣就舒服多了!

看看設備:

[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
~]#


但是試試用連接名查設備呢?

[root@centos7 ~]# nmcli dev show eth0
Error: Device
'eth0' not found.


用設備名查連接也是一樣出錯:

[root@centos7 ~]# nmcli con show enp0s3
Error: enp0s3
- no such connection profile.


這回能看清楚了吧?懂得了連接和設備的區別,在一些指令幫助裏面有的參數需要connection,有的需要device,就不會糊塗了。

需要注意的是,enp0s3設備對應的連接名改爲eth0,但對應的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]#

沒有問題,配置文件改名成功,強迫症又一次勝利了,耶!
我們還可以看到,ifcfg-eth0裏面沒有參數指明設備enp0s3,唯一與設備enp0s3相對應的是MAC地址(HWADDR 08:00:27:15:35:D2)。

現在試試增加一個針對新網絡接口enp0s8的連接,現有連接是 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

嗯,是自動獲得IP的。

我們新建一個連接eth1-1,分配固定IP,用nmtui可以很容易的建立


[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
只是增加了一個連接,其他的沒有變化。
我們啓動新連接 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” 是以腳本友好的方式顯示網絡接口信息。

現在可以很明顯的看到,將連接eth1-1 up了之後,eth1-1佔據了原來由eth1佔據的DEVICE enp0s8,並且IP地址已經是指定的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參數,但是多了一個DEVICE參數,等於enp0s8,你可以對比一下 ifcfg-eth1 看看區別在哪。
連接的配置文件 ifcfg-*,可以用 DEVICE 指定設備名,也可以用HWADDR指定設備的MAC地址,最終結果都一樣的指向某個設備(網絡接口)。

我們再試試用nmcli增加連接:

[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]#

現在up的連接是eth1-2,網絡接口enp0s8的IP是10.0.3.120
如果重新up連接eth1-1,nmcli con up eth1-1,網絡接口enp0s8的IP變成了10.0.3.110
如果重新up連接eth1,  nmcli con up eth1,  網絡接口enp0s8的IP就回到原來自動獲得的值10.0.3.15

所以,對一個網絡接口設置不同的連接,可以快速的切換不同的網絡配置,這個真的滿厲害的。
如果希望系統重啓後僅up某個特定連接,那麼可以把其他連接配置文件的ONBOOT=no,ONBOOT=no的連接也可以隨時up。  #添加於2014-10-8

編輯連接
用nmtui編輯連接後,ifcfg文件也會有相應的改動;手工修改ifcfg後,nmtui中也能看到。
但是,不論用nmtui還是直接修改ifcfg文件,想讓新的配置生效,我們需要load連接配置文件並重新up連接。

舉例,我們編輯ifcfg-eth1-1,把IP改爲10.0.3.111,然後執行nmcli con reload 或 nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth1-1
結果如下:

[root@centos7 ~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth1-1
[root@centos7
~]# nmcli con up eth1-1
Connection successfully activated (D
-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
[root@centos7
~]# ip addr show enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link
/ether 08:00:27:98:d1:b7 brd ff:ff:ff:ff:ff:ff
inet
10.0.3.111/24 brd 10.0.3.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe98:d1b7
/64 scope link
valid_lft forever preferred_lft forever
[root@centos7
~]#

新的IP地址生效了。

 



BONUS:如果有物理WLAN,nmcli能查看wifi,瞅瞅來,好玩吧?(示例來自nmcli-examples(5) man page,指令: man 5 nmcli-examples)

$ nmcli device wifi list

* SSID MODE CHAN RATE SIGNAL BARS SECURITY
netdatacomm_local Infra
6 54 MB/s 37 ▂▄__ WEP
* F1 Infra 11 54 MB/s 98 ▂▄▆█ WPA1
LoremCorp Infra
1 54 MB/s 62 ▂▄▆_ WPA2 802.1X
Internet Infra
6 54 MB/s 29 ▂___ WPA1
HPB110a.F2672A Ad
-Hoc 6 54 MB/s 22 ▂___ --


鑑於很多基本配置可以用nmtui做,而且往往設置一次就夠了,nmcli命令行其他強大功能等用的時候再查吧,這裏不多講了。



參考:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/index.html (這文檔寫的吧,,,,唉。。。)
nmcli-examples(5) man page — Gives examples of nmcli commands.
ip(8) man page — Describes the ip utility's command syntax.
nmcli(1) man page — Describes NetworkManager's command‐line tool.

發佈了0 篇原創文章 · 獲贊 70 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章