2022年1月5日更新
- GitHub仓库的文档已更新,可正常运行。
- 配置文件里本地ssl证书设置好了后不起效果
前言
headscale是一款今年 2021 年出现的一款 Tailscale 控制服务器的开源实现。也是唯一的一款。望能发展壮大。
环境
- Ubuntu 18.04.3(理论上正常支持systemctl的Linux发行版本都能搭建)
- 端口8080
- 版本为v0.11
注意事项
官方的当前时间也是本文章撰写的时间。最新版本的配置文件不兼容版本号为v0.12.1
搭建过程
下载二进制文件与源代码
headscale_0.11.0_linux_amd64
Source code (zip)
上传headscale_0.11.0_linux_amd64文件到/usr/local/bin
并重命名为headscale
并赋予执行权限
|
|
登录服务器创建目录及文件
|
|
注意在0.12版本已不需要生成密钥会自动生成,或许需要安装wireguard
我们是0.11版本所以需要手动生成
|
|
最后目录结构如下
|
|
填写config.yaml内容,内容来源于解压的v0.11.0.zip压缩包config-example.yaml内容
填写derp.yaml内容内容来源于解压的v0.11.0.zip压缩包derp-example.yaml内容
撰写headscale.service
|
|
[Unit] Description=headscale After=network.target
[Service] WorkingDirectory=/etc/headscale ExecStart=/usr/local/bin/headscale serve
Disable debug mode
Environment=GIN_MODE=release
[Install] WantedBy=multi-user.target
|
|
systemctl daemon-reload systemctl enable headscale systemctl start headscale
|
|
headscale namespaces create myfirstnamespace
|
|
tailscale up –login-server YOUR_HEADSCALE_URL ##例子tailscale up –login-server http://headscale.gao4.top:8080
|
|
headscale -n myfirstnamespace nodes register -k YOURMACHINEKEY
|
|
echo ’net.ipv4.ip_forward = 1’ | tee /etc/sysctl.d/ipforwarding.conf echo ’net.ipv6.conf.all.forwarding = 1’ | tee -a /etc/sysctl.d/ipforwarding.conf sysctl -p /etc/sysctl.d/ipforwarding.conf
|
|
tailscale up –advertise-routes=192.168.0.0/24 –login-server=https://headscale.domain.com
|
|
headscale routes list –namespace $NAMESPACE $NODE_NAM
|
|
Route | Enabled 192.168.0.0/24 | false
|
|
headscale routes enable –namespace $NAMESPACE $NODE_NAME 192.168.0.0/24
|
|
headscale routes list –namespace $NAMESPACE $NODE_NAME
|
|
Route | Enabled 192.168.0.0/24 | true
|
|
tailscale up –accept-routes –login-server=https://headscale.domain.com
|
|