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

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

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

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

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

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

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

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

© 2021 V2EX