在 pve 中,虚拟机使用网桥模式的情况下,宿主机切换网络环境,导致宿主机的内网 ip 变化,虚拟机如何通过一个固定的域名/ip 地址访问到宿主机的管理面板?

2023-08-29 15:26:28 +08:00
 codeself

如题

宿主机加入的 A 网络,得到的内网 ip 是 192.168.30.150

宿主机加入的 B 网络,得到的内网 ip 是 10.24.36.128

现状

此时

困扰

不可接受的方案

问题拓展

1744 次点击
所在节点    路由器
9 条回复
totoro625
2023-08-29 15:31:53 +08:00
A.通过 Tailscale/zerotier 等组网后,通过组网后的内网 ip 访问
B.虚拟机 A 的 ip 不固定无所谓,他作为主路由之后有一个内网 ip
如其他机器是 192.168.31.150 ,他的 ip 是 192.168.31.1

PS:宿主机不应该频繁切换网络环境
Jirajine
2023-08-29 15:37:56 +08:00
再加一个网卡,使用固定 ip ,仅内网通信使用。
codeself
2023-08-29 15:46:47 +08:00
@totoro625
1. 问下 Tailscale/zerotier 组网的话,也是类似 frp 这样,需要外部服务器的吧?
2. 如果把虚拟机 A 当作旁路由的话,那虚拟机 A 应该要一个固定的 ip 是吧?
codeself
2023-08-29 15:48:39 +08:00
@Jirajine 再加个网卡的拓扑图是咋样的?没太理解
MrGba2z
2023-08-29 17:53:48 +08:00
在默认的 vmbr0 不变的基础上
加个 vmbr1 绑定所有虚拟机和宿主机 但不介入外网(不绑定物理网卡)

虚拟机用 vmbr1 的地址访问宿主机(可能需要设置下路由表)
jzsmqss1
2023-08-29 23:33:51 +08:00
其实我没看明白“切换网络环境”是什么意思。只能说一下我的架构(电信拨号没有公网 ip )。
1 、之前:光猫下联 pve 宿主机固定 ip 192.168.3.2 ,里面 openwrt pppoe 拨号 、192.168.3.1 、DHCP 。群晖之类 192.168.3.X 的不用说了。宿主机下联到交换机,有 ap 、台式机、电视等等,自动分配 ip 192.168.3.x 。
换掉的原因是,openwrt 不稳定,大概 90 天的时候 pppoe 拨号崩了。
群晖里架了 tailscale ,用于外网通信。
2 、为解决 openwrt 不稳定,想 pve 里加一个 ikuai 。但是有了更好的办法。
3 、朋友闲置了个 tp 的企业路由,比较稳定。于是在光猫与 pve 之间用了 tp 企业路由 192.168.1.1 ,专门 pppoe 拨号。把 openwrt 的 wan 口改为动态,接到 192.168.1.1 ,其它内网 ip 都不动。
这个企业路由还行,注册到官网,可以远程管理。
现在,拨号远程管理用其官网,内网远程管理和群晖里面的服务 用 tailscale ,所有管理都可以远程。
thereone
2023-08-30 00:34:48 +08:00
这还不简单把 PVE 的 lo 接口利用起来 在 lo 接口添加 ip 地址,然后将 PVE 的 web 管理监听也添加 lo 接口的 ip 地址。那么只要你的 PVE 宿主机不死机,那么永远都可以通过这个地址访问 PVE 的管理界面。只不过需要你的虚拟机添加路由条目,如果同一网段其它主机也要访问这个地址的话那也要添加路由条目。
codeself
2023-08-30 09:40:30 +08:00
@jzsmqss1 “切换网络环境”就是把宿主机挪到不同的地方,比如,从家里带到公司这种
codeself
2023-08-30 09:49:15 +08:00
@thereone 大概是这个(ai 生成的)步骤吗?但是可以看到第四步,需要一个宿主机的内网 ip,好像也不太能解决问题.
1. 在 PVE 宿主机上,使用 ip addr add 命令为 lo 接口添加一个固定的 ip 地址,比如 127.0.0.2 。
2. 在 PVE 宿主机上,使用 pveproxy 命令或者修改 /etc/pve/pveproxy.cfg 文件,将 PVE 的 web 管理监听也添加 lo 接口的 ip 地址,比如 127.0.0.2:8006 。
3. 在 PVE 宿主机上,使用 iptables 命令或者修改 /etc/iptables/rules.v4 文件,将 lo 接口的 ip 地址和端口转发到 vmbr0 接口的 ip 地址和端口,比如 iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8006 -j DNAT --to-destination 127.0.0.2:8006 。
4. 在虚拟机中,使用 ip route add 命令或者修改 /etc/network/interfaces 文件,将 lo 接口的 ip 地址添加到路由表中,比如 ip route add 127.0.0.2 via 192.168.30.150 dev eth0 。
5. 在虚拟机中,使用浏览器访问 https://127.0.0.2:8006 即可打开 PVE 的管理界面。

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

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

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

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

© 2021 V2EX