Tailscale 是一种基于 WireGuard 的虚拟组网工具,但其控制服务器是不开源的,对免费用户有诸多限制。而 Headscale 是 Tailscale 控制服务器的一款开源实现。
Headscale 由欧洲航天局的 Juan Font 使用 Go 语言开发,在 BSD 许可下发布,实现了 Tailscale 控制服务器的所有主要功能,可以部署在企业内部,没有任何设备数量的限制,且所有的网络流量都由自己控制。
安装
官方仓库提供有 .deb
安装包,手动下载最新包后上传至服务器,或通过下方命令(自行替换最新版本链接)直接下载至服务器:
1 | wget --output-document=headscale.deb \ |
使用 apt
工具安装 Headscale:
1 | sudo apt install headscale.deb |
修改配置
编辑 /etc/headscale/config.yaml
文件,一般修改如下项:
1 | server_url: http://<IP>:<port> # 服务器IP及服务监听端口 |
启动服务
1 | systemctl enable headscale # 开机自启 |
创建 Headscale 用户(租户)
1 | headscale users create <user> # 名称将体现在客户端account名 |
客户端接入
截至今天,Headscale 对各平台客户端的支持情况:
平台 | 支持性 | 文档 |
---|---|---|
Linux | Yes | 官方文档 |
OpenBSD | Yes | (参考 Linux) |
FreeBSD | Yes | (参考 Linux) |
macOS | Yes | 云原生教程 |
Windows | Yes | 官方文档 |
Android | Yes | 官方文档 |
iOS | Yes | 官方文档 |
OpenWRT | Yes | adyanth/openwrt-tailscale-enabler |
群晖 | Yes | tailscale/tailscale-synology |
威联通 | Yes | tailscale/tailscale-qpkg |
开启路由转发
在转发主机(如 OpenWRT)上启用 Tailscale 时加上 --advertise-routes
参数:
1 | tailscale up --accept-dns=false --advertise-routes=192.168.1.0/24 |
回到 Headscale 服务器,注册成功后查看路由列表:
1 | headscale routes list |
启用路由,-r
参数后接上方列表中需要开启路由的 ID:
1 | headscale routes enable -r 1 |
再次查看路由列表,显示已开启:
1 | headscale routes list |