本文在以下环境安装测试通过
- 腾讯云轻量应用服务器ubuntu-20.04 lts
- Let’s Encrypt证书
- zouyq/derper镜像
- (部署在国内服务器域名需备案)
安装docker
ssh远程登陆到服务器,推荐使用一键安装命令
1
|
curl -sSL https://get.daocloud.io/docker | sh
|
申请证书
芒果这里是申请免费的Let’s Encrypt证书,理论上使用其它的也是ok的。Let’s Encrypt证书的申请方法一可以自己到官方网站去申请,而是可以用宝塔面板自建一个静态页面网站,使用宝塔工具申请。芒果这里是使用宝塔申请。申请完毕后得到一个证书文件与密钥文件
1
2
3
|
# 使用宝塔申请的证书文件一般存在/www/server/panel/vhost/certz中
fullchain.pem #证书文件
privkey.pem #密钥文件
|
然后将其拷贝只根目录下
目录中,并且按照以下格式重命名证书和密钥文件
1
2
|
yourhostname.crt
yourhostname.key
|
安装镜像
ssh远程登陆到服务器
1
2
3
|
sudo docker pull zouyq/derper
sudo docker run -it -d -p 8082:8082 -p 3478:3478/udp --name derper -v /certpath:/cert zouyq/derper /derper -hostname your-hostname -stun -a :8082 -certmode manual -certdir /cert
# 其中your-hostname 替换为你的域名
|
检查启动状态
1
2
|
sudo docker logs 036401e7240b
# 命令格式为sudo docker logs <容器id>, 可以使用sudo docker ps -a查看
|
如果有以下提示,无报错则说明deper服务已经正常启动
1
2
3
|
2022/03/05 02:23:04 no config path specified; using /var/lib/derper/derper.key
2022/03/05 02:23:04 derper: serving on :8082 with TLS
2022/03/05 02:23:04 running STUN server on [::]:3478
|
防火墙放行
- 在服务器运行商控制台面板安全组放行8082(tcp), 3478(udp)
- 在linux系统防火墙放行8082(tcp), 3478(udp),可以使用宝塔面板设置
修改tailscale配置
tailscale的节点设置与之前类似,但使用了非443端口,需要在配置里面指定说明,如
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// Example/default ACLs for unrestricted connections.
{
// Declare static groups of users beyond those in the identity service.
"Groups": {
"group:example": [ "[email protected]", "[email protected]" ],
},
// Declare convenient hostname aliases to use in place of IP addresses.
"Hosts": {
"example-host-1": "100.100.100.100",
},
"ACLs": [
// Match absolutely everything. Comment out this section if you want
// to define specific ACL restrictions.
{ "Action": "accept", "Users": ["*"], "Ports": ["*:*"] },
],
"derpMap": {
"Regions": { "900": {
"RegionID": 900,
"RegionCode": "mangoderp",
"Nodes": [{
"Name": "1",
"RegionID": 900,
//本节点由mangoroom.cn提供,请勿滥用。详情访问https://mangoroom.cn/tools/tailscale-custom-derper-servers.html
"HostName":"tailscalederper.mangoroom.cn",
"DERPPort":8082
}]
}}
}
}
|
测试
部署完后可以进行以下测试,检验是否可以正常使用
1
2
3
4
5
6
7
8
9
10
11
12
13
|
"derpMap": {
"OmitDefaultRegions": true,
"Regions": { "900": {
"RegionID": 900,
"RegionCode": "myderp",
"Nodes": [{
"Name": "1",
"RegionID": 900,
"HostName":"tailscalederper.mangoroom.cn",
"DERPPort":8082
}]
}}
}
|
- 2 重启各个客户端
- 3 各个客户之间相互ping或者发送文件
如果以上测试没有问题,那么整个部署就OK了。
本文由芒果浩明发布,转载请注明出处。
本文链接:https://blog.mangoeffect.net/tools/tailscale-custom-derper-servers-custom-derpport-base-docker.html