搭建自己的DERP
编译DERP
git clone https://github.com/tailscale/tailscale cd tailscale git branch -a |findstr 1.34 git checkout -b v1.34 remotes/origin/release-branch/1.34 cd cmd/derper/ go build cp derper /usr/local/bin/derper
编辑derp.yaml
nano derp.yaml
# If you plan to somehow use headscale, please deploy your own DERP infra: Custom DERP Servers regions: 900: regionid: 900 regioncode: yejiantai regionname: tencent cloud shanghai nodes: - name: cecyw-derp regionid: 900 hostname: XXX.XXX.XXX.XXX ipv4: XXX.XXX.XXX.XXX stunport: 3478 stunonly: false derpport: 8081
cp derp.yaml /etc/headscale/derp.yaml 修改/etc/headscale/config.yaml derp: urls: # - https://controlplane.tailscale.com/derpmap/default # 注释禁用掉原先的derp paths: - /etc/headscale/derp.yaml #使用自己的derp yaml文件
regions 是 YAML 中的对象,下面的每一个对象表示一个可用区,每个可用区里面可设置多个 DERP 节点,即 nodes。 每个可用区的 regionid 不能重复。 每个 node 的 name 不能重复。 regionname 一般用来描述可用区,regioncode 一般设置成可用区的缩写。 hostname填写的是域名的地址 stunonly: false 表示除了使用 STUN 服务,还可以使用 DERP 服务。
将申请的证书和域名绑定好之后放入到/data/cert目录下 hostname的内容必须和域名一直一致,这边-a=:8081和前面的derpport: 8081一致,没有使用默认的443端口
derper -hostname=XXX.XXX.XXX.XXX -c=/etc/headscale/derper.conf -a=:8081 -http-port=-1 -certdir=/data/cert -certmode=manual -stun
防火墙放行8081,3478端口
启动derp打开网址https://XXX.XXX.XXX.XXX:8081能够正常显示网页,说明derp中继服务已经安装完成
客户端输入tailscale netcheck查看derp是否显示正常
客户端输入tailscale ping xxx.xxx.xxx.xxx 查看是否通过自己设置derp转发