先运行ip -br a查网卡名,再用ip route | grep default确认默认网关;接着通过nmcli connection show、ls /etc/netplan/、ls /etc/sysconfig/network-scripts/ifcfg-*或cat /etc/network/interfaces判断系统使用的网络管理机制。

怎么确认当前系统用哪套网络管理机制
别急着改配置,先搞清系统自己认谁管网络。运行 ip -br a 看网卡名(比如 ens33、enp0s3),再跑 ip route | grep default 确认默认网关——这是后续填地址的依据。
接着判断管理工具:
- 如果
nmcli connection show有输出,且systemctl is-active NetworkManager返回active,说明走nmcli或nmtui - 如果
ls /etc/netplan/有.yaml文件,且cat /etc/netplan/*.yaml里含renderer:字段,那就是netplan - 如果
ls /etc/sysconfig/network-scripts/ifcfg-*存在,且systemctl is-active network是active,属于传统 RHEL/CentOS 风格 - 如果
cat /etc/network/interfaces有内容,且没启用netplan,大概率是 Debian/Ubuntu Server 旧方式
用 netplan 配置静态 IP 时 YAML 容易出错的地方
netplan 不是改完就生效,它只是个声明层,真正干活的是后端服务(systemd-networkd 或 NetworkManager)。常见翻车点集中在格式和匹配上:
- 缩进必须全用空格,Tab 键直接导致
netplan apply报错;可用sudo netplan --debug apply查具体哪行崩了 -
addresses必须是列表:写成[192.168.1.100/24]或换行加-,不能写成192.168.1.100/24 -
gateway4不能写成gateway;DNS 必须嵌套两层:nameservers: {addresses: [8.8.8.8]},漏掉addresses:键会静默失效 -
renderer:值必须和实际运行的服务一致:设networkd就得sudo systemctl enable --now systemd-networkd;设NetworkManager就得确保systemctl is-active NetworkManager是active,且systemd-networkd不能同时开
nmcli 修改连接后不生效的典型原因
nmcli 操作快、不用重启服务,但容易卡在“改了但没完全改”:
- 连接名不对:
nmcli connection show输出的第一列才是真实连接名,常带空格或特殊字符,比如"System ens33"或"Wired connection 1",复制时漏引号或空格就失败 - 没关 DHCP:只设
ipv4.addresses不够,必须显式执行nmcli connection modify "xxx" ipv4.method manual,否则仍走 DHCP - DNS 不生效:
ipv4.dns值要用英文逗号分隔("8.8.8.8,114.114.114.114"),空格或分号都无效;且需配合ipv4.ignore-auto-dns yes才能屏蔽 DHCP 分配的 DNS - 激活失败:执行
nmcli connection down "xxx" && nmcli connection up "xxx"后,用ping -c 3 192.168.1.1测试网关连通性,不通就检查ip route show是否真写了新路由
ifcfg-* 文件配完重启 network 服务仍不生效
RHEL/CentOS 系统靠 network.service 解析 /etc/sysconfig/network-scripts/ifcfg-*,失效往往不在 IP 本身:
-
ONBOOT=yes缺失或写成no—— 这是开机自启开关,设错等于配置被忽略 -
BOOTPROTO=static写成BOOTPROTO=STATIC(大小写敏感)或漏掉 - 网关写错位置:必须是
GATEWAY=192.168.1.1,不能塞在IPADDR行末尾,也不能写成GATEWAYADDR - DNS 生效依赖
PEERDNS=no:否则network.service会覆盖/etc/resolv.conf,手动写入的 DNS 被清空 - 重启服务后检查
journalctl -u network -n 20,看有没有Failed to bring up类报错,常提示网卡名拼错或参数冲突
实际生效前,务必验证三件事:IP 地址是否出现在 ip addr show 输出里、默认路由是否在 ip route show 中、cat /etc/resolv.conf 的 DNS 是否是你配的——这三个点任何一个断掉,都算没真正配通。


















