V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
exitc
V2EX  ›  问与答

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

  •  
  •   exitc · 2022-06-19 14:06:28 +08:00 · 1906 次点击
    这是一个创建于 914 天前的主题,其中的信息可能已经有所发展或是发生改变。

    实验环境:

    主机 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 ?

    第 1 条附言  ·  2022-06-19 18:27:13 +08:00
    实验结果:

    如果虚拟机同时拥有 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 条回复    2023-11-18 17:47:57 +08:00
    singerll
        1
    singerll  
       2022-06-19 14:07:57 +08:00 via Android
    直接桥接主机网络,也指到 192.168.0.0 段最省事
    exitc
        2
    exitc  
    OP
       2022-06-19 14:14:35 +08:00
    @singerll 有其他思路吗?我想让 192.168.126.0/24 与 192.168.0.0/24 彼此的设备互通,现在的情况有点像一级路由无法访问二级路由,二级路由能访问一级路由。
    singerll
        3
    singerll  
       2022-06-19 14:44:05 +08:00 via Android
    改路由表也可以
    totoro625
        4
    totoro625  
       2022-06-19 14:57:45 +08:00
    参见: https://v2ex.com/t/596409
    https://dev-tang.com/post/2018/10/router-networks-interoperate.html

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

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

    (虚拟机再添加一块虚拟网卡,使用桥接模式是最简单的方法)
    这样确实可以
    exitc
        8
    exitc  
    OP
       2022-06-19 18:32:36 +08:00
    @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  
       2022-06-19 19:46:49 +08:00
    这个是路由实战吗,感觉装个 zerotier 最快,或者 B 给 C 端口映射,A 就能连接 C 了
    exitc
        10
    exitc  
    OP
       2022-06-19 20:51:13 +08:00
    @paopjian 平时有这需求,VMware Nat 适用外部网络一直有变化,不用重新设置 ip ,所以周末特意捣鼓了一下。
    weidaizi
        11
    weidaizi  
       2022-06-19 22:37:45 +08:00
    直接 NAT ,把要访问的虚拟机端口映射出来
    kxjhlele
        12
    kxjhlele  
       2022-06-19 22:56:58 +08:00 via Android
    桥接
    nat
    静态路由
    基本都是用的这三种方法
    ldyisbest
        13
    ldyisbest  
       2022-06-20 15:24:03 +08:00
    C 的端口映射到 B 上,A 访问 B
    Cu635
        14
    Cu635  
       2022-06-22 11:42:29 +08:00
    “添加一个 192.168.0.0/24”
    不就是把虚拟机添加一块桥接的网卡?
    jdxia
        15
    jdxia  
       2023-11-18 17:27:10 +08:00
    主机 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  
       2023-11-18 17:47:57 +08:00
    @jdxia 我发现虚拟机 C 回 syn+ack,之后被 主机 A 的 ip 给 rst 掉了, 是因为 vmnet 把 src 的 mac 地址给改了, 目前没理解 vmnet 为啥要改这个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1072 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:33 · PVG 03:33 · LAX 11:33 · JFK 14:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.