哪种内网穿透可以做到 peer 间自动中继?

2023-07-08 10:04:47 +08:00
 billytv

假设:

A 机器: v4 full cone (nat1), v6 公网

B 机器: v4 port-restricted (nat2), v6 公网

C 机器: v4 symmetric nat (nat3), 没有 v6

现时使用 zerotier, A 可以分别跟 B 和 C 打洞直连, 但 B 跟 C 由于是 nat2/3 不能直连, 不知道 zerotier 或者其他内网穿透可以做到自动透过 A 中转, 使 B 和 C 能连得上? 但又不能使 A 中心化, 谢谢

1986 次点击
所在节点    宽带症候群
11 条回复
mohumohu
2023-07-08 10:12:26 +08:00
如果有这个技术 zerotier 为啥不做
mmm159357456
2023-07-08 10:15:02 +08:00
tailscale derp
wslzy007
2023-07-08 11:45:09 +08:00
NAT2-NAT3 打洞直连,试试 SG ,github.com/lazy-luo/smarGate
SenLief
2023-07-08 12:30:38 +08:00
tailscale derp 中继服务,就是先利用中继建立链接,然后再尝试直连的。
EVJohn
2023-07-08 13:06:37 +08:00
headscale
mohumohu
2023-07-08 13:07:09 +08:00
@SenLief 那跟 zerotier 的 moon 也大同小异。
hronro
2023-07-08 14:33:39 +08:00
我估计楼主的意思,是整个网络中的每一个节点,都可以作为中继节点,然后网络中任意两个节点打洞不成功的时候,会自动寻找"最优"的节点作为中继节点.

这个据我所知,目前还没有哪个产品能做到.
totoro625
2023-07-08 14:46:07 +08:00
曲线救国:A 机器因为是 NAT1 ,可以打洞获取公网 ipv4
参考资料: https://github.com/heiher/natmap/wiki/wireguard
此时把 A 机器当做公网中转服务器即可
wslzy007
2023-07-08 18:50:20 +08:00
如果使用 SG ( github.com/lazy-luo/smarGate ),简单配置如下(无法自动):
场景:在 B 上 x 端口,通过 A 访问位于 C 内网的 ip1:porty
步骤:
1 、A 、B 、C 上分别安装 SG 服务端
2 、在 SG 客户端配置,A:z 端口到 C 内网 ip1:porty 端口的服务端间映射:A:z 端口 ---> C 内网 ip1:porty
3 、在 SG 客户端配置,B:x 端口到 A:z 端口的服务端间映射,B:x 端口 ---> A:z 端口
4 、在 B 上,访问:localhost:x 即可通过 A 访问到 C 内网 ip1:proty
sofukwird
2023-07-08 23:42:49 +08:00
tinc 可以做到全节点自动路由, 要去中心化的话多建几个 A 节点就行
sbilly
2023-09-03 16:09:13 +08:00
想法很好,实际不太可用。类似于 BT 最终还是需要中心化的超级节点

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

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

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

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

© 2021 V2EX