CentOS 8 配置网络

一. 涉及程序介绍

由于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

CentOS 8 配置网络

如上图,可以看到服务器中存在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

CentOS 8 配置网络

 

3). 查看指定网络连接connection的具体信息

nmcli connection show svn

CentOS 8 配置网络

内容很多,仅截取了部分。

 

4). 查看网络设备device信息

nmcli device show

CentOS 8 配置网络

 

5). 查看指定网络设备device的具体信息

nmcli device show enp6s0

CentOS 8 配置网络

 

2. 修改网络配置

接下来开始干正事:修改服务器以太网的配置。这里可以继续使用nmcli来完成这一工作,但有一个更加友好的选择,即nmtui,nmtui具有文本图形用户界面,使用起来更加简单。

nmcli

CentOS 8 配置网络

选择编辑连接connection,进入连接编辑界面:

CentOS 8 配置网络

编辑完成后退出即可。

这里需要注意的是,编辑完成后,有些修改项,例如连接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的信息,为了影响最小化,只需要重新启动网络连接即可,不必重启网络设备,甚至是整个网络重启,因此这里推荐的方法是方式一,虽然使用其他的方式也无伤大雅。