基于 zerotier 打洞成功, 但是无法访问到另外一端内网资源

2023-06-23 06:21:35 +08:00
 Eaglemask

各位,自建了 zerotier 并且打洞成功, 且可以访问到另外一端跑了 zerotier 的机器上资源,只是另外一端内网其它资源无法访问到, 具体网络结构如下:

1 台公网 IP 机器(在 vultr 开启了转发并关闭了防火墙)跑了自建 planet 并正常运行, 设置 ip 10.199.188.0/24(内网段 1)自动分发. 网络名称:ABC.

1 台安装在内网的 PVE 机器(192.168.2.99-内网段 2,) 通过 zerotier 加入到上述网络 ABC, 且在 planet 上状态看到在线并拿到了 10.199.188.23.

手机安装了 zerotier(设置激活了 active bridge)加入到上述网络 ABC, 且在 planet 上状态看到在线并拿到了 10.199.188.153.

目前手机可以通过 10.199.188.23 成功访问 PVE 机器本身, 但是 PVE 下一些虚拟机网段在 192.168.2.0/24 机器无法访问到.

请问如何才能访问到 PVE 上几台虚拟机上资源如 gitea/nextcloud 等(此几台虚拟机 Ip 都是固定内网段 2,如 192.168.2.100, 192.168.2.111, 网关为联通路由器 192.168.2.1)

目前尝试了很多教程, 比如 https://www.mrdoc.fun/doc/138/, 同时设置 router 为 target 10.199.188.0/24, 以及网关为 10.199.188.23. 以及另外条路由记录 target 192.168.2.0/24, gateway:192.168.2.99.

但是都失败了, 请问有哪些可以指点下大概问题会出现在哪里? 感谢.

4747 次点击
所在节点    程序员
34 条回复
wtsamuel
2023-06-23 11:35:18 +08:00
我就是在 pve 里面装了 openwrt ,运营商的路由器不好设置
Eaglemask
2023-06-23 11:37:15 +08:00
@wtsamuel 推荐下你用的那种 openwrt? 装这个也好, 正好局域网需要个透明代理出去.
oneisall8955
2023-06-23 11:38:54 +08:00
可能 pve 比较特殊,需要特殊配置

https://www.reddit.com/r/Proxmox/comments/jctd6x/zerotier_on_proxmox/

Google 关键字:zerotier pve subnet 或 zerotier pve vmbr0
wtsamuel
2023-06-23 11:48:49 +08:00
直接用官方的 x86 版本的 openwrt ,很稳。就装了一个 zerotier 。openwrt 版的 zerotier 很多配置都可以省略,穿透同一网段很方便
透明代理,我是又开了一个 lxc ,防止配错的时候 openwrt 要回退,麻烦。
Eaglemask
2023-06-23 19:23:33 +08:00
@wtsamuel 透明代理你用的是哪个? 推荐下?
dongzhuo777
2023-06-25 11:39:54 +08:00
你自己个人用。没必要自建根节点。。你就自建 moon 就行了。如果你自己家有动态的公网 ip ,连 moon 都不用做。基本上 100%打洞成功的。
Eaglemask
2023-06-25 11:41:24 +08:00
@dongzhuo777 有朋友要用, 只能自建根节点.
dongzhuo777
2023-06-25 11:46:44 +08:00
你都有 PVE 了 还用运营商的路由器拨号干嘛。自己 PVE 里面弄一个 Openwrt 出来走桥接拨号。有些版本的 openwrt 里面带 zerotier 插件。。这样起码可以拿到 ipv6 的公网 ip (移动),如果是电信就找运营商开公网 IP 。
没必要自建根,那玩意是给商用你超过 50 个设备限制用的。如果有 vps 就做一个 moon ,就够了,感觉墙外的 vlutr 做 moon 好像也没多大用 。
客户端有 ipv6 的 基本上用不到这个 moon 100%能打通成功。
dongzhuo777
2023-06-25 11:51:31 +08:00
你现在 PVE 下的虚拟机访问不了是因为,网关处你没有设置路由表吧。如果傻瓜式的话,PVE 建 openwrt 走桥接,有些版本有 zerotier 插件,插件里面有一个内网机器转发的勾选,勾上会自动配置路由表。这样你内网虚拟机网关是这个 openwrt 就可以拿到访问了。如果不想这么晚,可以找一个 linux 教材,看一下关于防火墙 NAT 和 DNAT 那块。设置下 iptables
Eaglemask
2023-06-25 12:00:37 +08:00
@dongzhuo777 目前是 istoreos 中跑的 zerotier 插件, 一样无法成功访问内网端其它非 istoreos 资源. zerotier 设置了内网机器转发了, 一样不行.

至于 iptable,已经设置过了不行.
dongzhuo777
2023-06-25 12:29:40 +08:00
@Eaglemask 用链路追踪看下到哪一跳断掉了。然后基本上就是那块设置的问题。。假如 A 已经接入了 zerotier 的网络,A 设备访问 zerotier 网络里面 ip ,那其他虚拟机只要配置好路由表还有设置好 NAT 和 DNAT 转发 按理说都 OK 的 和 zerotier 、建不建根节点没关系。
我自己的网络。家里 openwrt 介入 zerotier ,公司有台 centos 介入 zerotier 。其他家里的节点依赖 openwrt ,公司其他环境的设备 依赖 centos 。就可以打通所有设备了。
dongzhuo777
2023-06-25 18:08:18 +08:00
@Eaglemask 你是你手机端的 zerotier 访问不了 pve 里面其他节点的内网地址吧。那你 pve 里面作为 zerotier 的节点要配置内网转发。然后根节点要配置一个 你 pve 内网 指向 pve 里面的 zerotier 节点。
举例,你 pve 内网设备的网段是 192.168.2.0/24 。istores 分配到的 zerotier ip 是 10.0.0.1
dongzhuo777
2023-06-25 18:10:36 +08:00
@Eaglemask 你是你手机端的 zerotier 访问不了 pve 里面其他节点的内网地址吧。那你 pve 里面作为 zerotier 的节点要配置内网转发。然后根节点要配置一个 你 pve 内网 指向 pve 里面的 zerotier 节点。
举例,你 pve 内网设备的网段是 192.168.2.0/24 。istores 分配到的 zerotier ip 是 10.0.0.1 。要把 192.168.2.0/24 指向 10.0.0.1 才行。自建根的我不知道。但是走官方的只需要在官方的控制面板设置下就行了。但原理应该是一样的 。如果手机上装个命令行设备看下链路追踪是最直观的
oneisall8955
2023-06-25 19:04:38 +08:00
@dongzhuo777 看前文,我回复给 OP 的必要配置,OP 都配置了,很奇怪,期待 OP 折腾成功

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

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

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

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

© 2021 V2EX