撸了个 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

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

9735 次点击
所在节点    分享创造
65 条回复
fortitudeZDY
2023-01-22 11:11:57 +08:00
各位朋友新春快乐,预祝大家兔年大展宏兔:)

近期把 Tailscale 的 subnet router 功能移植过来了,目前控制后台已经上线该功能,但终端方案暂仅支持 Linux 终端。

具体使用可参考如下文档:

https://xedge.cc/doc/usecase/3
Reserdog
2023-02-04 09:44:14 +08:00
@fortitudeZDY 嗨,楼主,方便留个联系方式吗?
Reserdog
2023-02-04 10:00:54 +08:00
@fortitudeZDY 发现楼主是前公司兼兄弟部门的,有事情想详聊,我邮箱 fengk1031@gmail.com
fortitudeZDY
2023-02-06 11:45:38 +08:00
@Reserdog 欢迎交流,我邮箱是(base64 decode please):Zm9ydGl0dWRlLnpoYW5nQGdtYWlsLmNvbQ==
luckjoe680
2023-02-07 21:02:22 +08:00
@lgjx123 是不是没有禁用过期啊
hanguofu
2023-02-08 00:33:25 +08:00
文档写得很详细:)
blackmolycat
2023-02-08 11:14:24 +08:00
@luckjoe680 嗯,发现不是哈。是因为多 vpn 配置的话,需要手动到 vpn 里面选择配置,tailscale 不会自己切换配置。
例如我用着小火箭,用完关了切换到 tailscale ,需要自己到 vpn 配置那里切换到 tailscale ,不然进客户端就会出现获取不到配置的情况...安卓下没有这个问题。
qiabaobao
2023-02-09 17:12:48 +08:00
大佬,我想问下,我用官方源码编译出来的 tailscale ,为什么没法用,但是 mac 可以,具体差异就是 windows 虚拟网卡的时候分配的 ipv4 设置失败,但是 mac 成功了
fortitudeZDY
2023-02-10 10:18:08 +08:00
@qiabaobao 是直接用 go 代码编译出来的吗?是的话你可能要把 wintun.dll 这个库放到同目录下试试
qiabaobao
2023-02-15 10:21:43 +08:00
@fortitudeZDY 不行,我想问下大佬你是怎么支持 windows 的,加个 wx 交流一下 Y29zbW9zbl9u(Base64)
kumiko
2023-03-17 14:07:46 +08:00
用着用着突然出现
程序异常,错误 TypeError: Cannot convert undefined or null to object 请联系官方支持。

怎么办,卸载重启试过了没用。。。
fortitudeZDY
2023-03-17 19:28:02 +08:00
控制台里能反馈下 network id 吗?可以私发我
abbottcn
2023-03-21 16:16:04 +08:00
试了好多次,
Mac mini (M1, 2020),
一直提示,
xedge-tui.app” is damaged and can’t be opened. You should move it to the Trash.

下载了多次, 依旧是这个问题.

另一个是 Intel 处理器,
运行之后, 提示信息如下:
程序异常,错误 TypeError: Object.entries requires that input parameter not be null or undefined 请联系官方支持。
fortitudeZDY
2023-03-21 22:30:36 +08:00
@abbottcn 抱歉,今天我这里也试了一下,看起来好像我本地编译出的 dmg 可以安装,但是上传到 oss 上重新下载后,因为来源的问题好像就安装不生效了。查了下 tauri 的资料,可能是需要 code signing :( 这个我最近在抽时间研究 ios 的 app 开发,到时会一并处理一下。

intel 的您可以确认下是否是以 sudo 方式启动的,如果没有 sudo 执行,是无法正确工作的。
abbottcn
2023-03-22 13:47:19 +08:00
@fortitudeZDY "Intel 的您可以确认下是否是以 sudo 方式启动的,如果没有 sudo 执行,是无法正确工作的。"

的确是采用 sudo 方式运行的.

GUI 中, 链接状态显示“程序异常,错误 TypeError: Object.entries requires that input parameter not be null or undefined 请联系官方支持。“

本机安全内网 IP 显示为 100.64.0.66

至少在元旦之前就是这个样子.

当然, 03-22 下载的安装包, Intel 版本, 也是同样错误信息呀.
fortitudeZDY
2023-03-22 15:58:05 +08:00
刚才才群里确认了下,如果网络中有单节点的话,app 前端会有问题。另外那个貌似现在 apple 要求 app 需要公证了,这个我申请完开发者后,到时签名下
fortitudeZDY
2023-03-23 12:06:16 +08:00
@abbottcn

这个应该是 m1 mac 的安全策略控制的,因为目前 app 不是通过 app store 分发的,可以用如下命令来关闭校验:

sudo xattr -r -d com.apple.quarantine /Applications/xedge-tui.app

信息来自这个 mac 下同样基于 tauri 的 ChatGPT app:)

https://github.com/lencx/ChatGPT/issues/663
abbottcn
2023-03-27 12:16:27 +08:00
@fortitudeZDY 苹果芯片的机器, 如此处理之后, 可以使用. 网络正常. 不够那个客户端, 显示的确有点问题. :)
fortitudeZDY
2023-03-27 14:56:58 +08:00
@abbottcn 嗯,近期会发布一个新的版本,解决掉这个问题,谢谢反馈啊
fortitudeZDY
2023-03-30 09:46:04 +08:00
感谢坛友们的热心试用,这几个月一直在关注用户的反馈,对于我这样一个业余时间投入的小产品,能有坛友们愿意花时间试用,还是很感谢大家的。

近期图形版本做了一个大版本升级,控制中心也做了一定的优化。主要包括如下改进:
1 、支持发布路由;
2 、支持登出账号重新认证;
3 、Windows/MacOS 增加 tray icon 以支持隐藏窗口;
4 、升级 tailscale 内核至 1.38.2 ;
5 、bugfix ;
6 、增加在线反馈问题能力。 

希望大家继续支持,有问题也可以继续反馈。

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

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

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

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

© 2021 V2EX