一. 涉及程序介绍
由于ifconfig、network.service等经典网络程序工具在各个新的Linux发行版本中逐步被废弃,因此本文将避开这些工具的使用,本文将要使用到的工具是取而代之的NetworkManager.service。
程序和描述
a. NetworkManager:默认联网守护进程
b. nmtui:NetworkManager的使用光标的简单文本用户界面(TUI)
c. nmcli:允许用户及脚本与NetworkManager互动的命令行工具
1. NetworkManager
NetworkManager.service是新的网络管理程序,取代了原来的network.service。用户不与 NetworkManager.service系统服务直接互动,而是通过图形及命令行用户界面工具执行网络配置任务。
新的Linux发行版一般都已经默认安装了NetworkManager,如果你的服务器中没有,则安装之:
yum install NetworkManager
使用上没什么可说的,除了这货的命名有大写字母,有点奇怪以外:
systemctl start|stop|restart|status NetworkManager
2. nmcli
NetworkManage Command-line
NetworkManager命令行工具nmcli,允许用户及脚本与NetworkManager互动。注:nmcli 可用于缺少GUI的系统(比如服务器)以控制NetworkManager的各个方面。它与GUI工具处于同等地位。nmcli默认会与NetworkManager一同安装。
3. nmtui
NetworkManager Text User Interface
NetworkManager的简单基于光标的文本用户界面(TUI)nmtui。
NetworkManager文本用户界面(TUI)工具nmtui可提供一个文本界面配置由 NetworkManager控制的网络。该工具包含在NetworkManager-tui子软件包中,不会默认随NetworkManager安装该子软件包。要安装NetworkManager-tui,运行以下命令:
yum install NetworkManager-tui
二. 修改以太网配置
1. 查看服务器网络状态
1). 查看网络概览
nmcli
如上图,可以看到服务器中存在4个网络设备device:
a. enp6s0: 以太网,其上有一个活动的网络连接svn,网络吞吐能力mtu为1500,ipv4为10.17.1.42/21。
b. lo: 本地网络回环,未受到NetworkManager管理。
c. virbr0: 网桥,未受到NetworkManager管理。
d. virbr0-nic: 虚拟网卡,未受到NetworkManager管理。
也就是说,当前服务器受到NetworkManager管理的设备device只有enp6s0,连接connection是svn。
2). 查看网络连接connection信息
nmcli connection show
3). 查看指定网络连接connection的具体信息
nmcli connection show svn
内容很多,仅截取了部分。
4). 查看网络设备device信息
nmcli device show
5). 查看指定网络设备device的具体信息
nmcli device show enp6s0
2. 修改网络配置
接下来开始干正事:修改服务器以太网的配置。这里可以继续使用nmcli来完成这一工作,但有一个更加友好的选择,即nmtui,nmtui具有文本图形用户界面,使用起来更加简单。
nmcli
选择编辑连接connection,进入连接编辑界面:
编辑完成后退出即可。
这里需要注意的是,编辑完成后,有些修改项,例如连接connection的名称svn,会立即生效,而有些修改项,如IP地址等,并不会生效,显然需要重启某些东西。
3. 令新的网络配置生效
要令新的网络配置生效,首先想到的是重启网络服务:
systemctl restart NetworkManager
然而,NetworkManager重启后,再次执行nmcli,发现新的网络配置并没有生效。这是一个比较坑人的地方,导致网络配置的修改变得麻烦起来,即修改后不知道怎么令修改生效,经过实验,可以通过以下几种方式令新的网络配置生效。
1). 方式一:重启网络连接connection
这里,我们需要重新启动网络连接connection svn:
nmcli connection down svn && nmcli connection up svn
2). 方式二:重新连接网络设备device
这里,我们需要重新连接网络设备enp6s0:
nmcli device disconnect enp6s0 && nmcli device connect enp6s0
3). 方式三:重新应用网络设备device,刷新网络连接connection
这里,重新需要重新应用网络设备enp6s0
nmcli device reapply enp6s0
4). 方式四:重启网络
a. 重导连接connection配置
nmcli connection reload
b. 重启网络networking
nmcli networking off && nmcli networking on
5). 方式五:重启服务器!!!你不会这么想不开吧~
由于我们仅仅是修改了网络连接connection的信息,为了影响最小化,只需要重新启动网络连接即可,不必重启网络设备,甚至是整个网络重启,因此这里推荐的方法是方式一,虽然使用其他的方式也无伤大雅。