Zerotier 非官方安卓客户端发布:支持自建 Moon 节点

2021-04-07 10:56:30 +08:00
 KAAAsS

原先一直在使用 n2n 组网,但是用了将近两年只见过同个局域网下和路由器成功建立过 p2p,绝大多数情况下都是在走 supernode 的转发。最近发现了 Zerotier,发现打洞效果真的超强,和 n2n 一起开的时候甚至会选择走 n2n 的连接( bushi )。但是用了几天也发现了几个问题,而且都和一个问题有关,就是 Zerotier 的中心化太强了。我个人最主要的痛点就是 Android 端不支持连接自建 Moon,而移动网络下官方的 Planet 节点几乎不可访问。但是研究了下 SDK,发现其实 SDK 本身是有 orbit 接口的,只是没有 GUI 。由于官方端是闭源的,所以就花了两天时间逆向了原客户端,自行加入了 orbit 功能。

目前做的工作:

仍在开发的功能:

项目 repo 与 apk 下载:kaaass/ZerotierFix。现在官方端的逆向结果还有待整理,欢迎各位朋友 PR 、Issue 。

19246 次点击
所在节点    宽带症候群
54 条回复
KAAAsS
2021-04-07 15:30:02 +08:00
@oneisall8955 对的
KAAAsS
2021-04-07 15:38:28 +08:00
@826540272 是这样的,自建 Moon 就是适用于打洞失败的情况。目前还在探索更完善的方法。
Tokin
2021-04-07 15:53:02 +08:00
收藏,之前因为移动网络打洞完全不成功,直接走 frp 了,但是 frp 服务器带宽很小,所以速度很慢,如果能打洞成功久舒服了。
efaun
2021-04-07 16:16:43 +08:00
关注了
gy6221
2021-04-07 16:54:30 +08:00
@WoodenRobot 请问下 tailscale 在多线接入的环境下表现如何?能手动指定线路优先级吗
mgrddsj
2021-04-07 16:58:36 +08:00
好久之前就想做个完整功能的 Zerotier Android 客户端了,无奈技术太菜、文档不是很清晰一直无从下手。支持楼主!
gps949
2021-04-07 22:50:26 +08:00
@KAAAsS #15
你说的方案 1 其实很简单,zt 官方开源代码中有给 make world 的脚本,可生成 earth 配置数据,以及可由其进一步生成 planet 文件。
对于 linux/win/mac 平台直接使用官方程序+planet 文件即可。之前搞过 zt+ztncui 自建,奈何没 zt 的 ios 客户端开源代码,自己搞不定 ios,无法满足自己实际使用需求,于是就把自建 earth 扔那里荒废了。

另外,lz 搞的国内貌似已经有商业团队搞过 zt 的自建山寨版了(零遁,没用过,非广告,利益无关)
KAAAsS
2021-04-07 23:34:43 +08:00
@gps949 #27
我今天测试了下,确实如你所说,方案 1 挺简单的。我现在的计划是给 Android 端加上 planet 配置功能,然后搞一个 docker-compose 完成 zt+ztncui 的部署与 planet 文件生成,做到一键部署。IOS 操作难度相对来说比 Android 大好多,而且我也没有开发机所以只能作罢 TAT 。

自建 zt 的商业团队我确实不知道国内有,但是国外有我是有所了解的。不过我搞这个 repo 的主要目的还是想开源,方便有想法的朋友可以用较低的成本付诸实践 XD
xumng123
2021-04-08 08:37:50 +08:00
能帮升级 chongshengB 的固件升级一下 1.6.4 版本 zerotier 吗,加入 moon 的支持?

试了一下编译失败了。github:xumng123
qq7790586
2021-04-08 10:32:48 +08:00
@xumng123 #29 lean 大佬的潘多拉固件有自带了 zerotier 的,具体什么版本忘记了。
https://www.right.com.cn/forum/thread-3135031-1-1.html
KAAAsS
2021-04-08 10:40:30 +08:00
@xumng123 不需要重新编译,我刚刚看了一眼,在 [zerotier.sh]( https://github.com/chongshengB/rt-n56u/blob/master/trunk/user/zerotier/zerotier.sh#L34) 的 `add_join` 行后面增加复制 moon 文件的指令即可。比如:
```
mkdir -p $config_path/moons.d
cp 你的.moon 文件路径 $config_path/moons.d
```
allenforrest
2021-04-08 12:40:58 +08:00
@KAAAsS iOS 可以连 Android 开的热点,通过 Android 的自建 ZT 入网
KAAAsS
2021-04-08 13:34:55 +08:00
@allenforrest 槽,那也太折腾了(
xumng123
2021-04-09 07:30:40 +08:00
@KAAAsS 已经 ok 了,加入了 zerotier 加入 moon,支持了 vless+xtls 。github:xumng123
feast
2021-04-10 11:39:01 +08:00
eell done
fc790
2021-05-11 10:42:08 +08:00
请问下如何生成 planet 文件呢,通过楼主的工具成功将 moon.json 转化为了 world.bin 并且在安卓机上用上了。我自己是建好了 zt+ztncui 的,现在要是能在官方 windows zt 客户端上把 planet 替换了,是不是就完全不用经过官方的 planet 了
KAAAsS
2021-05-28 22:43:42 +08:00
@fc790 world.bin 改名成 planet 就是 planet 文件了 23333
fc790
2021-05-31 16:50:10 +08:00
@KAAAsS 哈哈,谢谢指导。一开始我也这样尝试过,不过没有连成功就以为不是这样的。现在经过肯定答复再一试,哈哈,的确是这样
rinex20
2021-07-02 15:14:27 +08:00
@KAAAsS 请教一下几个 world.bin 如何合并到一个 planet 里面?
KAAAsS
2021-07-06 00:17:50 +08:00
@rinex20 并不能直接合并(其实理论上可以,但是代码没写,我记得大概只要去掉第二个文件前两个字节就能合并),建议提取其中的设置到同一个 moon.json (可以接受数组),然后生成就行。

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

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

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

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

© 2021 V2EX