一、基本环境
已经宽带运营商公网 IPv4 地址或者公网 IPv6 地址,并注册好个人域名,通过 ddns-go 的 docker 镜像做好了域名和动态公网 IP 的绑定。
注意:如果你的 IPv6 在极空间中只支持单向连接的话,可以排查是否在路由层面开启了代理软件,一般关闭后会重新变为双向连接,如果关闭后仍然显示单向连接的话,则必须要向运营商申请 IPv4 公网地址,否则本教程对你不适用。
二、目的
通过 RustDesk 官方镜像搭建自建服务器,并启用加密通联,以实现不经过第三方服务器实现远程办公连接的目的。
三、参考
主要参考官方文档:https://rustdesk.com/docs/zh-cn/self-host/install 和 极空间用户 EvilCmd 的教程。
官方教程启用了两个 docker 镜像,一个做 ID 注册 (hbbs),一个做中继 (hbbr) ,其实一个 docker 镜像也可以实现该功能,本教程以一个 docker 镜像来实现。
四、搭建步骤
1、下载官方镜像
2、新建容器并配置
2.1 性能配置
自己自由选择,从后续测试情况看,容器占用 CPU 和内存都很小,可以选择不限制。
2.2 文件夹映射
强烈建议使用高速存储,毕竟机械盘存 docker 文件,多少块机械盘也别想休眠。
2.3 网卡模式
官方教程用的是 host 模式,我个人不太喜欢用 host,还是用的 bridge。
2.4 端口映射
此处做一下官方端口的开放说明,具体用到哪些端口大家自己选择,其实基本只开 21116(TCP/UDP)和 21117(TCP)就完全够用了:
端口号 | 协议 | 功能 | 备注 |
---|---|---|---|
21115 | TCP | hbbs 用作 NAT 类型测试 | 必须打开 |
21116 | TCP | hbbs 用作 TCP 打洞与连接服务 | 必须打开 |
21116 | UDP | hbbs 用作 ID 注册与心跳服务 | 必须打开 |
21117 | TCP | hbbr 用作中继服务 | 必须打开 |
21118 | TCP | 用于支持网页客户端 | 不用网页客户端可以不打开 |
21119 | TCP | 用于支持网页客户端 | 不用网页客户端可以不打开 |
2.5 命令
命令设置为:hbbs -k _
hbbs
和hbbr
可以通过-k
参数指定加密的公钥,即id_ed25519.pub
文件中的内容,指定后将只对使用该公钥的客户端提供服务,而客户也要设置该公钥的内容,这样就可以建立加密连接。此外,hbbs
和hbbr
在指定公钥时可以使用_
代表使用默认文件中的公钥,即可通过如下命令运行:
hbbs -k _ # 省略 `-r` 参数,使用本机的中继器
hbbr -k _
这里先把hbbs
跑起来,hbbr
后面通过 SSH 进容器再运行。
2.6 进入 SSH Shell
2.7 启动 hbbr
输入如下命令,启动hbbr
,使用setsid
启动是为了把进程挂在后台,这样 Shell 退出了,hbbr
会在后台继续运行。
setsid hbbr -k _
2.8 路由器公网到内网的端口映射
我使用的是小米 AX6 路由器,端口映射时候设置的是 docker 默认端口,注重安全性的话也可以采用高端口进行配置。
五、客户端配置
以 Windows 客户端为例,安装客户端后,如下图打开 ID/中继服务器 配置
ID服务器配置格式为:[域名/ip]:[端口]
端口要用到前期做好映射的公网端口,如果你配置了高端口,此处的端口应该为高端口。
此处只配置了 ID服务器 就能用了,中继服务器 RustDesk 会自动识别,实际中继流量走的是上面设置的 21117 端口。
接下来为客户端配置公钥,公钥文件在我们之前映射好的目录中,即 id_ed25519.pub
文件中的内容,文件的路径如下图所示,极空间本身无法打开后缀名为.pub
的文件,请先下载到电脑上再打开。
文件内容打开如下图所示:
把公钥填入key的位置即可。
六、总结
得益于极空间 Z4 的机器性能,在其上跑 RustDesk 完全没有问题,如果你想主玩 Docker ,其实更推荐性能更加强劲的 Z4S ,如果你对于 Docker 镜像的部署和极空间主机、硬盘设备的购买选择不懂,可以关注我的公众号或者直接搜索小店下单购买,我会帮你选择和部署。
我的淘宝小店:阿程数码
我的个人公众号:攻城狮阿程
注意:如果遇上连接失败被拒绝的情况,在保证网络畅通的情况下,执行hbbr
的时候把命令输完整,如下
setsid /usr/bin/hbbr -k _ 2>&1 1>/dev/null