一、概述
Tailscale 是一款基于 Wireguard协议构建的现代异地组网工具,和使用原生wireguard不同的是Tailscale支持NAT穿透。使用Tailscale几乎支持90%的NAT网络穿透,在不支持NAT穿透的网络情况下则可以通过DERP进行流量中继,这几乎是一个当下非常完美的组网方案。Tailscale除了没有开源Windows和macOS/iOS的GUI客户端,但是DERP和控制服务器都能够通过自建的方式进行自托管。Tailscale控制服务器充当 Tailscale 网络中节点的 Wireguard 公钥交换点。它分配客户端的 IP 地址、在每个用户之间创建边界、允许用户之间共享机器,并公开节点的通告路由。本文即将介绍Headscale,它是由 Kristoffer Dalby 和 Juan Font开发基于Tailscale控制服务器的替代开源版本
二、使用容器构建Headscale
参数说明
-p 8080:8080
登录地址使用端口-v ~/headscale/config:/etc/headscale/
挂载配置目录-v ~/headscale/data:/var/lib/headscale
挂载存储目录
推荐使用命令
docker exec -it headscale headscale configtest
测试配置语法是否正常docker exec -it headscale headscale apikey create
创建apikey用于登录web界面
三、安装WEB-UI
目前推荐使用的Web UI - Headscale,本教程搭建的为headscale-admin
参数说明
-p 8000:80
8000端口用来做反向代理
四、配置nginx
注意查看这段nginx配置文件,需要你准备SSL证书到/etc/nginx/ssl/目录,请提前准备,你也可以指定使用其它目录
当然你也使用除nginx之外的反向代理工具,配置好nginx之后,使用浏览器进行访问 https://{替换成你的域名} 即可,然后在设置里面配置好api key,如何获取在第二部分有提供命令
五、headscale配置文件简单讲解
listen_addr: 127.0.0.1:8080
headscale监听端口ip_prefixes:
客户端地址划分derp
下的urls
为Tailscale官方DERP服务器节点信息derp
下的paths
可以自定义为你自己的DERP节点randomize_client_port
是否开启随机端口号,建议开启