简介
####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):用作中继服务 |