虚拟机ping不通百度的解决方法

既然你的 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)。

操作:

  1. 在欧拉虚拟机执行命令,查看当前生效的 DNS:

    复制代码
    cat /etc/resolv.conf
  2. 对比 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)。
解决:
  1. 先关闭可能干扰的 dhclient 进程(静态 IP 无需 dhclient):

    复制代码
    # 查找并杀死 dhclient 进程
    ps aux | grep dhclient
    kill -9 进程号  # 比如 kill -9 1234
  2. 强制让 NetworkManager 重新加载 ifcfg-ens33 并生成正确的 resolv.conf:

    复制代码
    # 先删除旧的 resolv.conf(避免被缓存覆盖)
    rm -f /etc/resolv.conf
    # 重启 NetworkManager,让其重新生成 resolv.conf
    systemctl restart NetworkManager
    # 再次查看 DNS 是否生效
    cat /etc/resolv.conf
  3. 确认 resolv.conf 中已出现 nameserver 8.8.8.8nameserver 114.114.114.114 后,测试 ping 百度:

    复制代码
    ping www.baidu.com -c 3

第二步:若 DNS 已生效仍不通,检查欧拉的「路由表」(默认路由是否缺失)

虽然网关配置了 192.168.199.2,但欧拉可能没生成「默认路由」(即没告诉系统 "访问外网的数据包要走网关 192.168.199.2"),而 CentOS7 自动生成了路由。

操作:

  1. 在欧拉虚拟机查看路由表:

    复制代码
    ip route  # 或 route -n
  2. 正常结果应包含「默认路由」(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
  3. 若没有 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
  4. 若临时路由生效(能通百度),需永久添加默认路由 (避免重启后丢失):在 /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 请求),导致看似配置正常却不通。

操作:

  1. 先关闭防火墙测试(临时关闭,排除拦截):

    复制代码
    # 临时关闭 firewalld
    systemctl stop firewalld
    # 测试 ping 百度和 DNS 连通性
    ping www.baidu.com -c 3
    ping 8.8.8.8 -c 3  # 测试 DNS 服务器是否能通
    • 若关闭后能通 → 说明防火墙拦截了请求,后续可按需开放端口(比如开放 DNS 53 端口、ICMP 协议),无需永久关闭防火墙。
  2. 再检查 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,导致欧拉的网络请求被干扰。

操作:

  1. 在 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% 能解决:

  1. 验证 /etc/resolv.conf 是否有正确的 DNS → 无则重启 NetworkManager + 杀 dhclient;
  2. 验证路由表是否有默认路由 → 无则手动添加;
  3. 关闭防火墙和 SELinux 测试 → 通则按需开放规则;
  4. 排除 IP 冲突 → 改 IP 测试。
相关推荐
helloworld_工程师11 小时前
Dubbo应用开发之FST序列化的使用
后端·dubbo
百度智能云技术站15 小时前
百度亮相 SREcon25:搜索稳定背后的秘密,微服务雪崩故障防范
微服务·架构·dubbo
问道飞鱼3 天前
【微服务组件】Springboot结合Dubbo实现RPC调用
spring boot·微服务·rpc·dubbo
helloworld工程师7 天前
Dubbo应用开发之RPC直连开发
网络协议·rpc·dubbo
韩宁羽8 天前
dubbo3深度剖析透过源码认识你 dubbo源码分析
dubbo
编啊编程啊程10 天前
【011】宠物共享平台
spring boot·log4j·maven·dubbo·宠物
草莓熊Lotso11 天前
《C++ Web 自动化测试实战:常用函数全解析与场景化应用指南》
前端·c++·python·dubbo
thginWalker11 天前
Dubbo源码解读与实战-服务通信
dubbo