虚拟机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 测试。
相关推荐
顾北121 天前
MCP服务端开发:图片搜索助力旅游计划
java·spring boot·dubbo
珹洺3 天前
Bootstrap-HTML(二)深入探索容器,网格系统和排版
前端·css·bootstrap·html·dubbo
量子炒饭大师5 天前
【C++入门】—— 【什么时候需要用到深拷贝】C++的类中何时需要用到深拷贝?保姆级别带你罗列所有可能!
java·c++·dubbo·深拷贝
橘颂TA6 天前
【测试】自动化测试函数介绍——web 测试
python·功能测试·selenium·测试工具·dubbo
wc887 天前
dubbo本地直连一个程序既当提供者又当消费者问题
dubbo
小信丶9 天前
@Activate 注解详解:应用场景与实战示例
java·spring boot·后端·spring·spring cloud·微服务·dubbo
不像程序员的程序媛9 天前
nacos作为dubbo服务注册中心
dubbo
BraveHeart!11 天前
@DubboService 与 @DubboReference 初始化过程
dubbo
信创天地13 天前
从 “替代” 到 “超越”:信创系统架构师如何筑牢自主可控技术底座
运维·安全·系统架构·开源·dubbo·risc-v
wniuniu_13 天前
运维运维运维
java·运维·dubbo