简介
####RustDesk 是一款开箱即用的开源免费的全平台远程桌面软件,包括 MacOS、Windows 和 Android 的客户端支持。它可以替代类似于 向日葵远程桌面、ToDesk 等远程桌面服务,这可以让你完全掌控数据,不用担心安全问题。你可以选择使用官方的注册/中继服务器,也可以自建服务器,甚至基于官方代码开发自己的版本。
GitHub 官方仓库
官方网站地址
部署服务
服务器需要有安装 Docker 和 DockerCompose 环境
#更新系统软件包列表
apt-get update && apt-get upgrade -y
#下载docker
wget -qO- get.docker.com | bash
#设置docker开机自启
systemctl enable docker
#重启docker
systemctl restart docker
#查看docker版本
docker --version
#安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#docker-compose赋权
sudo chmod +x /usr/local/bin/docker-compose
#查看docker-compose版本
docker-compose --version
创建持久化目录及 compose 描述文件
# 创建文件夹
mkdir -p /home/rustdesk-server
cd /home/rustdesk-server
mkdir hbbr
mkdir hbbs
# 创建描述文件,并粘贴序号3的描述文件内容
vim docker-compose.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.aaabbb.com:21117 修改为自己的域名
# 如果您禁止没有key的用户建立非加密连接,请在运行hbbs和hbbr的时候添加-k _参数
command: hbbs -r www.aaabbb.com: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 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 类型测试 |
hbbs | RustDesk ID 注册服务器 | 21116(udp):用作 ID 注册与心跳服务 |
hbbs | RustDesk ID 注册服务器 | 21116(tcp):用作 TCP 打洞与连接服务 |
hbbr | RustDesk 中继服务器 | 21117(tcp):用作中继服务 |