推荐优先用 PREFIX=24,因其为 systemd-networkd 兼容写法且避免手动输错子网掩码;若已用 NETMASK 则需确保与 IPADDR 匹配,否则 systemctl restart network 可能静默失败、ip addr 显示旧掩码。

修改 NETMASK 或 PREFIX 哪个更稳妥?
CentOS 7 网络配置中,子网掩码可以用两种方式表达:NETMASK=255.255.255.0 或 PREFIX=24。两者等价,但推荐优先用 PREFIX,因为它是 systemd-networkd 兼容写法,且避免了手动输错掩码(比如把 255.255.255.0 写成 255.255.0.0 这类低级错误)。
如果已有配置用了 NETMASK,不建议混用;要么全删掉 NETMASK 改用 PREFIX,要么只保留 NETMASK 并确保和 IPADDR 匹配——否则 systemctl restart network 可能静默失败,ip addr 显示的掩码仍是旧值。
NETMASK 写错会导致什么现象?
常见错误包括:
-
NETMASK=255.255.255.255:系统会认为该 IP 是单点地址,路由表里不生成直连网络,ping同网段机器不通 -
NETMASK=255.0.0.0但IPADDR=192.168.1.100:网络划分错乱,可能无法访问网关或 DNS - 漏写
NETMASK或PREFIX:即使BOOTPROTO=static,服务重启后接口可能只有 IP 地址、无子网信息,ip route看不到直连路由
这类问题不会报错,systemctl status network 显示 active,但实际网络不可用——必须检查 ip addr show 输出里的 `inet` 行末尾是否带 `/24` 这类前缀。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
改完必须重启 network 服务吗?
是的,但注意两点:
-
systemctl restart network是标准做法;service network restart在 CentOS 7 上只是软链接,效果一样 - 别用
ifconfig ens33 netmask 255.255.255.0临时改——它不持久,且和配置文件冲突,下次重启服务会覆盖掉 - 如果改完发现连不上,先运行
ip addr flush dev ens33清掉残留地址,再systemctl restart network
为什么改了 NETMASK 还 ping 不通网关?
大概率是 GATEWAY 和新掩码不匹配。例如:
- 原配置:
IPADDR=192.168.1.100,NETMASK=255.255.255.0,GATEWAY=192.168.1.1✅ - 改成了:
NETMASK=255.255.0.0,但没改GATEWAY→ 网关192.168.1.1被划到192.168.0.0/16里,看似合理,但若物理网络实际是/24段,路由根本发不出去
务必确认:网关 IP 必须落在你设定的 IPADDR + NETMASK 计算出的网络范围内。用 ipcalc 192.168.1.100/24(需装 ipcalc)或手算验证最可靠。

















