CentOS 7 安装后无法获取 IPv4,只显示 IPv6,SSH 无法连接(完整排查记录)
一、问题描述
安装完 CentOS 7 后,发现:
- VMware 使用 NAT 网络。
- Windows 可以正常联网。
- CentOS 无法获取 IPv4。
ip addr只有 IPv6 地址:
inet6 fe80::20c:29ff:fedb:1895/64MobaXterm 无法使用 SSH 连接。
二、排查过程
1、检查网卡状态
查看网卡:
ipaddr发现:
2: ens33: <BROADCAST,MULTICAST> state DOWN说明:
网卡根本没有启动。
2、检查网络配置文件
查看:
cat/etc/sysconfig/network-scripts/ifcfg-ens33发现:
ONBOOT=no修改为:
ONBOOT=yes保存后重启 NetworkManager:
systemctl restart NetworkManager再次查看:
ipaddr依然没有 IPv4。
3、手动启动网卡
执行:
iplinksetens33 up再次查看:
ipaddr此时:
ens33: state UP但是仍然没有 IPv4。
4、手动获取 DHCP 地址
执行:
dhclient ens33再次查看:
ipaddr终于出现:
inet 192.168.88.128/24说明:
- VMware NAT 正常
- DHCP 正常
- 网络本身没有问题
5、重启验证
重启 CentOS。
再次执行:
ipaddr结果:
ens33: state DOWN说明:
刚才的方法只是临时生效。
6、检查 NetworkManager
查看:
nmcli device status结果:
DEVICE TYPE STATE CONNECTION ens33 ethernet unmanaged --重点:
unmanaged说明:
NetworkManager 根本没有管理 ens33。
查看连接:
nmcli connection show结果:
NAME UUID TYPE DEVICE ens33 96680275-fcf9-4ac8-97a1-0d236f45b23c ethernet --可以看到:
虽然存在连接,
但是:
DEVICE --说明连接没有绑定到设备。
7、真正解决问题
执行:
nmcli devicesetens33 managedyes再次查看:
nmcli device status结果:
DEVICE TYPE STATE CONNECTION ens33 ethernet connected ens33终于恢复正常。
8、再次重启验证
重启 CentOS。
登录后执行:
nmcli device status结果:
ens33 ethernet connected ens33查看:
ipaddr得到:
inet 192.168.88.128/24说明:
已经真正修复。
9、测试外网
执行:
ping-c4www.baidu.com结果:
4 packets transmitted, 4 received, 0% packet loss网络恢复正常。
10、SSH 连接
MobaXterm 第一次连接时出现:
It seems to be the first time you connect to this server...这是 SSH 首次连接的主机指纹确认。
直接点击:
Accept即可。
11、给普通用户添加 sudo 权限
CentOS 安装完成后:
普通用户没有 sudo 权限。
切换 root:
su-执行:
usermod-aGwheel ydx查看:
idydx结果:
groups=1000(ydx),10(wheel)退出重新登录。
测试:
sudowhoami第一次输入:
ydx 用户自己的密码
输出:
root说明 sudo 配置成功。
以后再次执行:
sudowhoami几分钟内不会再次要求输入密码。
三、最终状态
查看:
nmcli device status结果:
DEVICE TYPE STATE CONNECTION ens33 ethernet connected ens33 virbr0 bridge connected virbr0 lo loopback unmanaged --查看:
ipaddr结果:
inet 192.168.88.128/24外网:
pingwww.baidu.com成功。
SSH:
MobaXterm 成功连接。
sudo:
配置成功。
四、问题真正原因
整个排查过程中,一开始怀疑:
- VMware NAT
- DHCP
- IPv6
- SSH
- 网卡配置
最终发现:
真正的问题只有一个:
NetworkManager 没有管理 ens33(unmanaged)。
因此:
- ONBOOT 不生效
- 开机网卡一直 DOWN
- DHCP 不会自动获取地址
真正解决问题的命令只有一句:
nmcli devicesetens33 managedyes执行后:
- NetworkManager 接管 ens33
- 开机自动启动网卡
- 自动获取 DHCP 地址
- SSH 恢复正常
五、经验总结
以后遇到 Linux 无法联网,可以按照下面顺序排查:
- 查看网卡
ipaddr- 查看 NetworkManager 状态
nmcli device status- 查看连接
nmcli connection show- 查看配置文件
cat/etc/sysconfig/network-scripts/ifcfg-ens33重点检查:
ONBOOT=yes BOOTPROTO=dhcp- 手动启动网卡
iplinksetens33 up- 手动获取 DHCP
dhclient ens33- 如果显示
unmanaged
执行:
nmcli devicesetens33 managedyes最后重启验证即可。
六、踩坑总结
这次问题的根源其实是:
安装 CentOS 之前,我曾禁用了 VMware 的 VMnet1、VMnet8,导致安装时网络环境异常,最终使ens33没有被 NetworkManager 正常管理。
因此,建议安装 CentOS 前先确认:
- VMware NAT 正常
- DHCP 服务正常
- VMnet8 已启用
这样可以避免后续大量排查工作。