V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuyijia
V2EX  ›  VMware

vmware 虚拟机无法通过 VMnet8 的 IP 地址使用网络代理

  •  
  •   liuyijia · 15 天前 · 691 次点击

    我的问题: 在 nat 网络连接模式下,虚拟机可以通过物理网卡 ip 以及虚拟网卡 VMnet1 的 ip 使用主机 clash 的网络代理,但无法使用虚拟网卡 VMnet8 的 ip 使用代理。所以好奇 vmnet8 在虚拟机网络连接中承担的角色,以及这个问题是否出在 clash ,还是 VMware 的网络连接机制。

    我做出的尝试: 上述虚拟网卡的 ip 均能 ping 通,通过 wireshark 对网卡 vmnet8 抓包,发现大量 TCPSYN 包,但没有收 SYN-ACK 响应。网络搜索代理的教程也发现有同样的问题,但并没有发现解释,大多选择使用其他网卡进行代理连接。

    8 条回复    2025-03-14 21:44:32 +08:00
    body007
        1
    body007  
       15 天前   ❤️ 1
    vmnet8 你就当作是个路由器,你的虚拟机通过这个路由器上网。你能 ping 通虚拟机 ip 是因为本机有 vmnet8 网卡的 ip ,和你虚拟机 ip 同属局域网。你可以看看 vmnet8 的 NAT 设置的网关 IP ( 192.168.1.2 ),本机 ip ( 192.168.1.1 ),然后虚拟机的 ip ( 192.168.1.x ),并且虚拟机的网关是( 192.168.1.2 )

    我是这样理解的。
    ysc3839
        2
    ysc3839  
       14 天前   ❤️ 1
    Windows 防火墙问题。VMware 把虚拟网卡的类型改了,Windows 不会去识别属于什么网络,然后默认就使用公用网络的防火墙配置。需要把类型改回去,然后 Windows 会识别成无法识别的网络,再用 PowerShell 直接改该接口的网络类型,改成专用网络。
    ysc3839
        3
    ysc3839  
       14 天前   ❤️ 1
    参考这个说明操作,但是要把 *NdisDeviceType 删掉,之后 PowerShell 执行下面的命令设置网络类型

    https://knowledge.broadcom.com/external/article?legacyId=1004813
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

    Set-NetConnectionProfile -InterfaceIndex (Get-NetConnectionProfile | Where {$_.InterfaceAlias.EndsWith('VMnet8')}).InterfaceIndex -NetWorkCategory Private
    iX8NEGGn
        4
    iX8NEGGn  
       14 天前   ❤️ 1
    桥接模式:
    物理网卡 <---> 虚拟网桥 <---> 虚拟交换机 <---> 虚拟机 1 、虚拟机 2 、虚拟机 3

    Host Only 模式, 情况 1 (物理网卡和 VMnet1 虚拟网卡关闭共享):
    物理网卡
    VMnet1 虚拟网卡 <---> 虚拟交换机 <---> 虚拟机 1 、虚拟机 2 、虚拟机 3

    Host Only 模式,情况 2 (物理网卡和 VMnet1 虚拟网卡开启共享):
    物理网卡 <---> VMnet1 虚拟网卡 <---> 虚拟交换机 <---> 虚拟机 1 、虚拟机 2 、虚拟机 3

    NAT 模式:
    物理网卡 <---> 虚拟 NAT <---> 虚拟交换机 <---> 虚拟机 1 、虚拟机 2 、虚拟机 3 、VMnet8 虚拟网卡

    你的误区在于认为虚拟机是靠 VMnet8 联网的,但实际上它是靠的 “虚拟 NAT” 联网,禁用 VMnet8 后,虚拟机依然能联网。

    VMnet8 只是用来方便和虚拟机 1 、虚拟机 2 、虚拟机 3 等虚拟机通信,把 VMnet8 看成成一台 “特殊虚拟机” 就好理解了。
    iX8NEGGn
        5
    iX8NEGGn  
       14 天前
    你开头的 “nat 网络连接模式下,虚拟机可以通过物理网卡 ip 以及虚拟网卡 VMnet1 的 ip 使用主机 clash 的网络代理 ” 描述,感觉就有点问题,NAT 模式下,理应虚拟机是无法直接和物理网卡、VMnet1 互通的,不知道你是怎么做到的。
    iX8NEGGn
        6
    iX8NEGGn  
       14 天前
    NAT 模式,应该这样子画,可能更好理解一点:

    物理网卡 <---> 虚拟 NAT <---> 虚拟交换机 <---> 虚拟机 1 、虚拟机 2 、虚拟机 3
    VMnet8 虚拟网卡 <---------------------^
    liuyijia
        7
    liuyijia  
    OP
       12 天前
    @ysc3839 非常感谢,我感觉就是你说的这种情况。这得对 win 防火墙有深入了解,我对这些了解不深担心出错就不去修改了,希望对其他有疑问的 v 友能有所帮助并能在这里留下后续反馈。再次感谢 ysc3839 ,也好奇您是如何学习这方面知识的,以及有何学习建议。
    ysc3839
        8
    ysc3839  
       11 天前   ❤️ 1
    @liuyijia VMware 这个问题是搜索搜到的解决方案。
    最开始搜索找到的方案说是禁用防火墙可以解决,就能大致确定问题原因了。
    继续搜索有提到是虚拟网卡比较特殊,我才发现虚拟网卡不能设置为专用网络。
    之后找到了前面的那个链接,但是教程是让你设置成 endpoint device ,而实际去看注册表,已经是 endpoint device 了。
    所以我就尝试把这个改动还原回去,发现系统会识别成无法识别的网络,于是再去搜索怎么修改无法识别网络的类型,就找到了用 PowerShell 改的方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5192 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:05 · PVG 17:05 · LAX 02:05 · JFK 05:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.