临时修改子网掩码可用 ifconfig 命令,如 sudo ifconfig eth0 netmask 255.255.255.0,立即生效但重启失效;验证用 ifconfig eth0 查看 netmask 字段;永久修改需编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 并重启 network 服务。

临时改子网掩码用 ifconfig 命令就行
只要不重启,改完立刻生效,适合调试或应急。但别指望它能扛过 reboot。
-
ifconfig -a先确认接口名(比如eth0或ens33),别瞎猜 - 执行
sudo ifconfig eth0 netmask 255.255.255.0—— 注意顺序:接口名在前,netmask参数在后,不能颠倒 - 如果同时要设 IP,写成
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0,IP 和掩码必须一起给,否则旧 IP 会被清掉 - 验证:跑一遍
ifconfig eth0,看输出里netmask字段是不是你设的值
永久改必须编辑 /etc/sysconfig/network-scripts/ifcfg-*
CentOS 7/8 默认用这个路径下的文件存网卡配置,改错文件名或拼错字段名,systemctl restart network 会静默失败。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 打开对应文件,比如
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 - 确保有这三行(大小写敏感,等号前后**不能有空格**):
BOOTPROTO=staticIPADDR=192.168.1.100NETMASK=255.255.255.0 -
PREFIX=24是NETMASK的替代写法(推荐),两者二选一,别共存,否则行为未定义 - 改完必须
sudo systemctl restart network;用NetworkManager的系统得sudo systemctl restart NetworkManager,混用会冲突
用 nmcli 改更稳妥,尤其在桌面版或复杂网络环境
NetworkManager 是 CentOS 7+ 默认网络管理器,nmcli 比直接改配置文件容错性高,不会因格式错误导致整个连接失效。
- 查连接名:
nmcli connection show,别只看接口名,要看NAME列(常是 “System eth0” 这类) - 改掩码(带 CIDR 表示法):
sudo nmcli connection modify "System eth0" ipv4.addresses 192.168.1.100/24 - 关掉 DHCP:
sudo nmcli connection modify "System eth0" ipv4.method manual - 激活:
sudo nmcli connection up "System eth0" - 注意:
ipv4.addresses必须带/24这种前缀长度,不能只写 IP;netmask字段在nmcli里不直接受控
DHCP 服务器端改子网掩码要动 /etc/dhcp/dhcpd.conf
这是给客户端发掩码的地方,和本机配置无关。改错会导致所有 DHCP 获取地址的机器连不上网。
- 关键字段在
subnet块里:subnet 192.168.1.0 netmask 255.255.255.0 { ... }—— 这个netmask决定分配范围 - 客户端实际拿到的掩码由
option subnet-mask 255.255.255.0;控制,两处必须一致,否则路由混乱 - 改完必须
sudo systemctl restart dhcpd,且检查journalctl -u dhcpd看有没有 parse error - 别漏掉
option routers,掩码变了,网关也得匹配,否则客户端能获 IP 但不通外网
/24 缩到 /26 时,原来能通的机器可能突然失联,得挨个查路由表和 iptables 规则。

















