在RHEL和CentOS 8中,网络服务由NetworkManager守护进程管理,它用于动态地配置和控制网络设备,并在它们可用时保持连接和活动。
NetworkManager具有许多优点,比如支持使用命令行界面和图形用户界面工具进行简单的网络设置和管理,通过D-Bus提供API,允许查询和控制网络配置,支持配置灵活性等。
此外,还可以使用文件和Cockpit Web控制台配置NetworkManager,它支持使用自定义脚本来根据连接状态启动或停止其他服务。
在进行下一步之前,以下是有关CentOS / RHEL 8中联网的其他一些要点:
- 仍然支持传统的ifcfg类型配置(例如ifcfg-eth0,ifcfg-enp0s3)文件。
- 网络脚本已弃用,默认情况下不再提供。
- 最少的安装提供了通过nmcli工具调用NetworkManager的ifup和ifdown脚本的新版本。
- 要运行ifup和ifdown脚本,必须运行NetworkManager。
在CentOS/RHEL 8上安装NetworkManager
NetworkManager应该预先安装在CentOS / RHEL 8基本安装上,否则,您可以使用DNF软件包管理器进行安装,如图所示。
# dnf install NetworkManager
NetworkManager的全局配置文件位于/etc/NetworkManager/NetworkManager.conf中,其他配置文件位于/etc/NetworkManager/中。
在CentOS/RHEL 8上使用Systemctl管理NetworkManager
在CentOS/RHEL 8和其他采用systemd的现代Linux系统(系统和服务管理器)中,使用systemctl工具管理服务。
以下是用于管理NetworkManager服务的有用的systemctl命令。
检查NetworkManager的状态
默认情况下,最小安装的CentOS/RHEL 8应该已启动NetworkManager并被启用以在启动时自动启动。 您可以使用以下命令来检查NetworkManager是否处于活动状态,已启用并打印NetworkManager的运行时状态信息。
# systemctl is-active NetworkManager
# systemctl is-enabled NetworkManager
# systemctl status NetworkManager
启动NetworkManager
如果NetworkManager没有运行,则可以通过简单运行来启动它。
# systemctl start NetworkManager
停止NetworkManager
要出于某种原因停止或停用NetworkManager,请发出以下命令。
# systemctl stop NetworkManager
重新启动NetworkManager
如果您对接口配置文件或NetworkManager守护程序的配置(通常位于/etc/NetworkManager /目录下)进行了任何更改,则可以重新启动(停止然后再启动)NetworkManager以应用更改,如图所示。
#systemctl restart NetworkManager
重新加载NetworkManager
要在不重新启动服务的情况下重新加载NetworkManager守护程序的配置(而不是systemd的单元配置文件),请运行以下命令。
# systemctl reload NetworkManager
使用NetworkManager工具并使用ifcfg文件
NetworkManager支持一些工具供用户与其交互,这些工具是:
- nmcli–用于配置网络的命令行工具。
- nmtui–一个简单的基于curses的文本用户界面,还用于配置和管理newtwork界面连接。
- 其他工具包括nm-connection-editor,控制中心和网络连接图标(均在GUI下)。
要列出NetworkManager检测到的设备,请运行nmcli命令。
# nmcli device
或者
# nmcli device status
要查看所有活动连接,请运行以下命令(注意,如果没有-a,它将列出可用的连接配置文件)。
# nmcli connection show -a
查看活动网络连接
在CentOS/RHEL 8上设置静态IP地址
特定于网络接口的配置文件位于/etc/sysconfig/Network -scripts/目录中。您可以编辑这些文件中的任何一个,例如,为您的CentOS/RHEL 8服务器设置一个静态IP地址。
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
下面是设置静态IP地址的配置示例。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ffd19ca9-17a4-41f0-ab82-4d40a5df0337
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.0.110
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
PEERDNS=no
查看:
ifconfig
查看网络接口配置
保存更改后,需要重新加载所有连接配置文件或重新启动NetworkManager以应用新更改。
# nmcli connection reload
或者
# systemctl restart NetworkManager
基于网络连接启动或停止网络服务/脚本
NetworkManager有一个有用的选项,允许用户执行服务(如NFS、SMB等)或基于网络连接的简单脚本。
例如,如果希望使用sshfs在本地自动挂载远程目录、挂载SMB共享或在网络之间切换后挂载NFS共享。您可能希望在NetworkManager启动并运行(所有连接都处于活动状态)之前不执行此类网络服务。
此功能由NetworkManager-dispatcher服务提供(必须启动该服务并使其在系统启动时自动启动)。服务运行后,可以将脚本添加到/etc/networkmanager/dispatcher.d目录。
所有脚本必须是可执行和可写的,并拥有根,例如:
# chown root:root /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh
# chmod 755 /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh
重要提示:dispatcher脚本将在连接时按字母顺序执行,在断开连接时按字母顺序执行。
使用旧版网络脚本
如前所述,网络脚本在CentOS/RHEL 8中被弃用,默认情况下不会安装。如果您仍然想使用网络脚本,您需要安装网络脚本包。
# yum install network-scripts
安装之后,这个包提供了一个新版本的ifup和ifdown脚本,它们通过前面介绍的nmcli工具调用NetworkManager。注意NetworkManager应该为您运行这些脚本。
有关更多信息,请参见systemctl和NetworkManager手册页。
# man systemctl
# man NetworkManager
这就是我们在本文中所准备的全部内容。您可以通过下面的留言与我们取得联系,或者提出问题,或者对本指南进行补充。
本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-10/161211.htm