debian/ubuntu用systemctl restart networking,centos/rhel 7+用systemctl restart network;networkmanager启用时须用nmcli reload并down/up连接,混用会导致失效。

改完配置文件后,直接 systemctl restart network 不一定生效——得看发行版和网络管理机制。
用 systemctl restart networking 还是 network?
Debian/Ubuntu 系统用 systemctl restart networking;CentOS/RHEL 7+ 用 systemctl restart network。两者不能混用,否则会报 Failed to restart network.service: Unit network.service not found 或类似错误。
- Debian/Ubuntu:服务名是
networking,对应配置文件在/etc/network/interfaces - CentOS/RHEL:服务名是
network,对应配置文件在/etc/sysconfig/network-scripts/ifcfg-* - 如果系统装了 NetworkManager(桌面版或 CentOS 8+),
systemctl restart network可能被忽略,实际要用nmcli connection down && up
ifdown/ifup 比 systemctl 更可靠?
当 systemctl 重启失败或卡住时,ifdown + ifup 是更底层、更可控的替代方案,尤其适合单网卡调试。
- 先确认网卡名:
ip link show,比如看到ens33 - 执行:
sudo ifdown ens33 && sudo ifup ens33 - 注意:
ifdown会断开当前 SSH 连接(如果走的是该网卡),建议本地操作或提前开好 console - 某些新版系统默认不带
ifup/ifdown,需装net-tools或改用ip link set ens33 down/up
NetworkManager 环境下必须用 nmcli
如果你的系统启用了 NetworkManager(systemctl is-active NetworkManager 返回 active),手动改 /etc/sysconfig/network-scripts/ifcfg-* 文件后,systemctl restart network 基本无效。
- 查连接名:
nmcli connection show,通常叫"System ens33"或"Wired connection 1" - 应用变更:
sudo nmcli connection reload后再sudo nmcli connection down "System ens33" && sudo nmcli connection up "System ens33" - 漏掉
reload步骤会导致新配置不被读取,up后仍是旧 IP
最容易被忽略的是 NetworkManager 和传统 network 服务共存时的冲突——改完文件却死活不生效,大概率是 NM 在后台接管了接口,此时看 nmcli device status 比看 ip addr 更能暴露真实状态。











