nmcli修改ip后不生效,首要原因是connection未激活或名称不匹配,需用nmcli connection show确认name并加引号启用;其次须设ipv4.method为manual、addresses带cidr掩码、完整配置gateway和dns,且必须执行down再up以清除状态残留。

nmcli 修改 IP 后不生效?检查 connection 是否 active
用 nmcli connection modify 改完参数,nmcli connection up 却没反应,常见原因是目标 connection 没被激活,或者名字和实际网卡不匹配。执行 nmcli connection show 时看到的“NAME”列才是 connection 名(可能叫 System ens33,不是 ens33)。若 name 含空格,up 时得加引号:nmcli connection up "System ens33"。
另一个坑是:改完没 reload,旧连接缓存还在。保险做法是先 nmcli connection down "System ens33" 再 up,避免状态残留。
-
ipv4.method必须设为manual,设成auto或漏设会导致仍走 DHCP -
ipv4.addresses格式必须带前缀长度,如192.168.1.100/24,写成192.168.1.100 255.255.255.0会失败 - DNS 配置要写在 connection 级别,
nmcli connection modify ... ipv4.dns "8.8.8.8 114.114.114.114",别只改/etc/resolv.conf
编辑 ifcfg- 文件后 systemctl restart network 报错
报错提示 Failed to restart network.service: Unit network.service not found,说明系统没启用传统 network 服务——CentOS 7 默认用 NetworkManager,network.service 可能被禁用或未安装。
先确认服务状态:systemctl is-enabled NetworkManager 应为 enabled;再查 systemctl is-active NetworkManager 是否 running。如果 network.service 确实不存在,就别硬重启它,改用 nmcli connection reload && nmcli connection down "xxx" && nmcli connection up "xxx" 触发重载。
- ifcfg 文件里
BOOTPROTO写static或none都行,但必须同时配IPADDR和NETMASK(或PREFIX) -
ONBOOT=yes忘了设,重启后 IP 就丢了 - 改完文件别忘了
nmcli connection reload,否则 NetworkManager 不读新内容
nmtui 设置完 IP 无法 ping 通网关
nmtui 看似简单,但容易漏掉网关或 DNS 配置项。进入 “Edit a connection” → “IPv4 Configuration” 后,手动模式下 Addresses、Gateway、DNS servers 三栏都得填满,空着任何一项都会导致路由缺失或域名无法解析。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
特别注意:Gateway 栏只接受单个 IPv4 地址(如 192.168.1.1),不能带子网掩码或斜杠;DNS 栏多个地址用空格分隔,别用逗号。
- 保存退出后,nmtui 不会自动 up 连接,得手动选 “Activate a connection” 或用命令
nmcli connection up - 如果网关不通,先
ip route show看默认路由是否存在,没有就说明 Gateway 没生效 -
cat /etc/resolv.conf显示的 DNS 是 NetworkManager 自动生成的,别手动改它,改了下次 reload 会被覆盖
修改后 ifconfig 看不到新 IP?用 ip addr 替代
ifconfig 在 CentOS 7 默认不预装,且即使装了也常显示过期缓存信息。真实 IP 状态一律以 ip addr show 为准——它读内核实时数据,不会骗人。
例如,执行 ip addr show ens33 输出中,inet 192.168.1.100/24 行出现才算真生效;而 ifconfig ens33 可能还停在旧地址,或直接报 command not found。
- 别依赖
ping自己 IP 来验证,Linux 默认禁止响应本机 ping,用ping -c 3 192.168.1.1测网关更靠谱 - 改完 IP 后,
ssh连接会断,这是正常现象;新连接需用新 IP,旧会话不会自动迁移 - 虚拟机环境改 IP 后,记得同步检查宿主机防火墙、VMware/VirtualBox 的网络模式(NAT/桥接)是否匹配
实际操作中最容易被忽略的是 connection 名称与网卡名的混淆,以及 NetworkManager 和 network.service 的共存关系——它们不是互斥的,但配置入口和生效机制完全不同。










