在CentOS 7操作系统中,网络服务的重启是日常运维中常见的操作,无论是配置修改后的生效、网络故障排查还是服务更新,都可能需要重启网络服务,CentOS 7默认使用NetworkManager作为网络管理工具,它负责管理系统的网络连接,包括物理接口、虚拟接口、DNS配置等,本文将详细介绍CentOS 7重启网络命令的各种方法、适用场景及注意事项,帮助用户高效完成网络服务重启操作。

使用systemctl命令重启网络服务
systemctl是CentOS 7中用于管理系统服务的主要工具,通过它可以启动、停止、重启、启用或禁用服务,对于网络服务,CentOS 7默认使用NetworkManager服务,因此最常用的重启命令是针对NetworkManager的。
重启NetworkManager服务
执行以下命令可以重启NetworkManager服务:
sudo systemctl restart NetworkManager
该命令会先停止NetworkManager服务,然后重新启动它,过程中会重新加载所有网络配置,包括接口配置、DNS设置、路由规则等,需要注意的是,重启NetworkManager会导致所有活动的网络连接短暂中断,因此在生产环境中执行时需谨慎,建议在业务低峰期操作。
重启network服务(传统方式)
虽然CentOS 7推荐使用NetworkManager,但某些场景下(如禁用NetworkManager后),仍可能使用传统的network服务,此时可通过以下命令重启:

sudo systemctl restart network
该命令仅重启传统的网络服务,不会影响NetworkManager的运行,如果系统同时启用了NetworkManager和network服务,可能会导致网络配置冲突,因此建议根据实际需求选择一种网络管理方式。
查看网络服务状态
在重启前后,可通过以下命令查看网络服务的运行状态:
sudo systemctl status NetworkManager
或
sudo systemctl status network
命令会显示服务的当前状态、是否正在运行、最近日志等信息,便于确认重启是否成功。

使用nmcli命令重启网络连接
NetworkManager提供了nmcli命令行工具,用于管理网络连接,与重启整个NetworkManager服务不同,nmcli可以单独重启特定的网络连接,避免全局网络中断。
重启所有网络连接
执行以下命令可重启所有由NetworkManager管理的网络连接:
sudo nmcli connection down "连接名" && sudo nmcli connection up "连接名"
“连接名”可以通过nmcli connection show命令查看,若连接名为ens33,则命令为:
sudo nmcli connection down ens33 && sudo nmcli connection up ens33
这种方式仅影响指定的连接,其他连接(如lo回环接口)不受影响,适合需要精细控制网络连接的场景。
重启特定网络连接
如果只想重启某个特定的连接(如eth0),可使用以下命令:
sudo nmcli connection reload && sudo nmcli connection up eth0
nmcli connection reload会重新加载所有连接配置,up eth0则启动指定连接,这种方式适用于修改了连接配置(如IP地址、DNS等)后需要立即生效的场景。
使用ifdown/ifup命令重启网络接口
ifdown和ifup是传统的网络接口管理工具,可直接关闭或启动指定的网络接口,但需要注意,这两个命令仅对接口本身生效,不会影响NetworkManager的配置管理。
重启单个网络接口
以eth0接口为例,执行以下命令:
sudo ifdown eth0 && sudo ifup eth0
该命令会先关闭eth0接口,然后重新启动它,过程中接口会短暂离线,使用前需确保接口名称正确,可通过ip a或ifconfig命令查看当前接口列表。
注意事项
- ifdown/ifup命令不会重新加载NetworkManager的配置,如果接口是通过NetworkManager管理的,重启后可能会被NetworkManager重新接管。
- 在使用ifdown命令前,确保没有重要业务依赖该接口,否则可能导致连接中断。
网络服务重启的常见场景及操作流程
场景1:修改网络配置后生效
当修改了/etc/sysconfig/network-scripts/目录下的接口配置文件(如ifcfg-eth0)后,需要重启网络服务使配置生效,操作步骤如下:
- 编辑配置文件,例如修改IP地址:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改
IPADDR和NETMASK等参数后保存退出。 - 重启网络连接或服务:
sudo nmcli connection down eth0 && sudo nmcli connection up eth0
或
sudo systemctl restart NetworkManager
- 验证配置是否生效:
ip a show eth0
场景2:网络故障排查
当出现网络不通(如无法ping通网关或外网)时,可通过重启网络服务尝试恢复,操作流程如下:
- 检查网络服务状态:
sudo systemctl status NetworkManager
- 检查接口状态:
ip a show eth0
- 重启网络服务:
sudo systemctl restart NetworkManager
- 再次测试网络连通性:
ping 8.8.8.8
不同重启方式的对比
为了更直观地比较不同重启方式的适用场景,以下表格总结了各类命令的特点:
| 命令/工具 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
systemctl restart NetworkManager |
全局网络服务重启,配置修改后全局生效 | 彻底重新加载所有网络配置 | 会导致所有连接中断 |
nmcli connection down/up |
单独重启指定网络连接 | 精细控制,不影响其他连接 | 需指定连接名,操作稍复杂 |
ifdown/ifup |
传统接口管理,禁用NetworkManager时 | 直接控制接口,无需依赖服务 | 不加载NetworkManager配置 |
相关问答FAQs
问题1:重启网络服务后,DNS配置未生效怎么办?
解答:如果重启网络服务后DNS配置未生效,可能是NetworkManager未正确加载DNS配置,可尝试以下方法:
- 检查
/etc/resolv.conf文件是否被正确更新,若内容为空或错误,可手动修改或通过nmcli重新配置DNS:sudo nmcli connection modify eth0 ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli connection up eth0
- 确保NetworkManager服务正在运行:
sudo systemctl status NetworkManager
- 若问题仍存在,可重启NetworkManager服务并检查日志:
sudo journalctl -u NetworkManager
问题2:如何避免重启网络服务时导致SSH连接中断?
解答:通过SSH远程连接服务器时,直接重启网络服务会导致SSH连接断开,影响操作,可采取以下方法避免:
- 使用
tmux或screen工具启动会话,即使网络中断,重新连接后仍可恢复会话:tmux new -s session_name
- 分步操作:先关闭当前网络连接,再通过本地控制台或另一台服务器重新连接后启动网络服务。
- 使用
nohup命令将命令放入后台执行,避免等待命令完成导致连接中断:sudo nohup systemctl restart NetworkManager &
- 如果条件允许,直接在物理控制台或虚拟控制台上操作,避免SSH依赖网络的问题。
