参考及注意事项
Headscale协调服务器搭建参考: Tailscale纯IP的双栈DERP和Headscale协调服务器搭建
参考: 两种方式自建Tailscale的 DERP 中继教程
注意国内服务器域名需要备案
搭建使用鸡仔云的成都轻量NAT,具有三线入口,无惧QOS
创建derper服务的代码中,已经开启了放白嫖,所以必须将服务器加到tailscale中后才能让其它机器使用自建的derp中转服务器中
derp搭建官方教程: Custom DERP Servers · Tailscale Docs
derp搭建: DERP servers · Tailscale Docs
官方安装文档: Official releases - Headscale
参考: 两种方式自建Tailscale的 DERP 中继教程
非常重要的注意事项
如果使用NAT机搭建derp中转服务器,需要注意,在
创建derper服务
时,里面的端口要填NAT本地端口,在Access Contorls
中要填写映射出去的端口,这一点非常重要。
举例
- 映射端口
NAT本地端口 | NAT映射端口 |
---|---|
3478 | 10001 |
33445 | 10002 |
创建derper服务
1
2
3
4
5
6
7
8
9
10
11
12
13cat > /etc/systemd/system/derp.service <<EOF
[Unit]
Description=TS Derper
After=network.target
Wants=network.target
[Service]
User=root
Restart=always
ExecStart=/root/go/bin/derper -hostname aaa.com -a :33445 -http-port -1 -certmode manual -certdir /usr/local/cert --verify-clients
RestartPreventExitStatus=1
[Install]
WantedBy=multi-user.target
EOFAccess Contorls
1 | // *************************主要是以下部分**************************** |
- 检查中转服务器是否搭建成功
1 | # 浏览器输入下面链接(注意是https协议),应该可以看到中转服务器在运行 |
搭建流程
1 | # 查看架构 |
DERP 搭建
打开33445端口(tcp),3478端口(udp),其中33445端口可以更改
- 安装go
1 | # go官网:https://go.dev/dl/ |
- 拉取编译derper
1 | # 拉取编译derper中转服务器 |
- 上传域名证书
1
2
3# 创建/usr/local/cert文件夹
# 创建其它文件夹也可以,对应后面的文件夹也需要改动
sudo mkdir /usr/local/cert
将 ssl 证书上传到/usr/local/cert
,只需要上传.key
和.crt
文件
注意:
- 上述创建的证书文件夹,只有 root 账号才有权限操作上传证书
- 如果没有
.crt
文件,可将.pem
后缀改为.crt
3.证书的名称要和你的域名保持一致假设域名为
aaa.com
,则证书名为aaa.com.crt
,私钥名为aaa.com.key
- 创建
derper
服务
1 | cat > /etc/systemd/system/derp.service <<EOF |
注意:
/root/go/bin
这个路径要根据实际情况更换,这个路径是编译的derper位置,这个路径不是/root/go/bin
就是/usr/local/go/bin
- 启动derper
1 | # 自启动derper服务 |
- 检查中转服务器是否搭建成功
1 | # 浏览器输入下面链接(注意是https协议),应该可以看到中转服务器在运行 |
注意:
aaa.com
要换成自己的,端口33445
也要根据实际情况更换
- Access Contorls
1 | # 去官方管理界面Access Contorls中写入如下命令 |
注意:
aaa.com
要换成自己的,端口33445
也要根据实际情况更换注意: 只需要在官方管理界面Access Contorls中加入如下部分代码,并做相应更改
1 | *************************主要是以下部分**************************** |
- 防止白嫖关键步骤
1 | # 服务器安装tailscale |
- 检查是否连接中转服务器
1 | # 查看是否已经连接中转服务器 |
如下为存档
- 创建脚本
1 | # 启动脚本 |
1 | #!/bin/sh |
注意:
#!/bin/sh
中的#
也需要粘贴进去,在代码中不是注释的意思注意: 域名
aaa.com
要换成自己的,端口33445
也要根据实际情况更换注意:
cd /root/go/bin
这个路径也要根据实际情况更换,这个路径不是在/root/go/bin
就是在/usr/local/go/bin
注意: 参数
-verify-clients
用来防止中继服务被滥用的(被白嫖);如果你有这方面需求,可去掉这个参数注意:
Esc
退出编辑模式,:wq
保存并退出
1 | # 停止脚本 |
1 | #!/bin/sh |
注意:
#!/bin/sh
中的#
也需要粘贴进去,在代码中不是注释的意思
1 | # 给启动脚本和停止脚本赋权 |
- 创建
derper
服务
1 | sudo vim /etc/systemd/system/derper.service |
注意:
/root/go/bin
这个路径要根据实际情况更换,这个路径不是/root/go/bin
就是/usr/local/go/bin