【Tailscale】自建控制服务器Headscale的部署

用caddy+Headscale部署了Tailscale的控制服务器。

0. 概念

  • Headscale: 开源的Tailscale控制服务器
  • derp: 中继服务器
  • acl: 访问策略控制

1. 安装 Headscale

1
2
3
wget https://github.com/juanfont/headscale/releases/download/v<VERSION>/headscale_<VERSION>_linux_<ARCH>.deb

apt install ./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
2
3
example.com:443 {
reverse_proxy http://127.0.0.1:8080
}

其他的配置自行修改,比如ip_prefixes自定义私有网段,magicalDNS的自定义等。

3.运行Headscale

1
systemctl enable --now headscale

创建用户

1
2
headscale namespaces create <USERNAME>
headscale namespaces list

验证headscale是否搭建成功:访问 https://example.com/apple

4.客户端接入

linux客户端运行

1
2
# 首先启动tailscaled服务,然后:
tailscale login --login-server=<server-url>

其他平台都有图形界面可选择登录服务器

5. ACL修改

修改配置文件 /etc/headscale/config.yaml

1
2
3
policy:
mode: file
path: <PATH_TO_ACL>/acl.json

修改/acl.json,请自行修改用户名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"acls": [
{
"action": "accept",
"src": [
"default"
],
"dst": [
"default:*",
"default:*"
]
},
{
"action": "accept",
"src": [
"guest"
],
"dst": [
"guest:*"
]
}
]
}

重启headscale服务

6. 自定义derp服务器

由于headscale不支持在配置文件中使用关键词InsecureForTests跳过域名验证,如果需要跳过验证则需要配置从远程服务器获取derp

1
2
3
4
5
6
7
8
# /etc/headscale/config.yaml
derp:
urls:
- https://example.com/derp.json
#paths:
# - /etc/headscale/derp.yaml
update_frequency: 24h # 调试时把时间调短
# 其他配置项自行改动

对应的Caddyfile

1
2
3
4
5
6
7
8
9
10
# /etc/caddy/Caddyfile
example.com:443 {
handle /derp.json {
file_server
root <PATH_TO_DERP>
}
handle {
reverse_proxy http://127.0.0.1:8080
}
}

对应的derp.json (请自行修改)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"Regions": {
"900": {
"RegionID": 900,
"RegionCode": "rcd",
"RegionName": "Region Name",
"Nodes": [
{
"Name": "node",
"RegionID": 900,
"HostName": "baidu.com",
"IPv4": "<DERP_IPv4>",
"DERPPort": 10086,
"STUNPort": 10086,
"InsecureForTests": true
}
]
}
}
}

重启headscale服务

参考

【Tailscale】自建控制服务器Headscale的部署

https://psu.monster/post/2025/9400283750b1

作者

psu

发布于

2025-03-01

更新于

2025-03-01

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×