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

局域网设备如何直接访问 PVE 中的虚拟机呢

  •  
  •   huazhaozhe · 5 天前 · 1788 次点击

    目前设备是小米 AX3000T 桥接上网,无公网 ipv4 ,有 ipv6 ,下边有一台 PC 打游戏,WIFI 设备如手机,一台单网口 PVE 主机跑了多个虚拟机。

    为了其他设备能访问 PVE 的虚拟机装了 zerotier ,但是手机使用 zerotier 的时候无法使用其他 VPN 还要切换比较麻烦,想重新弄下网络拓扑达到这样子:

    1. AX3000T 是家里唯一 WIFI AP 有很多设备为了稳定和米家联动只用官方固件,尽量少动它
    2. 手机连上 WIFI 使用内网地址可以直接访问 PVE 里边的虚拟机比如群晖/Linux 不需要其他的操作
    3. PVE 中的虚拟机能够分配到 IPv6 地址,偶尔外边使用 ddns 能直接访问到 PVE 虚拟机,其他时候准备在路由器中开启 IPv6 防火墙
    4. PVE 多个虚拟机在满足前边 1-3 的前提下还可以科学上网
    5. zerotier 作为应急备用
    21 条回复    2024-06-26 19:18:13 +08:00
    StinkyTofus
        1
    StinkyTofus  
       5 天前
    你给我整蒙了, 虚拟机不就可以当做一台独立的机器用么,PVE 新建的虚拟机默认就能获取到局域网的 IP , 本来就可以直接访问, 除非你做了特殊的设置。
    huazhaozhe
        2
    huazhaozhe  
    OP
       5 天前
    @StinkyTofus 我是自己手动装的 PVE8 ,为了有内网域名和科学上网弄了个软路由,虚拟机都接到软路由下边了所以 PVE 搞了个子网。。。
    povsister
        3
    povsister  
       5 天前 via iPhone
    pve 用桥接网络默认可以 dhcp lan ,然后和一楼说的一样,这就是你局域网里的一个独立 ip ,局域网本来就可以直接访问,剩下的东西都是你网络设置,和 pve 一毛钱关系都没有
    huazhaozhe
        4
    huazhaozhe  
    OP
       5 天前
    @povsister 这个不能科学上网吧,需要每个虚拟机配置一遍貌似
    StinkyTofus
        5
    StinkyTofus  
       5 天前
    @huazhaozhe #4 如果你想所有虚拟机都不配置直接翻墙, 可以用一台虚拟机 A 装 Openwrt 或者 Clash 透明网关, 然后把各个虚拟机的网关地址改成 A 的 ip , 包括手机和物理机的网关 IP 都可以改成 A 的地址, 这样就都可以自动翻墙了。
    StinkyTofus
        6
    StinkyTofus  
       5 天前
    其实这就是主路由+旁路由翻墙的基本架构, 如果不想每次都手动改网关 IP , 可以用主路由分配 DHCP , 绑定静态地址, 指定各个设备的网关地址就行了。
    xiaobaibay
        7
    xiaobaibay  
       5 天前
    我也没看懂 我自己的也是 esxi 的 all in one 所有虚拟机 包括 esxi 都在一个局域网 网关都是在一个虚拟机上 同样实现所有内网环境科学上网
    hi2hi
        8
    hi2hi  
       5 天前
    s1, AX3000T 是主路由; s2, PVE 接上主路由,虚拟机开一个 openwrt 或者其他 Linux 系统也可以,做透明代理,其他机器通过这个透明代理网关番茄; s3, 之前那个虚机(或者新开一个虚机)上,用 xray 的反代挂到你的代理服务器上去,手机上的代理把局域网的访问指向这个代理服务器,代理服务器反代转发到这个虚机上,由这个虚机访问内网。
    shadowaura
        9
    shadowaura  
       5 天前
    之前也是和 OP 一样的需求(1,2,3,4),我的解决方案在 OP 的基础上使用 openwrt 软路由做核心网关,openwrt(passwall)访问控制分流,openwrt(passwall)服务端使用 singbox 允许访问局域网作为 ipv6 vpn 访问 homelab(PVE8),homelab 内部的虚拟机服务我使用 socat 转发到 openwrt 端口上例如:nohup socat TCP-LISTEN:31269,fork,reuseaddr TCP:10.0.0.201:443 >> /tmp/socat.log 2>&1 &
    对于 OP 的 5 我建议增加 tailscale, zerotier 容易被运营商(移动)阻断。
    povsister
        10
    povsister  
       5 天前
    @huazhaozhe
    > 这个不能科学上网吧,需要每个虚拟机配置一遍貌似
    可以啊,那不是取决于你配置么。。

    而且你现在这个配置,你旁路由在独立网段无法互访,原因不就是旁路由缺少对应路由表吗。
    旁路由加一条路由表把你内网区域指明不就行了。

    另外,你说了一大堆都没在点子上,所有重要的东西你都没讲,下次建议直接上拓扑图。
    kcerty
        11
    kcerty  
       5 天前
    意思是在内网里面,再套娃一个内网, [内网 A [内网 B] ] ,现在需要内网 A 访问内网 B ,是这样吧?
    huazhaozhe
        12
    huazhaozhe  
    OP
       5 天前
    @StinkyTofus #6 这样子的话如果 pve 挂了,那么手机应该也上不了网吧
    huazhaozhe
        13
    huazhaozhe  
    OP
       5 天前
    @povsister #10 我其实准备整个重新弄一下的所以没上图,但是确实没说清楚,v2 只能改一次,发出来之前应该先好好写下😂
    StinkyTofus
        14
    StinkyTofus  
       5 天前
    @huazhaozhe #12 这不是废话么, 那路由器挂你也上不了, 光猫挂了你也上不了。
    cdlnls
        15
    cdlnls  
       5 天前 via Android
    可以实现,但是第三点存疑,主要是因为 ipv6 接触得不多。

    0. 假定你局域网网段是 192.168.3.0/24 ,pve 主机的 ip 地址为 192.168.3.3 ,pve 中的子网网段是 172.16.3.0/24

    1. 在 pve 主机中开启 ip 转发
    2. 在主路由器中增加一条路由,176.16.3.0/24 指向 pve 的 ip 192.168.3.3
    3. 给虚拟机添加路由,把 192.168.3.0/24 指向 pve 的虚拟网卡接口 176.16.3.x 。(如果你 pve 里面有 openwrt ,可以直接通过 dhcp 下发这条路由,省去手动维护)
    4. 虚拟机内上网,可以在虚拟机里面跑一个 openwrt ,装一个 clash 或者其他软件。

    这样设置之后,在局域网下,可以访问 pve 虚拟机的子网。

    这个方案我就在用。再配合上 openvpn ,把百度云,阿里云上的服务器都打通了。再外面连上 vpn 可以直接访问 pve 虚拟机里面的服务。pve 虚拟机也能直接访问阿里云 VPC 网络。
    laooong
        16
    laooong  
       5 天前
    你现在的清况就是相当于 pve 的 openwrt 是个子路由,所有虚拟机都在子路由的网段里,要么加路由表,要么修改 openwrt 的 lan 口 ip 走旁路由的模式。
    huazhaozhe
        17
    huazhaozhe  
    OP
       5 天前
    @StinkyTofus #14 那不一样,pve 挂了还好我可以自己折腾,路由器挂了就全家都断网了
    livin2
        18
    livin2  
       5 天前
    就是不想旁路由,还想虚拟机挂在软路由子网里?
    那软路由把防火墙关了,主路由加一条静态路由。
    oldfriend
        19
    oldfriend  
       4 天前
    rdp or ssh
    cus
        20
    cus  
       4 天前 via iPhone
    (再绑定一个网卡就好了
    leschans
        21
    leschans  
       2 天前
    不太明白 只要路由和防火墙设置好了 即使不是一个网段也可以访问才对
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2535 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:02 · PVG 18:02 · LAX 03:02 · JFK 06:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.