自建 RustDesk 远程服务器:一步步搭建远程桌面服务¶
前言¶
RustDesk 是一款免费的开源远程桌面软件,可以在不同平台之间进行高效的桌面控制。它的特点在于不仅支持端到端加密,同时也能够在低延迟的网络环境下进行远程桌面连接。与传统的远程桌面软件相比,RustDesk 不依赖于云服务提供商,意味着你可以完全掌控自己的远程桌面服务。

项目简介¶
一款开源远程桌面应用程序,专为自托管而设计,可替代 TeamViewer、向日葵和 todesk。
免责声明¶
RustDesk 的开发者不认可或支持任何不道德或非法使用本软件的行为。未经授权的访问、控制或侵犯隐私等滥用行为均严格违反我们的准则。对于任何滥用本应用程序的行为,开发者概不负责。

准备条件¶
1. 一台服务器¶
可以使用任意 VPS,配置要求不高。Docker 容器占用资源情况如下(仅供参考):总体占用内存大约 40MB 左右。
2. 端口说明¶
需要开放以下端口的防火墙:
| 端口 | 协议 | 用途 |
|---|---|---|
| 21114 | TCP | 网页控制台,仅在 Pro 版本中可用 |
| 21115 | TCP | NAT 类型测试 |
| 21116 | TCP/UDP | ID 注册和心跳服务 (UDP),TCP 打洞和连接服务 (TCP) |
| 21117 | TCP | 中继服务 |
| 21118 | TCP | 支持网页客户端 |
| 21119 | TCP | 支持网页客户端 |
3. 相关项目¶
- RustDesk 官方 GitHub: https://github.com/rustdesk/rustdesk
- 自定义 Rustdesk API 服务器: https://github.com/lejianwen/rustdesk-api
使用 Docker 安装¶
一、Docker 环境部署¶
在 VPS 安装 docker 和 docker-compose。
Docker 安装脚本¶
bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)
Docker-Compose 安装脚本¶
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
二、创建 docker-compose.yml 文件¶
登录服务器使用 root 账户执行以下步骤:
mkdir rustdesk && cd rustdesk
vim docker-compose.yml
docker-compose.yml 配置¶
需要注意这里面的镜像地址,我已经替换成国内Ucloud地址了,至于替换的方式稍微复杂,这里不展开细聊了,具体内容可以参考文章:
services:
rustdesk:
ports:
- 21114:21114 # 网页控制台 (Pro 版本)
- 21115:21115 # NAT 类型测试
- 21116:21116 # ID 注册和心跳服务 (TCP/UDP)
- 21116:21116/udp # ID 注册和心跳服务 (UDP)
- 21117:21117 # 中继服务
- 21118:21118 # 网页客户端支持
- 21119:21119 # 网页客户端支持
image: uhub.service.ucloud.cn/infra-common/rustdesk-server-s6:latest
environment:
- RELAY=http://服务器IP或域名:21117 # 中继服务器地址
- ENCRYPTED_ONLY=1 # 启用加密模式
- MUST_LOGIN=N # 是否必须登录才能远程
- TZ=Asia/Shanghai # 时区设置
- RUSTDESK_API_RUSTDESK_ID_SERVER=http://服务器IP或域名:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=http://服务器IP或域名:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://服务器IP或域名:21114
- RUSTDESK_API_RUSTDESK_WS_HOST=http://服务器IP或域名:21114
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
- RUSTDESK_API_JWT_KEY= # JWT 密钥,留空表示不启用
- RUSTDESK_API_JWT_EXPIRE_DURATION= # JWT 过期时间
volumes:
- ./data/rustdesk/server:/data
- ./data/rustdesk/api:/app/data
restart: unless-stopped
networks:
rustdesk-net:
external: false
注意: 将
服务器IP或域名替换为你实际的服务器 IP 或域名。
三、执行容器运行命令¶
# 运行容器
docker-compose up -d
# 查看是否启动成功
docker-compose ps
正常启动如下所示:
NAME IMAGE SERVICE CREATED STATUS PORTS
rustdesk-rustdesk-1 lejianwen/rustdesk-server-s6:latest rustdesk 53 minutes ago Up 53 minutes (healthy) 0.0.0.0:21114-21119->21114-21119/tcp, [::]:21114-21119->21114-21119/tcp, 0.0.0.0:21116->21116/udp, [::]:21116->21116/udp
四、访问 Web 管理界面¶
成功以后需要开放 21114 端口的防火墙。
访问地址: http://IP:21114

默认用户名是 admin,密码和 key 可以通过查看日志获取:
docker-compose logs

或者通过查看 id_ed25519.pub 文件获取:
cat ./data/rustdesk/server/id_ed25519.pub

客户端配置¶
下载客户端¶
-
访问 RustDesk 官网 下载适合自己系统的客户端。
-
也可以直接访问github下载:github地址

客户端网络配置¶

导入导出配置文件¶

常见问题¶
1. 无法连接到服务器¶
- 检查防火墙是否开放所需端口
- 确认服务器 IP 和端口配置正确
- 检查 Docker 容器是否正常运行
2. Web 界面无法访问¶
- 确认 21114 端口已开放
- 检查容器日志:
docker-compose logs
3. 客户端连接失败¶
- 确认 Key 配置正确
- 检查各服务器地址配置
- 查看服务器日志排查问题