vmware 虚拟机桥接无法上网

现象

  • alpine		08:00:27:49:D6:EC		192.168.1.90
    mint		00:50:56:2D:AE:E4		192.168.1.88
  • 宿主机和虚拟机桥接vnet0-物理网卡,完全一样的配置下:
    • 家里的redmi路由器下,上网正常,无法ping宿主机
    • 单位的tplink路由器下,宿主机可连虚拟机,linux虚拟机无法上网,ping不通网关
    • 单位的tplink路由器下,宿主机可连虚拟机,上网正常,无法ping宿主机
  • 虚拟机arp情况

    local:~$ ip addr show eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:49:d6:ec brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.90/24 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 2408:8207:60c5:77a4:a00:27ff:fe49:d6ec/64 scope global dynamic flags 100
           valid_lft 86103sec preferred_lft 14103sec
        inet6 fe80::a00:27ff:fe49:d6ec/64 scope link
           valid_lft forever preferred_lft forever
    local:~$ ip route
    default via 192.168.1.1 dev eth0  metric 1 onlink
    172.17.0.0/16 dev docker0 scope link  src 172.17.0.1
    172.18.0.0/16 dev br-0b82217373d7 scope link  src 172.18.0.1
    192.168.1.0/24 dev eth0 scope link  src 192.168.1.90
    local:~$ arp -a
    ? (192.168.1.120) at c8:15:4e:49:01:42 [ether]  on eth0
    ? (192.168.1.1) at 9c:47:82:11:96:24 [ether]  on eth0
    local:~$ ping 192.168.1.120 -c 3
    PING 192.168.1.120 (192.168.1.120): 56 data bytes
    ^C
    --- 192.168.1.120 ping statistics ---
    3 packets transmitted, 0 packets received, 100% packet loss
    local:~$ ping 192.168.1.1 -c 3
    PING 192.168.1.1 (192.168.1.1): 56 data bytes
    ^C
    --- 192.168.1.1 ping statistics ---
    3 packets transmitted, 0 packets received, 100% packet loss
    local:~$ ping 8.8.8.8 -c 3
    PING 8.8.8.8 (8.8.8.8): 56 data bytes
    ^C
    --- 8.8.8.8 ping statistics ---
    3 packets transmitted, 0 packets received, 100% packet loss
    local:~$ ping baidu.com -c 3
    ^C
    local:~$ ping 192.168.1.90
    PING 192.168.1.90 (192.168.1.90): 56 data bytes
    64 bytes from 192.168.1.90: seq=0 ttl=42 time=0.105 ms
    64 bytes from 192.168.1.90: seq=1 ttl=42 time=0.063 ms
    ^C
    --- 192.168.1.90 ping statistics ---
    2 packets transmitted, 2 packets received, 0% packet loss
    round-trip min/avg/max = 0.063/0.084/0.105 ms
    

问题修复

  • 所有你能想到的 虚拟机内部设置,路由器设置,宿主机设置我都试过了
  • 虚拟机桥接上网问题:备用方案未实施,删除vm虚拟网络,恢复默认,删除虚拟机的网卡,再重新添加,桥接即可
  • 虚拟机桥接上网问题:大概率是路由器没有释放,导致linux的mac地址失效,win的mac地址是有效的
    • 虚拟机桥接设新mac地址,启动后路由器自动分配新IP,上网一切正常,但虚拟机无法ping宿主机
    • 虚拟机桥接用旧mac地址,重启路由器,上网一切正常,但虚拟机无法ping宿主机【至此虚拟机桥接上网问题解决,遗留无法ping宿主机

      路由器去掉ip和mac映射表里的虚拟机mac地址,
      随机给了102ip,宿主机是120
      虚拟机可以上网了,宿主机可以连上虚拟机
      ,但是虚拟机无法ping宿主机,
      路由器显示 宿主机:
      C8-15-4E-49-01-42	192.168.1.120
      C8-15-4E-49-01-42	192.168.1.104
      C8-15-4E-49-01-42	192.168.1.102
      
      在这个路由器里所有虚拟机分配过的ip,都被宿主机拿了,
      这可能就是之前虚拟机桥接无法上网的原因
  • 虚拟机ping宿主机:windows防火墙-高级设置-入站规则-虚拟机监控(回显请求-ICMPv4-In)。把这项给启用了就可以了【虚拟机可以ping通宿主机

    PING 192.168.1.120 (192.168.1.120): 56 data bytes
    64 bytes from 192.168.1.120: seq=0 ttl=42 time=0.476 ms
    64 bytes from 192.168.1.120: seq=1 ttl=42 time=0.558 ms
    64 bytes from 192.168.1.120: seq=2 ttl=42 time=0.512 ms
    

win10防火墙虚拟机规则

  • 虚拟机监控(DCOM-In)
    • 影响远程管理:VMware用另一台电脑 / 工具通过网络(TCP 902/443)远程连接宿主机 VMware Server/Workstation,(依赖 DCOM/RPC 网络通道)
    • 本地管理不受影响:本地直接启动 vmx,完全没问题(默认走本地命名管道 / 共享内存,不走 TCP 135/DCOM 网络通道)
  • 虚拟机监控(NB-Session-In):NetBIOS 会话服务,用于Windows 文件 / 打印机共享(SMB)、局域网设备发现,虚拟机访问宿主机共享文件夹、宿主机访问虚拟机共享
  • 虚拟机监控(RPC):用于系统服务通信、VMware 与宿主机系统交互、虚拟机资源分配、WMI 查询、虚拟网络管理
  • 虚拟机监控(回显请求- ICMPv4-In):允许ICMP 回显请求(ping)、网络错误、路径探测入站,用于虚拟机 ping 宿主机、宿主机 ping 虚拟机、网络连通性诊断

路由器ARP机制

家用路由器(TP-Link/华为/小米等)默认启用 “防 ARP 欺骗” 功能
路由器维护 IP → MAC 绑定表,对已学习的 IP 严格校验 MAC
当检测到 同一 IP 对应不同 MAC 时:

❌ 不回复 ARP Request(静默丢弃)
❌ 不转发 ICMP/数据包
⚠️ 无日志、无告警 → 排查困难

作者:用户92178812460
链接:https://juejin.cn/post/7600670417858215970
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。