撸了个 Tailscale 的国内发行版,分享给大家

2022-12-05 13:49:13 +08:00
 fortitudeZDY

楼主是一名网络通信领域的老程序员,先前在大厂工作过一段时间,因为期望陪伴家人且亦到了卷出病也卷不动的年龄,机缘巧合下回到定居地工作。

因为工作强度降低以及需要调理身体的缘故,在工作之余,撸了个 Tailscale 的国内发行版,目前感觉基本能用,所以分享出来。

产品定位

Tailscale 的国内发行版,提供国内 SSO 认证(当前是微信)及 P2P 打洞失败时的国内中转能力;为用户提供易用的(扫码入)、安全的终端内网互联工具。

技术背景及现状

总体上是复用了 Tailscale + Headscale 的核心代码,做了些外围界面的微小工作(此处致敬一下长 者 ,可惜加不了 1s 了)。

管理平台方面,主要利用 vue 以及 go 来开发 web 前端及后台,文档部分用到了开源 cms ( strapi ) + nuxt 来实现静态化。

桌面 app 方面,主要是基于 Tailscale 内核,通过 go build 工具来生成静态库(从 Tailscale Android 代码学习得到),基于 tauri 以及 rust ffi 来实现跨平台桌面 App 构建(注:此桌面 App 计划整理注释以及代码后开源),目前支持 Linux/Windows/Mac(含 M1 及之后芯片)的桌面应用。

Android app 方案,则主要针对 Tailscale 开源代码进行汉化,集成微信认证能力。

Ios/IPad 暂时没有精力开发,因为目前及未来仍会兼容 Tailscale 官方客户端,因此可参考 Headscale 的方式接入。

免费用户及付费策略

因为这个产品算是楼主的全干(全水)工程师的一个尝试,个人的应用主要是连接自己的各个云服务器以及家用 NAS 同步(之前被百度网盘搞伤了),所以从自己的使用来看,流量需求并不高,并且 Tailscale 的 subnet router 等高级功能尚未集成出来,因此当前仅有免费套餐提供出来。

详细的免费用户规则,请参考官网链接: https://xedge.cc/doc/faq/2

关于付费,楼主觉得主要还是从功能(比如楼主考虑的提供短域名池,供用户自定义网络子域名以及终端别名)、流量规格层面进行约束,以便能够维持这个服务的长期运行,这部分功能会根据运行情况进一步优化及开发。

关于 Tailscale ,在 V2EX 上已经有较多讨论了,这里就不再介绍了;楼主做的国内发行版产品官网为: https://xedge.cc

上手文档为: https://xedge.cc/doc/quickstart/1

期待这个东西能够帮助到大家,如果有问题,请在本楼反馈,以及参考前面的免费用户规则反馈即可。

9540 次点击
所在节点    分享创造
65 条回复
fortitudeZDY
2023-04-12 16:59:52 +08:00
感谢近期用户群里的用户反馈:

最近将桌面 App 版本进行了一次升级,解决了 Windows/MacOS 无法作为中转节点的 bug 。

另外将 Android 设备也拉起到与桌面版本相同的 tailscale 内核。

欢迎关注这个应用的朋友继续试用反馈哈:)
faceair
2023-04-21 00:08:38 +08:00
在 macOS 端也是可以用命令行来登录的,在点击 UI 的 get started 之后,不点 join network ,然后去命令行执行

/Applications/Tailscale.app/Contents/MacOS/Tailscale up --login-server https://login.xedge.cc

就可以连上了,目前官方的客户端体验比 xedge-tui.app 好不少
fortitudeZDY
2023-04-21 13:52:04 +08:00
@faceair 感谢分享啊,官方会一直兼容下去的,桌面 app 肯定还有不少不足的地方,我这里也在逐渐优化:)
fortitudeZDY
2023-06-08 09:03:14 +08:00
更新一下前面承诺过的进展,xEdge iOS 版本已经适配完成(因复用 tailscale android 代码,整体操作模式类似,且同样增加了微信认证能力),目前已经投放到 test flight 渠道,如有需求,欢迎发送您的联系邮箱到我们的邮箱( base64 ) aW9zQGdhbGF4bmV0LmNj 我来添加到 test flight 测试组,即可使用该 app 。
Danswerme
2023-06-10 20:23:31 +08:00
你好楼主,请教一下 Tailscale 客户端在使用出口节点模式之后,所有的流量经过出口节点进行转发时被 NAT 了一次,有办法让出口节点只进行流量转发而不 NAT 吗?
fortitudeZDY
2023-06-11 20:15:48 +08:00
@Danswerme 如果不 nat ,目的机器上怎么回源呢?如果你可以通过给目的机器配置路由解决这个,那么你应该可以通过直接配置路由到 ts 接口,他可能没有做检查
Danswerme
2023-06-11 20:47:40 +08:00
@fortitudeZDY 好的,之前用的 ZeroTier ,我是在出口节点所在局域网的路由器上做了静态路由;我研究下怎么禁用出口节点 ts 接口的 NAT 吧。
Danswerme
2023-06-11 21:12:22 +08:00
@Danswerme 解决了,看源码里是对 mark 之后的包进行了 MASQUERADE ,在出口节点上将 iptables ts-forward 链上的两条 mark 0x40000/0xff0000 规则删除即可。
fortitudeZDY
2023-06-12 11:14:34 +08:00
@Danswerme 嗯,非用户态模式下( linux 下默认),就是用的 iptables 做了 maquerade ,你到目标机器上是回指路由到出口节点吗?
fortitudeZDY
2023-06-12 11:15:18 +08:00
@fortitudeZDY 稍微更新下,apple 通过了 public beta test flight ,这样可以直接访问 https://testflight.apple.com/join/wXThdIaM 这个链接进行试用。
Danswerme
2023-06-12 12:59:11 +08:00
@fortitudeZDY 是的,出口节点的 Linux 机器上默认路由指向了局域网内的一台路由器,然后我在路由器上加了一条 Tailscale 网段的静态路由,网关指向出口节点的局域网 IP 。
Danswerme
2023-06-12 19:12:15 +08:00
再次更新一下吧,希望能帮到需要的人,是我没有仔细看文档。tailscale 提供了禁用 NAT 的 cli 选项,执行 tailscale up 时加上 --snat-subnet-routes=false 即可。
fortitudeZDY
2023-06-28 09:04:45 +08:00
继续更新一下,目前 xEdge iOS 免费应用已经成功上架 App Store ,受 VPN 应用国内上架限制,目前在美、新、港、台四区上架,欢迎大家试用,如之前有朋友用的 test flight 版本,也可更新到此版本,避免受 90d 试用限制。
Apol1oBelvedere
2023-07-11 15:43:58 +08:00
@fortitudeZDY #53 公司内网有各种审计和检测系统,会不会通过这种组网方式把我家庭网络监控到(如各种设备信息,拓扑等)? Todesk 不会出现这种情况是因为流量全部走了服务器。
fortitudeZDY
2023-07-13 14:56:59 +08:00
@Apol1oBelvedere 我觉得如果公司在你电脑上有装软件,理论上有可能扫到,普通是外部机器,理论上不太会
PowerDi
2023-08-19 00:31:17 +08:00
@shinko #1 但我感觉问题在于,国内中转网速不能实用
fortitudeZDY
2023-10-17 09:42:18 +08:00
国庆期间解决了 iOS app 目前的已经知问题,上一个版本糊的有点渣,今天通过 apple 大爷的审核(为此强制在 App 首次安装前增加了信息收集确认按钮),欢迎有需要的朋友取用。

因 iOS 与 android 共享 gioui 框架,对 android 版本也同样进行了升级。
wm5d8b
336 天前
有 arm64 docker 版吗,容器化部署更容易些
fortitudeZDY
336 天前
@wm5d8b 基于 tailscale 撸了一个出来,托管在阿里云上,仅替换了镜像中的登陆服务器地址,其他命令行同开源版本。

registry.cn-hangzhou.aliyuncs.com/xedge/xedge

另外 xEdge 最新已经支持认证 key ,也可以用来认证 docker ,欢迎试用。
fdghjk
330 天前
楼主你好,请问这个和官方的客户端冲突吗?安装了你这个 官方的那个是不是必须要卸载呢

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

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

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

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

© 2021 V2EX