TailScale
介绍
TailScale
Tailscale 是一款基于 WireGuard 协议的、易于使用的、安全的网络连接工具,它允许用户快速创建自己的虚拟私人网络,实现设备间的安全连接和访问控制。
HeadScale
私有的 Tailscale 控制平台,可以用来管理 Tailscale 的用户、节点、ACL 等信息。
如何配置
HeadScale
wget --output-document=headscale.deb \
https://github.com/juanfont/headscale/releases/download/v<HEADSCALE VERSION>/headscale_<HEADSCALE VERSION>_linux_<ARCH>.deb
- 安装
sudo dpkg --install headscale.deb
- 启动
sudo systemctl enable headscale
- 创建一个 namsespace
headscale namespaces create default
- 重启: 长时间运行,会导致延迟变高
systemctl restart headscale
Tailscale
- 下载安装包参考 (opens in a new tab),更多安装包参考 (opens in a new tab)
Mac 用户额外配置一下,方便使用命令行
>alias tailscale="/Applications/Tailscale.app/Contents/MacOS/Tailscale"
- 登录:tailscale login --login-server http://x.x.x.x:8080 (opens in a new tab)
- 记得修改
UserNamespace
为default
配置 Nginx 用于给 derp 加载 url 配置
docker run -d -p 8081:80 -v ~/.derp-configs:/usr/share/nginx/html --name mynginx nginx
配置 derp(可以和 HeadScale 在同一台机器上)
- 使用第三方封装的允许 ip 的镜像
docker run --restart always -p 12345:12345 -p 3478:3478/udp -e DERP_ADDR=:12345 --name derper -d ghcr.io/yangchuansheng/ip_derper@sha256:56541aeb1631a126588c1ca04f7a7505db2bc4878b3934150bfa5846f7c14bfa
添加 derp 到 Headscale 中
- 在
~/.derp-configs/derp.json
{
"Regions": {
"901": {
"RegionID": 901,
"RegionCode": "ali-sh",
"RegionName": "Aliyun Shanghai",
"Nodes": [
{
"Name": "901a",
"RegionID": 901,
"DERPPort": 12345,
"stunport": 3478,
# 服务器ip地址
"HostName": "xxxx",
# 同上
"IPv4": "xxxx",
"InsecureForTests": true
}
]
},
// 下面配置,只有配置ddns的时候,需要加
"902": {
"RegionID": 902,
"RegionCode": "ddns",
"RegionName": "Over DDNS",
"Nodes": [
{
"Name": "902b",
"RegionID": 902,
"DERPPort": 8443,
"HostName": "xxxx.tpddns.cn",
"InsecureForTests": true
}
]
}
}
}
-
修改 HeadScale 配置文件
/etc/headscale/config.yaml
,添加到derp.urls
中:http://xxxx/derp.json
-
重启 HeadScale
systemctl restart headscale
- 在客户端查看 derp 节点是否生效
tailscale netcheck
其他
- 重命名节点
headscale node rename <NODE ID> <NEW NAME>
教程参考
- Tailscale 基础教程:Headscale 的部署方法和使用教程 (opens in a new tab)
- 自建 tailscale 服务接入 headscale 服务器实现异地组网 (opens in a new tab)
- headscale 服务自建 derp 服务器,加速双端连接效率 (opens in a new tab)
- HeadScale 文档 (opens in a new tab)
遇到的问题
- Cannot register machine: failed to find user in register machine from auth callback, User not found
修改 USERNAME 为 default
- 新版本的 derp 好像不能用,目前用的这个版本的
ghcr.io/yangchuansheng/ip_derper@sha256:56541aeb1631a126588c1ca04f7a7505db2bc4878b3934150bfa5846f7c14bfa