虚拟机装完 CentOS,ip addr 一看只有 lo,网卡没起来。多半是安装时没勾选打开网络,或者 ifcfg 文件里 ONBOOT 还是 no。先把这件事确认掉,再谈 CentOS 配置 IP 地址的细节。
CentOS 7:改 ifcfg 文件最直接
配置文件在 /etc/sysconfig/network-scripts/ 下,名字一般是 ifcfg-ens33 或 ifcfg-eth0,用 ip addr 能看到实际网卡名。需要改的是一组键值,一行写一个:BOOTPROTO=static、ONBOOT=yes、IPADDR=192.168.1.100、PREFIX=24、GATEWAY=192.168.1.1、DNS1=223.5.5.5。PREFIX 和 NETMASK=255.255.255.0 写一个即可。
改完执行 systemctl restart network,再用 ip addr 和 ping 网关验证。CentOS 7 已经在 2024 年 6 月底停止维护,新装的机器建议直接上 Rocky 或 AlmaLinux。
CentOS 8 及以上:用 nmcli
NetworkManager 成了唯一的管理者,network-scripts 默认不再安装,改文件那套在 8 和 9 上不一定生效。先用 nmcli connection show 找到连接名,然后一条命令配完:
nmcli con mod ens160 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 223.5.5.5 && nmcli con up ens160嫌命令长可以用 nmtui,这是个字符界面的图形工具,方向键选编辑连接,填完保存退出,再激活一次就行。改完用 nmcli con show ens160 看 ipv4.addresses 有没有生效。
改完连不上,按这个顺序查
- 网卡名对不对,ip addr 里没有 ens33 就别改 ens33。
- 网关和虚拟机的网络模式是否匹配,NAT 模式下网关通常是 x.x.x.2,桥接才是路由器的地址。
- DNS 只影响域名解析,ping IP 通、ping 域名不通,就是 DNS1 没配对。
- 改完必须重启网络或重新激活连接,只保存文件不生效。
临时改地址用 ip addr add 192.168.1.101/24 dev ens33,重启就失效,适合测试。要长期生效还是得落到配置文件或 nmcli 里,这两条路选一条,别混着改。