0. 准备工作
0.1 检测我们是否需要Derper
在部署好之后(参考下面教程部署),我们使用命令行执行如下:
tailscale ping <your client name>
0.1.1 需要搭建Derper
如果是这样的,说明是P2P打不通,那么你需要Derper(有DERP括弧的)
0.1.2 不需要Derper
如果是这样的,那么你不需要搭建Derper
0.2 搭建准备工作
在搭建开始之前,请先拿到实名认证的域名和证书
[DDNS][SSL][HTTPS]阿里云ACME Ubuntu22.04Server 安装教程
1. TaileScale部署
curl -fsSL https://tailscale.com/install.sh | sh
2. Derper部署
我们使用Docker-compose,这里是我的配置文件,这里直接复制过来改一改就行了
version: '3.8'
services:
derper:
image: fredliang/derper # 如果你无法访问外网,可以使用dockerpull.org/fredliang/derper
container_name: derper
restart: always
environment:
- DERP_CERT_MODE=manual # 手动设置证书
- DERP_ADDR=:13477 # 中转端口
- DERP_HTTP_PORT=-1 # 用不到也可以填入 -1 关闭 HTTP 服务
- DERP_STUN_PORT=13478 # STUN 打洞端口
- DERP_DOMAIN=xxx.top # 服务器域名
- DERP_VERIFY_CLIENTS=true # 验证客户端身份,防止白嫖
ports:
- "13477:13477"
- "13478:13478/udp"
volumes:
- /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock # tailscale 客户端进程,用于验证客户端身份
- /home/vernon/cert_files:/app/certs # SSL 证书存放地址
关于证书部分需要重点说明:假设你的域名是
xxx.com
,那么证书的名称必须是xxx.com.crt
,一个字符都不能错!同理,私钥名称必须是xxx.com.key
,一个字符都不能错!
之后执行
docker-compose up -d
看一下运行情况
docker logs -f derper
3. Tailscale配置
进入后台,点击Access Control
管理界面:https://login.tailscale.com/admin/acls/file
官方文档:https://tailscale.com/kb/1118/custom-derp-servers
在最后添加
"derpMap": {
"OmitDefaultRegions": false,
"Regions": {
"900": {
"RegionID": 900,
"RegionCode": "taxue_deper",
"RegionName": "Beijing",
"Nodes": [
{
"Name": "1",
"RegionID": 900,
"HostName": "derper.taxuevernon.top",
"DERPPort": 13477,
"STUNPort": 13478,
"STUNOnly": false,
},
],
},
},
},
4. 打开Ubuntu端口
sudo ufw allow 13477
sudo ufw allow 13478
5. 打开端口转发
我这里使用的是Openwrt,打开13477,13478的端口转发
6. 编辑通信规则
允许13477,13478端口进站
之后要重启Openwrt,重要的事情!!!!!!!
7. 测试
还需要测试13477
端口。有这个才是真的YES
L. 参考
https://weixiang.github.io/posts/tailscale-intranet-penetration-and-derper-construction/
https://www.ghostchu.com/archives/tailscale
https://blog.welain.com/archives/289/#cl-11