systemctl restart networkmanager 是现代 linux(ubuntu 20.04+、centos/rhel 7+、fedora)最常用命令,但必须先确认系统实际使用 networkmanager;若用 netplan 则应执行 sudo netplan apply,误用 restart networking 会报“unit not found”或静默失败。

systemctl restart NetworkManager 是现代 Linux 发行版(Ubuntu 20.04+、CentOS/RHEL 7+、Fedora)最常用且大概率正确的命令。但直接套用会失败——关键不在“怎么输”,而在“该输哪个”。
先确认你系统实际用的是哪个网络管理服务
盲目执行 systemctl restart network 或 systemctl restart networking 很可能报错 “Unit not found”。真正起作用的服务名取决于底层网络管理器:
-
NetworkManager:桌面环境、Ubuntu 桌面版、多数新装服务器默认启用;它动态管理有线/Wi-Fi/DNS,不读/etc/network/interfaces -
networking:仅 Debian/Ubuntu Server 旧配置(如 18.04 及更早),依赖/etc/network/interfaces;若系统用了netplan(Ubuntu 18.04+ 默认),这个服务就该被绕过 -
systemd-networkd:轻量级场景(如容器宿主机、CoreOS 风格系统),配置在/etc/systemd/network/ -
network(无ing):基本只存在于 CentOS 6 / RHEL 6 等 SysVinit 老系统,systemd 系统里它是兼容层包装,不可靠
查清的最快方式是:
systemctl list-units | grep -E "(NetworkManager|networking|systemd-networkd)"
或直接看输出里哪个处于 active (running) 状态。
改完配置后不能只 restart,还要 reload connection
比如你刚编辑了 Wi-Fi 密码或静态 IP,在 /etc/NetworkManager/system-connections/ 下改了 .nmconnection 文件,此时只运行 systemctl restart NetworkManager 是不够的——NM 不会自动重载磁盘上的连接定义。
必须补这一步:
nmcli connection reload
然后显式启停对应连接:
nmcli connection down id "MyWiFi" && nmcli connection up id "MyWiFi"
否则新配置可能完全不生效,而 systemctl status NetworkManager 却显示一切正常。
Netplan 用户别碰 systemctl restart networking
Ubuntu 18.04+、Debian 10+ 若存在 /etc/netplan/*.yaml,说明网络由 Netplan 驱动,后端可能是 NetworkManager 或 systemd-networkd。这时:
-
systemctl restart networking会静默失败,甚至导致 IP 消失但服务状态仍为 active - 正确做法永远是:
sudo netplan apply - 如果
netplan apply报错,先用sudo netplan generate和sudo netplan try验证语法和连通性
混用 Netplan + /etc/network/interfaces 是典型冲突源:NM 可能一启动就把 ifup 启的接口 auto-down 掉。
临时救急:只重启单个网卡,不碰服务
远程维护时怕整个网络服务崩掉,或者只是某块网卡失联(比如 ip a 显示 DOWN 或没 IP),优先用底层命令:
sudo ip link set eth0 down && sudo ip link set eth0 up
比 ifconfig eth0 down/up 更现代,不依赖任何服务状态,也不触发 DHCP 重协商以外的逻辑。接口名用 ip -br a 查,常见有 ens33、enp0s3、eth0 等。
注意:这个操作不会刷新 DNS、不重载路由表、不重连 Wi-Fi,纯物理层复位——快、准、副作用最小。
真实场景里最麻烦的不是命令记不住,而是系统表面用着 NetworkManager,却被人手动改过/etc/network/interfaces,又忘了关 NM 的接管逻辑;或者 Netplan 配置写错缩进,netplan apply 不报错但 IP 就是不上。这些地方没有通用命令能兜底,得看日志:journalctl -u NetworkManager -n 50 --no-pager 或 sudo netplan --debug apply。











