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

如何让局域网里其他机器能够 ping 通 VM 的 only-host 模式

  •  
  •   dbe · 2021-03-01 09:16:06 +08:00 · 2319 次点击
    这是一个创建于 1124 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于对 vm 里面的虚拟机有固定 ip 的需要,所以搞了 only-host 的模式。现在想要宿主机局域网环境下的其他机器能够 ping 通 vm 的 only-host 下的虚拟机,请问这个可不可以实现,如果可以要如何实现?
    35 条回复    2021-03-02 04:29:21 +08:00
    zengxs
        1
    zengxs  
       2021-03-01 09:27:42 +08:00
    只有网卡桥接模式能让局域网其他机器 ping 通虚拟机,其他网络模式可以考虑 VPN 组网用一个虚拟网络来实现
    dorothyREN
        2
    dorothyREN  
       2021-03-01 09:33:09 +08:00
    桥接一样能固定 IP 啊
    newaccount
        3
    newaccount  
       2021-03-01 09:34:12 +08:00
    太久,忘了当时怎么设置的,说个大概。
    你需要的不是 Host-only,而是 Nat 网络
    在 vbox 管理器(最开始那个,不是虚拟机自己的),菜单:管理 - 全局设定 - 网络,添加一个 NAT 网络。然后设置这个网络的端口转发,把外部请求转发进去,这里就不要用 ping 测试了,随便开个 22 容易测试。
    之后虚拟机的网络连接设置成“Nat 网络”,界面名称选择你刚刚新创建的那个。然后进虚拟机给个固定 IP 。
    文档的话,在 Virtual Networking 那一章。
    剩下等其它大神补充。
    newaccount
        4
    newaccount  
       2021-03-01 09:36:47 +08:00
    @newaccount 如果不是用 virtual box,那就是我咖啡还没喝够,看花眼了...
    GM
        5
    GM  
       2021-03-01 09:37:54 +08:00
    桥接是最方便的。桥接后,vm 的网络和 host 机子的网络是平等地位,效果等同于直接插了一条网线到 vm 里。想要固定 ip 就设置固定 ip,想要动态 ip 就动态 ip 。
    zhyl
        6
    zhyl  
       2021-03-01 09:40:42 +08:00 via iPhone
    在网关转发虚拟机 IP 的数据包到宿主机
    dbe
        7
    dbe  
    OP
       2021-03-01 09:43:19 +08:00
    @zengxs 好的 谢谢
    dbe
        8
    dbe  
    OP
       2021-03-01 09:44:00 +08:00
    @dorothyREN 网络环境很复杂 用桥接无法正常用
    dbe
        9
    dbe  
    OP
       2021-03-01 09:44:54 +08:00
    @newaccount 哈哈 好像差不多 有个思路就很好搞啊
    dbe
        10
    dbe  
    OP
       2021-03-01 09:45:43 +08:00
    @GM 我这儿不适合桥接。。。
    dbe
        11
    dbe  
    OP
       2021-03-01 09:46:43 +08:00
    @zhyl 网关转发虚拟机 ip ?有详细一点的吗,没有路由器后台权限的喔
    FreeEx
        12
    FreeEx  
       2021-03-01 09:51:28 +08:00
    需求 固定 IP:使用桥接模式,虚机 IP 会和宿主机器在同一个网段。
    需求 其他网段的固定 IP:使用 NAT 模式,但是要用虚拟网络管理器配置好新的网段,虚机 IP 会和宿主机器不在同一个网段,宿主机器会新增一个 NAT 网段的 IP,这个 IP 就是虚机的网关地址。
    dorothyREN
        13
    dorothyREN  
       2021-03-01 09:52:56 +08:00
    给 host 加个虚拟网卡,然后桥接到这个虚拟网卡上面
    jzmws
        14
    jzmws  
       2021-03-01 10:08:20 +08:00 via Android
    vm 可以配置映射 用宿主机的 IP 加端口号,映射到指定 IP 和端口上。
    zhyl
        15
    zhyl  
       2021-03-01 10:20:51 +08:00
    @dbe 没路由器的操作权限那没办法了,不知道什么情况下桥接模式会无法正常使用
    dbe
        16
    dbe  
    OP
       2021-03-01 10:27:50 +08:00
    @FreeEx nat 模式虽然可以映射端口 但只能指定端口映射 我想要的是一个全端口映射的方法
    dbe
        17
    dbe  
    OP
       2021-03-01 10:28:34 +08:00
    @dorothyREN 这边系统环境无法支持双网卡
    dbe
        18
    dbe  
    OP
       2021-03-01 10:29:45 +08:00
    @jzmws 这个在 nat 模式可以但是只能映射指定端口 如果虚拟机多然后端口多的话 太麻烦了
    dbe
        19
    dbe  
    OP
       2021-03-01 10:33:37 +08:00
    @zhyl 嗯对 这边是不同网段多 而且不互相通 如果用桥接的话 无法固定 ip 相当于无法正常使用这样的
    dorothyREN
        20
    dorothyREN  
       2021-03-01 10:34:57 +08:00
    @dbe #17 不是说了加虚拟网卡嘛。虚拟网卡都加不 了?
    OliverDD
        21
    OliverDD  
       2021-03-01 10:36:32 +08:00
    host-only 应该不行吧。nat 可以在主机上端口映射一下;桥接可以直接访问;他们都可以固定 ip 啊
    dbe
        22
    dbe  
    OP
       2021-03-01 10:51:22 +08:00
    @dorothyREN 虚拟机桥接宿主机虚拟网卡同样需要新添加一个网卡,这边系统环境有网卡验证,双网卡的话,系统没办法正常运行的。如果是去掉 only-host 模式直接桥接虚拟网卡,直接桥接不是更好吗,是我这儿不适合桥接的。感谢兄弟
    rohgeo
        23
    rohgeo  
       2021-03-01 10:57:25 +08:00
    有的公司网络环境没法用虚拟机桥接模式。试试用 vpn 连接
    FreeEx
        24
    FreeEx  
       2021-03-01 10:59:25 +08:00
    @dbe 看到你说没有路由器的权限,这样你用桥接模式即可。
    maedaema
        25
    maedaema  
       2021-03-01 11:10:49 +08:00
    因为你没有路由器的权限,所以即使配置了也只能在其他设备上手动配置路由才能 ping 通

    大概思路
    宿主机所在网段 A,宿主机 IP-A
    only-host 网段 B,宿主机 IP-B
    其他设备配置路由,把网段 B 目标地址的数据包发送到 IP-A
    宿主机设置转发,把来自网段 A 目标为网段 B 的数据包转发到 only-host 的虚拟网卡
    如果转发时进行了 IP 伪装,变成了 IP-B 的话则虚拟机不用改配置,否则要在虚拟机配置返回的路由
    dier
        26
    dier  
       2021-03-01 11:16:40 +08:00
    如果没有路由器的管理权限,那就只能在想要发起访问的源主机上设置静态路由了,将 only-host 的子网路由到你的本机 IP 上,由你的 IP 进行转发
    bruce0
        27
    bruce0  
       2021-03-01 11:46:12 +08:00
    能想到的
    1.桥接模式
    2.nat+端口转发
    no1xsyzy
        28
    no1xsyzy  
       2021-03-01 12:25:30 +08:00
    局域网里其他机器 --(静态路由表)-> VM host --(NAT 转发 IP 包)-> VM
    回程似乎直接用默认的路由表就成。
    实际上的配置就是让其他机器添加静态路由到 VM host
    no1xsyzy
        29
    no1xsyzy  
       2021-03-01 12:28:00 +08:00
    @no1xsyzy 脑子浆糊了
    VM host 要开启 IP 包转发
    上面那行也不是 NAT
    这就是一般的路由网络结构
    如果有网关的后台能让网关转,没有就只能每台机器各自添加路由表了。
    laqow
        30
    laqow  
       2021-03-01 12:41:03 +08:00
    应该可以在宿主机搞个代理把宿主机其他网段 IP 的端口映射到 VM 同一个内网的 IP 上
    laqow
        31
    laqow  
       2021-03-01 12:45:13 +08:00
    @laqow 搞错了,这个不是 ping,只能把内网服务映射到外面端口。但看 ping 的目的是什么了。
    lower
        32
    lower  
       2021-03-01 13:01:45 +08:00
    赞同楼上,虚拟机本身提供的网络功能都没法满足的话,,只能搞 vpn,代理(反代、正代)
    Selenium39
        33
    Selenium39  
       2021-03-01 13:23:57 +08:00
    用两个网卡,一个 NAT,一个 only-host,这样就既能 ping 通外网也能虚拟机互相 ping 通
    loveyu
        34
    loveyu  
       2021-03-01 17:55:13 +08:00 via Android
    两个网卡,一个 NAT,一个 only-host 。我就是这样的
    bao3
        35
    bao3  
       2021-03-02 04:29:21 +08:00 via iPhone
    楼上正确。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2740 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:24 · PVG 20:24 · LAX 05:24 · JFK 08:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.