使用自定义端口需要自己有域名 并且申请了SSL证书,域名没有进行备案的化 云服务器80会被劫持 443端口会被封禁!!!这就是为啥百度云 腾讯云 和阿里云 国内云服务器厂商无法安装官方脚本搭建成功的原因 官方脚本默认在443启动会自己申请证书 !!!!!!!
如果自己生成证书,需要改生成证书之后的名字为域名!!!!!!否则不认!
所以 在本教程之前请准备域名 端口就可以使用任意端口(443也可以)
域名非必须 如果你要防止白嫖则需要域名 否则进行ip构建即可
1.域名自动证书申请
安装如下docker
docker run --restart always --name=nginxWebUI -itd \
-v /volume1/docker/nginxWebUI:/home/nginxWebUI \
-v /usr/local/bin/docker:/usr/local/bin/docker \
-v /run/docker.sock:/run/docker.sock \
-e BOOT_OPTIONS="--server.port=8888" \
--privileged=true \
--net=host \
chengxudong2020/nginxwebui
注意上述的nginxwebui是本人魔改版本的 可以通过内部的自动申请证书 续签成功后自动重启derper容器
上述路径可以修改 本人群晖中的路径是/volume1/docker/nginxWebUI 根据实际情况进行修改
根据上面的提示进行操作添加 证书 添加成功把自动续签勾选上
2.安装derper
首选查看 上面设置的 /volume1/docker/nginxWebUI/.acme.sh/你的域名 (我的域名是www.dubux.ltd)
是否存在证书
因为要防止白嫖 所以还要在服务器上安装tailscale官方的客户端,根据官网的提示进行安装 并登录 同一账号登录才能使用本derper服务器 不是一个账号登录无法使用 这样防止白嫖!!
然后在服务器上执行命令找到tailscaled.sock
find / -name tailscaled.sock
我找到的路径是 /run/tailscale/tailscaled.sock
最后执行如下命令创建derper容器
docker run --restart always --net host --privileged --name derper -d -v /usr/local/nginxWebUI/.acme.sh/www.dubux.ltd:/app/certs \
-v /run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock \
-e DERP_HOST=www.dubux.ltd -e DERP_VERIFY_CLIENTS=true \
chengxudong2020/ip_derper_for_synology_domain
创建成功后访问 https://你的域名:18889 可以访问网址没有红色的x提示则表示创建成功如下图:
最后开始配置 续签证书之后nginxwebui重启derper 这样保证证书永不过期!!!
首先在 /volume1/docker/nginxWebUI/ 目录中创建reload.sh脚本 (名字一定要是这个reload.sh!!!)
输入以下内容:
#!/bin/bash
docker restart derper
输入之后保存并赋予可执行权限
chmod+x reload.sh
最后在nginxwebui中 证书管理中点击续签证书 之后
然后执行命令
docker ps -a
观察结果
如果这个时间显示1分钟或者几分钟则表示 联动成功。
最后登录官方tailscale设置如下代码
代码如下
// 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": {
"OmitDefaultRegions": true,
"Regions": { "900": {
"RegionID": 900,
"RegionCode": "mangoderp",
"Nodes": [{
"Name": "1",
"RegionID": 900,
"HostName":"你的域名",
"DERPPort": 18889,
"InsecureForTests": false,
}]
}}
}
}
打开如下详情页观察
Relays #900 只有这一条说明已经连上了你的derper 并且只启用了你的derper服务器
注意 DERPPort 18889
"OmitDefaultRegions": true 只使用你自己的derper服务器屏蔽官方的服务器
重启客户端 然后相互ping通过则说明服务器正常 否则请反馈给我 本人centos8搭建测试成功
服务器需要开启tcp 18889 端口 udp 3478
本文参考了如下博客,同时加入了自己的设置保证自定义端口可用