搭建自己的全平台远程桌面服务 RustDesk 搭建教程
简介
RustDesk
是一款开箱即用的开源免费的全平台远程桌面软件,包括 MacOS
、Windows
和 Android
的客户端支持。它可以替代类似于 向日葵远程桌面
、ToDesk
等远程桌面服务,这可以让你完全掌控数据,不用担心安全问题。你可以选择使用官方的注册/中继服务器,也可以自建服务器,甚至基于官方代码开发自己的版本。
部署服务
环境准备
-
服务器需要有安装 Docker 和 DockerCompose 环境
-
创建持久化目录及 compose 描述文件
# 创建文件夹 mkdir -p /home/rustdesk-server cd /home/rustdesk-server mkdir hbbr mkdir hbbs # 创建描述文件,并粘贴序号3的描述文件内容 vim docker-compopse.yml
-
docker-compose.yml 描述文件
version: '3' networks: rustdesk-net: external: false services: hbbs: container_name: rustdesk-hbbs ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118 image: rustdesk/rustdesk-server:latest # 请把 www.xxxaaa.cn:21117 修改为自己的域名 # 如果您禁止没有key的用户建立非加密连接,请在运行hbbs和hbbr的时候添加-k _参数 command: hbbs -r www.xxxaaa.cn:21117 -k _ volumes: - ./hbbs:/root networks: - rustdesk-net depends_on: - hbbr restart: unless-stopped hbbr: container_name: rustdesk-hbbr ports: - 21117:21117 - 21119:21119 image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./hbbr:/root networks: - rustdesk-net restart: unless-stopped
运行容器
docker-compose 常用命令:
# 运行容器
docker-compose up -d
# 停止容器
docker-compose stop
# 启动容器
docker-compose start
# 重启容器
docker-compose restart
# 下线(删除)容器,删除容器不会导致你的数据丢失,你的数据库保存在了当前目录下的data文件夹内,请妥善保管该目录
docker-compose down
查看服务器公钥
在上面的 docker-compose
文件中,已经声明开启了强制密钥加密认证,所有需要连接的设备都需要提供正确的公钥才能正常连接到服务器。
下面是 docker-compose 文件所在文件夹的目录结构:
.
├── docker-compose.yml
├── hbbr
│ ├── id_ed25519
│ └── id_ed25519.pub
└── hbbs
├── db_v2.sqlite3
├── db_v2.sqlite3-shm
├── db_v2.sqlite3-wal
├── id_ed25519
└── id_ed25519.pub
容器启动后会自动生成公钥和私钥,我们需要拷贝 hbbs
目录下的 id_ed25519.pub
文件里面的字符串,这个就是我们连接到服务器的凭证。
如需更换密钥和公钥,只需将 hbbs
文件夹下面的 id_ed25519.pub
和 id_ed25519
两个文件删掉然后重启容器就可以自动重新生成。
配置客户端
普通配置
注意:被控端只需要填写输入服务器 IP 地址即可,控制端需要填入秘钥,才可以发起连接。
我们可以在客户端的设置界面,输入服务器 IP 地址,和秘钥文件,保存后,就可以看到客户端会提示就绪。
自动配置
只有在控制端发起连接时才需要验证秘钥。
这样我们就可以把被控端发给任何人,而不需要担心秘钥泄露,以及其他未授权用户发起连接。
设置好后,我们将被控端发给需要我们远程的人,不需要他做任何设置,只需要他打开软件,将软件的 ID 和密码发给我们,我们就可以远程其设备了。
如果需要无人值守,也就是开机自动运行远程软件,以方便我们远程连接,我们直接打开被控端软件,点击安装就可以将软件和配置一起安装到设备上。
如果你想要让客户端不用手动输入中继地址和密钥,直接双击运行就可以用的话,可以将通过修改客户端文件名的方式来实现。
我们将客户端改名:
被控端
host=服务器IP,key=错误的秘钥内容.exe
例如:host=129.129.33.8,key=111.exe
控制端
host=服务器IP,key=正确的秘钥内容.exe
例如:host=129.129.33.8,key=4uZtPIYe4y344NP3IVc5SxRzKeiNn2lfen4tEY=.exe
附注
端口说明
组件 | 功能 | 使用的端口 |
---|---|---|
hbbs | RustDesk ID 注册服务器 | 21115(tcp):用作 NAT 类型测试 21116(udp):用作 ID 注册与心跳服务 21116(tcp):用作 TCP 打洞与连接服务 |
hbbr | RustDesk 中继服务器 | 21117(tcp):用作中继服务 |
真诚点赞 诚不我欺~