采用Docker部署Rustdesk自建服务器
场景:本想找一个远程手机的软件,使用的三款都存在限制:
①向日葵一天只能远程三次,需要花钱升级会员
②Todesk因为手机兼容问题,需要花钱买插件解决
③Airdorid免费200M,之后也是收费
最终找到了RustDesk免费,不过还是存在弊端“卡顿”,我自身有买了云服务器,就自己搭了个RustDesk的自建服务器。
云服务器配置:
CPU:2核
内存:4G
系统盘:40GB
操作系统:Linux
公网带宽:2Mbps
RustDesk自建服务器官方文档:自建服务器 :: RustDesk文档
采用官方文档的docker命令
sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -td --net=host rustdesk/rustdesk-server hbbs -r <relay-server-ip[:port]>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -td --net=host rustdesk/rustdesk-server hbbr
问题1:执行后可能会出现服务并没有启动,查看日志出现下列错误:
Registered email required (-m option). Please pay and register on https://rustdesk.com/server...
GitHub上也有对应错误:
docker run 收到错误消息(需要注册电子邮件(-m 选项)。 ·问题 #45 ·Rustdesk/Rustdesk-server ·GitHub
解决方案:
根据评论里面的建议,将rustdesk/rustdesk-server都替换成thtom/rustdesk-server的包,执行完就可以正常运行了
#=====================================拉取thtom/rustdesk-server镜像========================================
docker pull thtom/rustdesk-server
#===========================将rustdesk/rustdesk-server都替换成thtom/rustdesk-server======================
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v 'pwd':/root -td --net=host thtom/rustdesk-server hbbs -r XXX.XXX.XXX.XXX
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -td --net=host thtom/rustdesk-server hbbr
问题2:启动成功,软件却连接不上,显示“未就绪,请检查网络连接”
所需端口
- TCP(21115, 21116, 21117, 21118, 21119)
- UDP(21116)
端口使用情况在官方文档写得很清楚,如果不需要网页客户端(21118,21119)支持,对应端口可以不开。
1、检查防火墙是否开启
systemctl status firewalld
# 或
firewall-cmd --state
开启的话有两种解决方式:
#===========================================①直接关闭========================================
systemctl stop firewalld.service
#===========================================②开放端口========================================
#开放端口的tcp传输限制(--permanent永久生效,没有此参数重启后失效,21115-21119批量开启区间内的端口TCP传输)
firewall-cmd --zone=public --add-port=21115-21119/tcp --permanent
#开放端口的udp传输限制
firewall-cmd --zone=public --add-port=21116/udp --permanent
#重新加载下防火墙配置
firewall-cmd --reload
②安全组配置
添加规则将21115到21119的端口放开
注意项:
添加规则时,不仅仅需要添加TCP协议的规则,还需要要将UDP协议的规则进行配置,要不然也会出现连接不了的问题。
成果:配置RustDesk使用
1、手机端和电脑端都要配置同一个ID/中继服务器
①ID服务器配置的是自建服务器IP地址+21116端口
②中继服务器配置是自建服务器IP地址+21117端口
最终都显示就绪即可互相连接:
使用体验来看:2M的带宽服务器算是最基础的,1M体验不太好