部署Tailscale的中转服务器的过程
了解Tailscale很久,但是基本很少用,常用的场景下基本没有办法直联,官方中继延迟太高了。后来突然有一天了解到,tailscale可以自行部署中转服务器derp,于是就打算部署一个来解决延迟太高的问题. 过程中基本是按照官方文档来进行操作,文档本身已经写的很好了,只是正好不是我的母语,tailscale我又没有特别的深入使用,同时又有不少专属名词,导致有点东西理解,因此大概折腾了一周左右,反反复复的折腾,才算是真正的搞好和理解。 下面是具体操作步骤: 打开云服务器的防火墙设置,当前教程下需要开启10443(tcp协议),3478(UDP协议), icmp协议的防火墙策略。以上防火墙策略是必须的。 在云服务上安装go应用程序,具体参考go官网 执行一下命令,安装并编译最新的derper程序。(这个步骤可能在你的tailscale无法连接到这个中继服务器的时候重复执行,以保持与tailscale各个客户端的兼容性) go install tailscale.com/cmd/derper@latest 安装certbot程序(其实就是Let`s Encryept)来获取https证书, 具体安装步骤见certbot官网 执行一下命令获取https证书,一切按照默认继续下去即可。具体意思就是单独获取你域名的nginx证书,并保存到指定路径。 sudo certbot certonly --manual --preferred-challenges dns -d <你的域名> 上一步获取到https证书之后,会打印出来证书保存的路径。其中fullchain.pem和privkey.pem分别代表你证书的crt和key,在很多地方使用https证书的时候会指定具体的crt和key文件路径。我们通过ln -s命令分别创建privkey.pem的副本,并重命名为.crt和.key的后缀文件。 sudo ln -s <cerbot证书保存路径>/fullchain.pem <cerbot证书保存路径>/<你的域名>.crt sudo ln -s <cerbot证书保存路径>/privkey.pem <cerbot证书保存路径>/<你的域名>.key 启动derper程序开启中继服务 sudo <go的bin目录>/derper -a :10443 --http-port=-1 --hostname=<你的域名> -certmode manual -certdir <cerbot证书保存路径> --verify-clients -a :10443 指定https服务的监听端口为10443,且监听所有网口 http-port=-1 不开启http服务 hostname 指定你的derp中继服务的对外域名 certmode manual代表手动管理https证书 certdir 指定手动管理的https证书的具体路径 –verify-clients 代表需要校验tailscale的客户端,这个可以去掉(第8步无需执行)。但是就意味着你的服务谁都可以使用 在云服务器上安装tailscale客户端,并登录授权,具体参考官网。...