Tailscale 的服务端是不开源的,超过 20 个设备就需要付费了,并且Tailscale的服务器不在国内。Headscale 是个第三方开源版本的 Tailscale 的服务端,除了「网站界面」之外该有的功能都有,因此我们可以使用Headscale自建私有服务。
开源地址:https://github.com/juanfont/headscale
矿神SPK打包,参数设置UI来自@裙下孤魂。支持x86_64、ARMv8,支持DSM6、7
近期考虑怎么加个UI界面,候选项目:https://github.com/gurucomputing/headscale-ui
注意:如从0.16.4升级到0.17.1前请先参数配置中增加noise后保存,再升级套件,否则升级后无法启动。
noise:
private_key_path: ../config/noise_private.key
矿神SPK源内安装
矿神群晖SPK套件中心 提供各类国内常用的DSM6、DSM7套件,目前上架DSM7套件:Aria2、ffmpeg、Jellyfin、qBittorrent、Syncthing、Transmission等等,持续更....
套件截图
参数设置UI界面
使用教程 2023.2.27更新
1、套件默认的配置文件目录说明
headscale需要的配置文件已建好了,后续套件升级过程会自动备份还原
主配置文件 config.yaml 位于 /var/packages/headscale/target/bin/
db.sqlite private.key 位于 /var/packages/headscale/target/config/
2、HeadScale安装的宿主机要求
有公网IP,如是动态公网IP还需要有DDNS解析
需要公网IP端口映射的端口:8181,也就是参数中的:listen_addr 8181,可以自行修改按实配置
重点重点重点!!!:端口映射OK后,例如参数 8181 对外映射为 18181,那么HeadScale参数配置中:server_url: http://0.0.0.0:8181 需要修改为 http://你的公网IP或者域名:18181。参数中的其它0.0.0.0不要修改,只需要改:server_url!!!(旧版本升级后如果如果无法访问,修改其它参数中 127.0.0.1 为 0.0.0.0)
如有域名需ssl连接,请自行修改参数中域名证书的位置,建议放到套件config目录里:注意修改文件权限!
## Use already defined certificates:
tls_cert_path: ""
tls_key_path: ""
或者使用HeadScale配置中的Let's encrypt自动申请证书:域名提前自行解析到公网IP
# Email to register with ACME provider
acme_email: ""
# Domain name to request a TLS certificate for:
tls_letsencrypt_hostname: ""
3、创建分组空间 namespace
举例分组名称 imnks,ssh连接宿主群晖执行:
cd /var/packages/headscale/target/bin
headscale namespaces create imnks
#查看已建的空间
headscale namespaces list
4、Tailscale客户端连接到HeadScale
群晖安装Tailscale套件后无需登录,ssh连接客户端群晖执行:
http://你的公网IP或者域名:8181,这个按照实际端口映射情况修改,比如内网8181映射为18181,对外就是18181
cd /var/packages/Tailscale/target/bin
tailscale up --login-server=http://你的公网IP或者域名:8181 --accept-dns=false
复制上面执行后得到的网址,修改127.0.0.1为服务端的公网IP或者域名及对外映射端口,在任意的浏览器打开访问
复制上面的代码,修改 USERNAME 为你的 分组空间名称,ssh连接宿主群晖执行:
cd /var/packages/headscale/target/bin
headscale nodes register --user USERNAME --key nodekey:123xxx
#查看已注册的设备
headscale nodes list
PS说明:群晖端如需恢复到连接Tailscale官方,先!!!卸载套件,再SSH连接群晖执行,之后重新安装即可。
#DSM7 (volume1指套件安装存储空间,自行核对)
cd /volume1/@appdata
#DSM6
cd /usr/syno/etc/packages
rm -rf Tailscale
5、Windows客户端连接到HeadScale
Windows客户端所在的电脑访问:http://你的公网IP或者域名:8181/windows
↓↓↓↓↓↓以下内容是旧版情况,新版本的HeadScale只需要打开终端或者Powershell类似群晖加入即可↓↓↓↓↓↓
点击 Windows registry file 下载注册表:http://你的公网IP或者域名:8881/windows/tailscale.reg
修改127.0.0.1为服务端的公网IP或者域名,双击运行reg文件,按照提示操作导入Windows系统
安装和运行官方版本的Tailscale客户端,并点击图标打开网页
类似获取到到加入秘钥,在HeadScale服务器上ssh连接执行:修改 USERNAME 为你的 分组空间名称
cd /var/packages/headscale/target/bin
headscale nodes register --user USERNAME --key nodekey:123xxx
#查看已注册的设备
headscale nodes list
PS说明:Win端如已连接Tailscale官方,卸载软件,删除 C:\Users\用户名\AppData\Local\Tailscale,重新安装即可。
6、linux、mac客户端加入教程
请查看下面的文档和本文末尾的参考文章,不再一一叙述
https://github.com/juanfont/headscale/blob/main/docs/android-client.md
https://github.com/juanfont/headscale/blob/main/docs/apple-client.md
7、关于打通多个局域网互访
参考:http://junyao.tech/posts/a5fad85a.html
如果其它节点设备没法访问群晖IP,在安装了Tailscale的群晖执行:
#启用TUN
/var/packages/Tailscale/target/bin/tailscale configure-host
synosystemctl restart pkgctl-Tailscale.service
效果测试
电脑端访问HeadScale给群晖分配的IP http://100.64.0.1:5000/
参考文章
http://junyao.tech/posts/e8e7dd51.html
https://icloudnative.io/posts/how-to-set-up-or-migrate-headscale/
https://lxnchan.cn/headscale.html