跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Zerotier 非官方安卓客户端发布:支持自建 Moon 节点
未分類
13 4 月 2021

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

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

資深大佬 : KAAAsS 7

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

目前做的工作:

  • 增加 orbit 自建 moon
  • 中文翻译
  • 界面调整

仍在开发的功能:

  • 查看 peer 列表
  • 将 ui 完全 Material Design 化

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

大佬有話說 (34)

  • 資深大佬 : WoodenRobot

    因为这个原因我都转战 tailscale 了

  • 主 資深大佬 : KAAAsS

    关于目前的 Orbit 功能:

    效果等价于 `zerotier-cli orbit` ,因此还是需要设备本身能和官方 planet 通信(获取 moon 信息),这一点之后打算持久化获取到的 moon 节点信息。需要的两个参数:Moon 地址(这个好理解)、Moon 种子。Moon 种子必须可以连接到,并且有 moon 的全部信息。建议把 moon 加入目标网络,然后 orbit 的时候 Moon 地址、Moon 种子都填写 Moon 地址。

  • 主 資深大佬 : KAAAsS

    @WoodenRobot 现在可以再试试了 w

  • 資深大佬 : leavic

    @WoodenRobot tailscale 没好的路由器客户端啊

  • 資深大佬 : WoodenRobot

    @leavic 路由器有公网 ip 我直接 ddns,tailscale 老家没有公网 IP 的群晖连接用的

  • 資深大佬 : WoodenRobot

    @KAAAsS 关注 github 了,回头再试试,主要是 zerotier 自建 moon 还得自己有服务器。tailscale 穿透效果刚刚的,基本上都能直接打洞成功,没有再用 zerotier 的动力了,特别是后面 tailscale 如果出了路由器端的话,感觉没有再用 zerotier 的必要了

  • 資深大佬 : gps949

    @WoodenRobot
    有路由器端解决方案啊,至少有 openwrt 上的解决方案。
    求求尽量别网上扩散 ts,否则很快就该和 zt 差不多命运需要 moon 了

  • 資深大佬 : WoodenRobot

    @gps949 刚看到,前两天刚出的,闷声发大财

  • 資深大佬 : wszgrcy

    支持自建地球节点吗?也就是不连 z ?

  • 主 資深大佬 : KAAAsS

    @wszgrcy 可以,但是需要自己重新编译

  • 主 資深大佬 : KAAAsS

    @WoodenRobot 感谢关注:)。我自己的情况是必须要中转节点,所以目前还是选择了 zerotier 。另外 zerotier 能增加多个 moon 也很不错。

  • 資深大佬 : allenforrest

    点赞。

    我提个建议,还是建议自建 root,而不是自建 moon 。既然你已经有自建 moon 的中转服务器了,干脆就把 moon 改成自建 root server,内嵌的控制器,可以用这个 GUI 来配置和管理: https://github.com/key-networks/ztncui

    root server 自建好以后,用 ZeroTier One 源码里的小工具 mkworld 制作一个自定义 planet 文件(包含你自建 root 地址和节点信息)。

    然后将自定义 planet 加载到 Android App 里,我扫了一眼工程里的代码,原本应该是打算支持自己选 planet 文件进去的,但似乎没实现,但照着代码里的逻辑,其实就是把 planet 文件预置到 getActivity().getFilesDir() 里就行,ZT Service 初始化 Node 时候会自动去读 planet 文件,也就实现了全套自建的目标。

    自建 root 相比官方 root + 自建 moon 还是会有更好的体验的,毕竟 Node 在入网时候不用和官方 root 打交道了,relay 节点选择时也不会再考虑官方 root 了。

  • 資深大佬 : oneisall8955

    墙裂支持

  • 資深大佬 : oneisall8955

    moon 怎么填麻烦出个 Demo ? win 和 linux 复制 xxx.moon 文件到的 moons.d,安卓的怎么弄(=_=)

  • 主 資深大佬 : KAAAsS

    @allenforrest 感谢提醒~刚刚正好在研究这个。我原定的计划是下一步支持 moon 配置文件,这样就能初步做到不经过 zerotier root server 了。直接修改 root server 确实更加彻底,完全不去依赖 zerotier root 。

    不过代价就是,需要一系列自建的基础设施。我感觉还是要理清楚两个线路:

    1. 完全脱离 zerotier root:比较复杂。需要自己完成配置分发、建立 root 。大概可以搞一个 docker 解决,需要一个 root + ztncui 就行。

    2. 通信时脱离 zerotier root:相对简单,对于无法获得 moon 配置的情况,可以直接预制 moon 配置文件。可以不需要 ztncui,只通过官方 controller 分发配置(但有个前提,需要让 moon 节点连接官方网络)。

    我个人感觉解决方案 1 更适合建造国内的公共镜像?解决方案 2 又看起来有点迂回。我目前的想法还是先做到解决方案 2,然后实现一个 docker 让解决方案 1 的配置变得容易。

  • 主 資深大佬 : KAAAsS

    @oneisall8955 在右上角的设置里选择“入轨”。之后添加一个配置,两处都填写你的 moon 地址即可。

  • 資深大佬 : 826540272

    都打洞的啊,能联通就行

  • 資深大佬 : 826540272

    看了下 实际意义应该仅限于两端都是对称性 nat 的网络环境。

  • 資深大佬 : oneisall8955

    @KAAAsS #16 刚刚试了下,就是 moon 的 id ?,如 00000f12345.moon 那就填 f12345

  • 資深大佬 : oneisall8955

    @oneisall8955 #19 PSS,试了下终于 4G 移动卡,终于打洞成功流程访问内网

  • 主 資深大佬 : KAAAsS

    @oneisall8955 对的

  • 主 資深大佬 : KAAAsS

    @826540272 是这样的,自建 Moon 就是适用于打洞失败的情况。目前还在探索更完善的方法。

  • 資深大佬 : Tokin

    收藏,之前因为移动网络打洞完全不成功,直接走 frp 了,但是 frp 服务器带宽很小,所以速度很慢,如果能打洞成功久舒服了。

  • 資深大佬 : efaun

    关注了

  • 資深大佬 : gy6221

    @WoodenRobot 请问下 tailscale 在多线接入的环境下表现如何?能手动指定线路优先级吗

  • 資深大佬 : mgrddsj

    好久之前就想做个完整功能的 Zerotier Android 客户端了,无奈技术太菜、文档不是很清晰一直无从下手。支持主!

  • 資深大佬 : gps949

    @KAAAsS #15
    你说的方案 1 其实很简单,zt 官方开源代码中有给 make world 的脚本,可生成 earth 配置数据,以及可由其进一步生成 planet 文件。
    对于 linux/win/mac 平台直接使用官方程序+planet 文件即可。之前搞过 zt+ztncui 自建,奈何没 zt 的 ios 客户端开源代码,自己搞不定 ios,无法满足自己实际使用需求,于是就把自建 earth 扔那里荒废了。

    另外,lz 搞的国内貌似已经有商业团队搞过 zt 的自建山寨版了(零遁,没用过,非广告,利益无关)

  • 主 資深大佬 : KAAAsS

    @gps949 #27
    我今天测试了下,确实如你所说,方案 1 挺简单的。我现在的计划是给 Android 端加上 planet 配置功能,然后搞一个 docker-compose 完成 zt+ztncui 的部署与 planet 文件生成,做到一键部署。IOS 操作难度相对来说比 Android 大好多,而且我也没有开发机所以只能作罢 TAT 。

    自建 zt 的商业团队我确实不知道国内有,但是国外有我是有所了解的。不过我搞这个 repo 的主要目的还是想开源,方便有想法的朋友可以用较低的成本付诸实践 XD

  • 資深大佬 : xumng123

    能帮升级 chongshengB 的固件升级一下 1.6.4 版本 zerotier 吗,加入 moon 的支持?

    试了一下编译失败了。github:xumng123

  • 資深大佬 : qq7790586

    @xumng123 #29 lean 大佬的潘多拉固件有自带了 zerotier 的,具体什么版本忘记了。
    https://www.right.com.cn/forum/thread-3135031-1-1.html

  • 主 資深大佬 : KAAAsS

    @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

    @KAAAsS iOS 可以连 Android 开的热点,通过 Android 的自建 ZT 入网

  • 主 資深大佬 : KAAAsS

    @allenforrest 槽,那也太折腾了(

  • 資深大佬 : xumng123

    @KAAAsS 已经 ok 了,加入了 zerotier 加入 moon,支持了 vless+xtls 。github:xumng123

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具