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

11 天前
 huazhaozhe

目前设备是小米 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 作为应急备用
1893 次点击
所在节点    NAS
21 条回复
StinkyTofus
11 天前
你给我整蒙了, 虚拟机不就可以当做一台独立的机器用么,PVE 新建的虚拟机默认就能获取到局域网的 IP , 本来就可以直接访问, 除非你做了特殊的设置。
huazhaozhe
11 天前
@StinkyTofus 我是自己手动装的 PVE8 ,为了有内网域名和科学上网弄了个软路由,虚拟机都接到软路由下边了所以 PVE 搞了个子网。。。
povsister
11 天前
pve 用桥接网络默认可以 dhcp lan ,然后和一楼说的一样,这就是你局域网里的一个独立 ip ,局域网本来就可以直接访问,剩下的东西都是你网络设置,和 pve 一毛钱关系都没有
huazhaozhe
11 天前
@povsister 这个不能科学上网吧,需要每个虚拟机配置一遍貌似
StinkyTofus
11 天前
@huazhaozhe #4 如果你想所有虚拟机都不配置直接翻墙, 可以用一台虚拟机 A 装 Openwrt 或者 Clash 透明网关, 然后把各个虚拟机的网关地址改成 A 的 ip , 包括手机和物理机的网关 IP 都可以改成 A 的地址, 这样就都可以自动翻墙了。
StinkyTofus
11 天前
其实这就是主路由+旁路由翻墙的基本架构, 如果不想每次都手动改网关 IP , 可以用主路由分配 DHCP , 绑定静态地址, 指定各个设备的网关地址就行了。
xiaobaibay
11 天前
我也没看懂 我自己的也是 esxi 的 all in one 所有虚拟机 包括 esxi 都在一个局域网 网关都是在一个虚拟机上 同样实现所有内网环境科学上网
hi2hi
11 天前
s1, AX3000T 是主路由; s2, PVE 接上主路由,虚拟机开一个 openwrt 或者其他 Linux 系统也可以,做透明代理,其他机器通过这个透明代理网关番茄; s3, 之前那个虚机(或者新开一个虚机)上,用 xray 的反代挂到你的代理服务器上去,手机上的代理把局域网的访问指向这个代理服务器,代理服务器反代转发到这个虚机上,由这个虚机访问内网。
shadowaura
11 天前
之前也是和 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
11 天前
@huazhaozhe
> 这个不能科学上网吧,需要每个虚拟机配置一遍貌似
可以啊,那不是取决于你配置么。。

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

另外,你说了一大堆都没在点子上,所有重要的东西你都没讲,下次建议直接上拓扑图。
kcerty
11 天前
意思是在内网里面,再套娃一个内网, [内网 A [内网 B] ] ,现在需要内网 A 访问内网 B ,是这样吧?
huazhaozhe
11 天前
@StinkyTofus #6 这样子的话如果 pve 挂了,那么手机应该也上不了网吧
huazhaozhe
11 天前
@povsister #10 我其实准备整个重新弄一下的所以没上图,但是确实没说清楚,v2 只能改一次,发出来之前应该先好好写下😂
StinkyTofus
11 天前
@huazhaozhe #12 这不是废话么, 那路由器挂你也上不了, 光猫挂了你也上不了。
cdlnls
11 天前
可以实现,但是第三点存疑,主要是因为 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
11 天前
你现在的清况就是相当于 pve 的 openwrt 是个子路由,所有虚拟机都在子路由的网段里,要么加路由表,要么修改 openwrt 的 lan 口 ip 走旁路由的模式。
huazhaozhe
11 天前
@StinkyTofus #14 那不一样,pve 挂了还好我可以自己折腾,路由器挂了就全家都断网了
livin2
10 天前
就是不想旁路由,还想虚拟机挂在软路由子网里?
那软路由把防火墙关了,主路由加一条静态路由。
oldfriend
10 天前
rdp or ssh
cus
10 天前
(再绑定一个网卡就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051981

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX