必须先确认网卡名和当前网络状态:用ip addr查看UP状态接口(如ens33),route -n查实际网关(VMware NAT下常为192.168.157.2),cat /etc/resolv.conf检查DNS来源,再编辑/etc/sysconfig/network-scripts/ifcfg-ens33,将BOOTPROTO改为static并添加IPADDR、NETMASK、GATEWAY,确保ONBOOT=yes,最后systemctl restart network生效。

确认网卡名和当前网络状态
别急着改配置,先搞清你面对的是哪块网卡、它现在连没连上、IP怎么来的。CentOS 7 默认不用 ifconfig,得用 ip addr 或 nmcli device status:
-
ip addr看输出里带UP状态的接口,比如ens33、eth0,这就是你要配的网卡名 -
route -n查当前默认网关,别直接抄别人教程里的192.168.1.1,实际可能是192.168.157.2(尤其在 VMware NAT 模式下) -
cat /etc/resolv.conf看 DNS 是不是被 DHCP 写死的,后续要不要覆盖它
修改 ifcfg-接口名 文件
路径固定:/etc/sysconfig/network-scripts/ifcfg-<interface_name></interface_name>,比如 ifcfg-ens33。关键改三项,其余参数尽量保留原样:
- 把
BOOTPROTO=dhcp改成BOOTPROTO=static - 加三行:
IPADDR=192.168.1.100、NETMASK=255.255.255.0、GATEWAY=192.168.1.1(注意:不是所有环境都支持PREFIX=24,老老实实用NETMASK更稳) -
ONBOOT=yes必须有,否则重启后网卡不起来 - DNS 可以写在同一个文件里(
DNS1=8.8.8.8),也可以只管 IP 和网关,DNS 单独写进/etc/resolv.conf—— 但后者可能被 NetworkManager 覆盖,优先写配置文件里
重启 network 服务还是用 nmcli?
CentOS 7 默认启用了 NetworkManager,但它和传统 network 服务共存,混用容易冲突。选一个,别两边都动:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 如果用配置文件改法,就执行
systemctl restart network,别用nmcli con reload或nmcli con down/up,否则可能回滚你的静态设置 - 如果坚持用命令行,
nmcli更可靠:先删旧连接nmcli con delete "System ens33",再建新连接nmcli con add type ethernet ifname ens33 ip4 192.168.1.100/24 gw4 192.168.1.1,最后nmcli con mod "con-name" ipv4.dns "8.8.8.8"和nmcli con up "con-name" - 改完立刻验证:
ip addr show ens33看 IP 是否生效,ip route看 default via 是否指向你设的网关
常见连不上网的坑
配完发现 ping 不通外网,八成掉进这几个坑里:
-
IPADDR和 DHCP 地址池重叠了(比如 VMnet8 的 DHCP 范围是192.168.157.128–192.168.157.254,你却设成192.168.157.200)—— 查宿主机 VMware 的 DHCP 设置,避开分配范围 -
GATEWAY写错,或者根本没写;route -n输出里没有0.0.0.0开头那行,说明网关没生效 - 防火墙没关或没放行 ICMP:
systemctl stop firewalld临时测试,排除干扰 -
NetworkManager和network服务同时 running,导致配置被覆盖——查systemctl status NetworkManager network,停掉一个
最麻烦的是 NetworkManager 自动接管后把 ifcfg- 文件当“只读模板”,改完也不生效。这种情况下,要么彻底禁用 NetworkManager(systemctl disable NetworkManager),要么全程只用 nmcli 管理,别混搭。










