V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
exitc
V2EX  ›  问与答

主机 A 如何访问主机 B 中的 VMware 虚拟机 C?

  •  
  •   exitc · Jun 19, 2022 · 2688 views
    This topic created in 1407 days ago, the information mentioned may be changed or developed.

    实验环境:

    主机 A 、虚拟机 C linux 系统
    主机 B Windows 10

    主机 A ( 192.168.0.2 )与主机 B ( 192.168.0.3 )同属一个网段 192.168.0.0/24
    主机 B ( 192.168.126.1 )是虚拟机 C ( 192.168.126.3 )的宿主机,之间用 vmnet 8 ( 192.168.126.2 ) 连接,网段 192.168.126.0/24

    名称 ip ip2
    主机 A 192.168.0.2
    主机 B 192.168.0.3 192.168.126.1
    虚拟机 C 192.168.126.3

    设置:

    主机 B IPEnableRouter=1 ,并开启 Routing and Remote Access 服务。
    主机 A 新增路由表 route add -net 192.168.126.0/24 192.168.0.3 。

    互通情况:

    主机 A 能 ping 通主机 B ( 192.168.126.1 ) 虚拟机 C 能 ping 主机 A 和主机 B

    如何让主机 A ping 通虚拟机 C ?

    Supplement 1  ·  Jun 19, 2022
    实验结果:

    如果虚拟机同时拥有 192.168.0.0/24 和 192.168.126.0/24 两个网段的 ip ,则主机 A ( 192.168.0.0/24 )能 ping 通任意 ip,如果只拥有 192.168.126.0/24 则怎么都无法 ping 通,添加一个 192.168.0.0/24 是最佳解决方案吧。
    16 replies    2023-11-18 17:47:57 +08:00
    singerll
        1
    singerll  
       Jun 19, 2022 via Android
    直接桥接主机网络,也指到 192.168.0.0 段最省事
    exitc
        2
    exitc  
    OP
       Jun 19, 2022
    @singerll 有其他思路吗?我想让 192.168.126.0/24 与 192.168.0.0/24 彼此的设备互通,现在的情况有点像一级路由无法访问二级路由,二级路由能访问一级路由。
    singerll
        3
    singerll  
       Jun 19, 2022 via Android
    改路由表也可以
    totoro625
        4
    totoro625  
       Jun 19, 2022
    参见: https://v2ex.com/t/596409
    https://dev-tang.com/post/2018/10/router-networks-interoperate.html

    我也有这样的问题,但是没有路由器管理权,干脆都跑了 zerotier/tailscale 组网
    txx
        5
    txx  
       Jun 19, 2022
    我直接在 ABC 都配了 Tinc 😂
    cjpjxjx
        6
    cjpjxjx  
       Jun 19, 2022
    可能需要主机 B 上再添加一条静态路由 192.168.126.0/24 指向 192.168.126.1

    虚拟机再添加一块虚拟网卡,使用桥接模式是最简单的方法
    exitc
        7
    exitc  
    OP
       Jun 19, 2022
    @cjpjxjx
    (主机 B 上再添加一条静态路由 192.168.126.0/24 指向 192.168.126.1 )
    这条路由表 主机 B 已经自动添加好了,traceroute 命令显示第一跳正常到 192.168.0.3 ,第二跳 3 个 *

    (虚拟机再添加一块虚拟网卡,使用桥接模式是最简单的方法)
    这样确实可以
    exitc
        8
    exitc  
    OP
       Jun 19, 2022
    @singerll 不知道路由表要怎么添加哦

    现在:
    主机 A 192.168.126.0 192.168.0.3 255.255.255.0 UG 0 0 0 eth0
    主机 B 192.168.126.0 255.255.255.0 在链路上 192.168.126.1 291
    paopjian
        9
    paopjian  
       Jun 19, 2022
    这个是路由实战吗,感觉装个 zerotier 最快,或者 B 给 C 端口映射,A 就能连接 C 了
    exitc
        10
    exitc  
    OP
       Jun 19, 2022
    @paopjian 平时有这需求,VMware Nat 适用外部网络一直有变化,不用重新设置 ip ,所以周末特意捣鼓了一下。
    weidaizi
        11
    weidaizi  
       Jun 19, 2022
    直接 NAT ,把要访问的虚拟机端口映射出来
    kxjhlele
        12
    kxjhlele  
       Jun 19, 2022 via Android
    桥接
    nat
    静态路由
    基本都是用的这三种方法
    ldyisbest
        13
    ldyisbest  
       Jun 20, 2022
    C 的端口映射到 B 上,A 访问 B
    Cu635
        14
    Cu635  
       Jun 22, 2022
    “添加一个 192.168.0.0/24”
    不就是把虚拟机添加一块桥接的网卡?
    jdxia
        15
    jdxia  
       Nov 18, 2023
    主机 A 增加一个路由表
    sudo route -n add -net 192.168.126.0/24 -netmask 255.255.255.0 192.168.0.3
    把去 192.168.126.0 网段的, 全部扔给 192.168.0.3 机器处理.
    我目前遇到和你一样的问题, 我的虚拟机 C 能收到我主机 A 的 syn 包, 然后虚拟机 C 回 syn+ack, 但是这个回的包在 vmnet 网卡上抓包是能发现的, 在 主机 B 上抓包是没有的, 请问你后续是怎么解决的
    jdxia
        16
    jdxia  
       Nov 18, 2023
    @jdxia 我发现虚拟机 C 回 syn+ack,之后被 主机 A 的 ip 给 rst 掉了, 是因为 vmnet 把 src 的 mac 地址给改了, 目前没理解 vmnet 为啥要改这个
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3158 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 00:34 · PVG 08:34 · LAX 17:34 · JFK 20:34
    ♥ Do have faith in what you're doing.