既然你的 CentOS7 虚拟机(192.168.199.133)用相同的 NAT 模式、网关(192.168.199.2)能正常通百度,说明 VMware 虚拟网络(VMnet8)本身没问题,问题只在欧拉系统自身的网络配置细节(比如 DNS 未真正生效、路由缺失、防火墙 / SELinux 拦截等)。下面按「从简到繁」的顺序排查,确保每一步都验证到位:
第一步:先确认欧拉的「DNS 配置是否真的同步到系统」(核心!)
CentOS7 能通,说明网关(192.168.199.2)是通的,但欧拉可能因 DNS 配置未加载到 /etc/resolv.conf,导致无法解析域名(即使网关通,没 DNS 也找不到百度的 IP)。
操作:
-
在欧拉虚拟机执行命令,查看当前生效的 DNS:
cat /etc/resolv.conf -
对比 CentOS7 的 DNS 配置(可在 CentOS7 上也执行
cat /etc/resolv.conf),正常情况下欧拉的结果应和 CentOS7 一致,比如:# Generated by NetworkManager nameserver 8.8.8.8 nameserver 114.114.114.114
若欧拉的 resolv.conf 异常(比如无 nameserver 或只有 127.0.0.1):
原因:欧拉的 NetworkManager 未正确加载 ifcfg-ens33 中的 DNS 配置,可能被「dhclient 进程」干扰(即使设了静态 IP,dhclient 仍可能运行并改写 DNS)。
解决:
-
先关闭可能干扰的 dhclient 进程(静态 IP 无需 dhclient):
# 查找并杀死 dhclient 进程 ps aux | grep dhclient kill -9 进程号 # 比如 kill -9 1234 -
强制让 NetworkManager 重新加载 ifcfg-ens33 并生成正确的 resolv.conf:
# 先删除旧的 resolv.conf(避免被缓存覆盖) rm -f /etc/resolv.conf # 重启 NetworkManager,让其重新生成 resolv.conf systemctl restart NetworkManager # 再次查看 DNS 是否生效 cat /etc/resolv.conf -
确认 resolv.conf 中已出现
nameserver 8.8.8.8和nameserver 114.114.114.114后,测试 ping 百度:ping www.baidu.com -c 3
第二步:若 DNS 已生效仍不通,检查欧拉的「路由表」(默认路由是否缺失)
虽然网关配置了 192.168.199.2,但欧拉可能没生成「默认路由」(即没告诉系统 "访问外网的数据包要走网关 192.168.199.2"),而 CentOS7 自动生成了路由。
操作:
-
在欧拉虚拟机查看路由表:
ip route # 或 route -n -
正常结果应包含「默认路由」(
default via 网关 dev 网卡),比如:default via 192.168.199.2 dev ens33 proto static metric 100 192.168.199.0/24 dev ens33 proto kernel scope link src 192.168.199.135 metric 100 -
若没有
default via 192.168.199.2这一行 → 默认路由缺失 ,需手动添加:bash# 临时添加默认路由(重启后失效,先测试) ip route add default via 192.168.199.2 dev ens33 # 再次查看路由表,确认已添加 ip route # 测试 ping 百度 ping www.baidu.com -c 3 -
若临时路由生效(能通百度),需永久添加默认路由 (避免重启后丢失):在
/etc/sysconfig/network-scripts/ifcfg-ens33中添加一行(确保路由永久生效):vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 添加以下内容(与其他参数同级) GATEWAYDEV=ens33 # 明确指定网关对应的网卡保存后重启网络:
systemctl restart NetworkManager
第三步:若路由也正常,检查欧拉的「防火墙 / SELinux 是否拦截请求」
欧拉的默认防火墙(firewalld)或 SELinux 可能比 CentOS7 更严格,拦截了 DNS(UDP 53 端口)或 ICMP(ping 请求),导致看似配置正常却不通。
操作:
-
先关闭防火墙测试(临时关闭,排除拦截):
# 临时关闭 firewalld systemctl stop firewalld # 测试 ping 百度和 DNS 连通性 ping www.baidu.com -c 3 ping 8.8.8.8 -c 3 # 测试 DNS 服务器是否能通- 若关闭后能通 → 说明防火墙拦截了请求,后续可按需开放端口(比如开放 DNS 53 端口、ICMP 协议),无需永久关闭防火墙。
-
再检查 SELinux 状态(SELinux 可能拦截网络请求):
# 查看 SELinux 状态(Enforcing 为开启,Permissive 为宽容模式,Disabled 为关闭) getenforce # 临时关闭 SELinux(无需重启) setenforce 0 # 测试 ping 百度 ping www.baidu.com -c 3-
若关闭后能通 → 说明 SELinux 拦截,可永久关闭(适合测试环境):
vi /etc/selinux/config # 把 SELINUX=enforcing 改成 SELINUX=disabled # 保存后重启系统生效(测试环境推荐,生产环境需配置 SELinux 规则) reboot
-
第四步:最后确认「IP 地址是否冲突」(低概率但需排除)
虽然两台虚拟机 IP 不同(192.168.199.133 和 192.168.199.135),但需确认是否有其他设备(比如宿主机、其他虚拟机)占用了 192.168.199.135,导致欧拉的网络请求被干扰。
操作:
-
在 CentOS7 虚拟机上 ping 欧拉的 IP,确认连通性:
ping 192.168.199.135 -c 3-
若能通 → 无 IP 冲突;
-
若不通 → 可能有 IP 冲突,可临时修改欧拉的 IP 为 192.168.199.136(确保不与其他设备重复),再测试:
vi /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.199.136 # 修改 IP systemctl restart NetworkManager ping www.baidu.com -c 3
-
总结:按顺序操作,必能解决!
因为 CentOS7 能通,VMware 层面没问题,重点在欧拉的「DNS 加载」「路由」「防火墙 / SELinux」这三点。按以下顺序操作,99% 能解决:
- 验证
/etc/resolv.conf是否有正确的 DNS → 无则重启 NetworkManager + 杀 dhclient; - 验证路由表是否有默认路由 → 无则手动添加;
- 关闭防火墙和 SELinux 测试 → 通则按需开放规则;
- 排除 IP 冲突 → 改 IP 测试。