【Tailscale】自建控制服务器Headscale的部署
用caddy+Headscale部署了Tailscale的控制服务器。
0. 概念
- Headscale: 开源的Tailscale控制服务器
- derp: 中继服务器
- acl: 访问策略控制
1. 安装 Headscale
1 | wget https://github.com/juanfont/headscale/releases/download/v<VERSION>/headscale_<VERSION>_linux_<ARCH>.deb |
2. 修改配置文件
1 | vim /etc/headscale/config.yaml |
listen_addr
自定义,我这里改为了 http://127.0.0.1:8080
server_url
修改为外部访问headscale服务的url,比如 https://example.com:443
对应的Caddyfile
如下:
1 | example.com:443 { |
其他的配置自行修改,比如ip_prefixes
自定义私有网段,magicalDNS
的自定义等。
3.运行Headscale
1 | systemctl enable --now headscale |
创建用户
1 | headscale namespaces create <USERNAME> |
验证headscale是否搭建成功:访问 https://example.com/apple
4.客户端接入
linux客户端运行
1 | # 首先启动tailscaled服务,然后: |
其他平台都有图形界面可选择登录服务器
5. ACL修改
修改配置文件 /etc/headscale/config.yaml
1 | policy: |
修改
1 | { |
重启headscale服务
6. 自定义derp服务器
由于headscale不支持在配置文件中使用关键词InsecureForTests
跳过域名验证,如果需要跳过验证则需要配置从远程服务器获取derp
1 | # /etc/headscale/config.yaml |
对应的Caddyfile
1 | # /etc/caddy/Caddyfile |
对应的derp.json (请自行修改)
1 | { |
重启headscale服务
参考
- [1] ACL规则示例
【Tailscale】自建控制服务器Headscale的部署