自建 RustDesk 私有服务器完整教程
- 内容介绍
- 文章标签
- 相关推荐
自建 RustDesk 私有服务器完整教程
todesk免费的节点说用完了连着连着断了
本文将一步步教你在 Ubuntu/Debian 系统上自建一套完整的 RustDesk 私有服务器,包括 ID 服务器、中继服务器、API 服务、管理后台和 Web 客户端。所有服务通过 Docker 一键部署,并使用 Caddy 自动申请 HTTPS 证书。
注意:本文中所有出现的公网 IP 均用
x.x.x.x代替,域名均用xxxxxx.xyz代替。请将实际部署时的 IP 和域名替换为自己的。
1. 系统准备
sudo apt update && sudo apt upgrade -y
sudo apt install curl unzip docker.io docker-compose-plugin -y
2. 开启必要防火墙端口(UFW)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
sudo ufw --force enable
3. 创建 docker-compose.yml
mkdir -p ~/rustdesk && cd ~/rustdesk
nano docker-compose.yml
将以下内容粘贴进去:

version: "3.8"
networks:
rustdesk-net:
external: false
services:
rustdesk:
container_name: rustdesk
image: lejianwen/rustdesk-server-s6:latest # 推荐集成镜像
network_mode: "host" # host 模式最稳定
environment:
- TZ=Asia/Hong_Kong
- RELAY=xxxxxx.xyz:21117
- ENCRYPTED_ONLY=1
- MUST_LOGIN=N # 首次建议设为 N,稳定后再改为 Y
- RUSTDESK_API_RUSTDESK_ID_SERVER=xxxxxx.xyz:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=xxxxxx.xyz:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=https://020417.xyz
- RUSTDESK_API_RUSTDESK_WS_HOST=https://020417.xyz
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
- RUSTDESK_API_LANG=zh-CN
volumes:
- ./data:/data # 存放密钥和数据库
restart: unless-stopped
保存后启动:
sudo docker compose up -d
4. 查看日志获取管理员密码
等待 10-20 秒后查看日志:

sudo docker compose logs -f --tail 100
第一次启动时日志中会显示类似:
-> Admin Password Is: mBXCAR0w
请立即记录这个随机生成的管理员密码(本文示例为 mBXCAR0w),后续可自行修改。
5. 配置 Caddy 反向代理(自动 HTTPS)
安装 Caddy(如果未安装):
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy -y
编辑 Caddyfile:
sudo nano /etc/caddy/Caddyfile
替换为以下内容:
xxxxxx.xyz {
encode zstd gzip
# WebSocket(网页客户端必须)
handle_path /ws/id* {
reverse_proxy http://127.0.0.1:21118
}
handle_path /ws/relay* {
reverse_proxy http://127.0.0.1:21119
}
# RustDesk API + 管理后台 + Web Client
handle_path /* {
reverse_proxy http://127.0.0.1:21114
}
}
重载 Caddy:
sudo systemctl reload caddy
6. 访问管理后台
打开浏览器访问:
https://xxxxxx.xyz/_admin/
- 默认账号:
admin - 默认密码:日志中显示的随机密码(示例:
mBXCAR0w)
建议登录后立即修改密码,并将 MUST_LOGIN 设置为 Y 后重启容器。
7. 客户端配置
在 RustDesk 客户端中点击右上角 设置 → 网络 → ID/中继服务器,填写:
- ID 服务器:
xxxxxx.xyz:21116 - 中继服务器:
xxxxxx.xyz:21117 - API 服务器:
https://xxxxxx.xyz
勾选 使用加密传输(推荐)。
常见问题排查
- 无法连接:检查防火墙端口是否开放,域名解析是否正确。
- Web 客户端打不开:确认 Caddy 配置中 WebSocket 路径正确。
- 密码忘记:删除
./data目录下的数据库文件后重启容器,会重新生成随机密码。 - 想强制要求登录:将
MUST_LOGIN=N改为Y并重启。
安全建议
- 定期备份
./data目录 - 使用强密码,并开启
ENCRYPTED_ONLY=1 - 生产环境建议将
MUST_LOGIN设置为Y - 推荐配合 Fail2Ban 进一步保护
网友解答:
--【壹】--:
我也是 没装反诈,但是收到过短信
--【贰】--:
支持支持,感谢佬友!先码再看!
--【叁】--:
支持支持
--【肆】--:
安卓端移动网络下一用rustdesk。一会反诈电话就来咯
--【伍】--:
我也收到过短信和电话。我没有安装反诈中心。
--【陆】--:
内网可以用sunshine
--【柒】--:
前排支持!
--【捌】--:
cy,明天试试
--【玖】--:
感谢佬友分享教程
--【拾】--:
我没用手机,我是电脑的,服务器在国内,域名也是国内,备案过,应该没事吧
--【拾壹】--:
我自己只在家里内网使用。
--【拾贰】--:
公网对这个协议好像有监控
安装,使用就会被打电话
--【拾叁】--:
我是远程我家里的电脑,其他的都要收费
--【拾肆】--:
学习到了 最近也在看rustdesk的自建方案
--【拾伍】--:
局域网自建的rustdesk感觉要比3389好用点
--【拾陆】--:
已经用了快半年了,稳得很。
--【拾柒】--:
自用应该问题不大吧
--【拾捌】--:
装这个软件会被蜀蜀打电话吧,之前家里老人不会用手机,寻思着弄一个,结果就接电话了
--【拾玖】--:
这么离谱吗 我收到反诈的短信了
自建 RustDesk 私有服务器完整教程
todesk免费的节点说用完了连着连着断了
本文将一步步教你在 Ubuntu/Debian 系统上自建一套完整的 RustDesk 私有服务器,包括 ID 服务器、中继服务器、API 服务、管理后台和 Web 客户端。所有服务通过 Docker 一键部署,并使用 Caddy 自动申请 HTTPS 证书。
注意:本文中所有出现的公网 IP 均用
x.x.x.x代替,域名均用xxxxxx.xyz代替。请将实际部署时的 IP 和域名替换为自己的。
1. 系统准备
sudo apt update && sudo apt upgrade -y
sudo apt install curl unzip docker.io docker-compose-plugin -y
2. 开启必要防火墙端口(UFW)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
sudo ufw --force enable
3. 创建 docker-compose.yml
mkdir -p ~/rustdesk && cd ~/rustdesk
nano docker-compose.yml
将以下内容粘贴进去:

version: "3.8"
networks:
rustdesk-net:
external: false
services:
rustdesk:
container_name: rustdesk
image: lejianwen/rustdesk-server-s6:latest # 推荐集成镜像
network_mode: "host" # host 模式最稳定
environment:
- TZ=Asia/Hong_Kong
- RELAY=xxxxxx.xyz:21117
- ENCRYPTED_ONLY=1
- MUST_LOGIN=N # 首次建议设为 N,稳定后再改为 Y
- RUSTDESK_API_RUSTDESK_ID_SERVER=xxxxxx.xyz:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=xxxxxx.xyz:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=https://020417.xyz
- RUSTDESK_API_RUSTDESK_WS_HOST=https://020417.xyz
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
- RUSTDESK_API_LANG=zh-CN
volumes:
- ./data:/data # 存放密钥和数据库
restart: unless-stopped
保存后启动:
sudo docker compose up -d
4. 查看日志获取管理员密码
等待 10-20 秒后查看日志:

sudo docker compose logs -f --tail 100
第一次启动时日志中会显示类似:
-> Admin Password Is: mBXCAR0w
请立即记录这个随机生成的管理员密码(本文示例为 mBXCAR0w),后续可自行修改。
5. 配置 Caddy 反向代理(自动 HTTPS)
安装 Caddy(如果未安装):
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy -y
编辑 Caddyfile:
sudo nano /etc/caddy/Caddyfile
替换为以下内容:
xxxxxx.xyz {
encode zstd gzip
# WebSocket(网页客户端必须)
handle_path /ws/id* {
reverse_proxy http://127.0.0.1:21118
}
handle_path /ws/relay* {
reverse_proxy http://127.0.0.1:21119
}
# RustDesk API + 管理后台 + Web Client
handle_path /* {
reverse_proxy http://127.0.0.1:21114
}
}
重载 Caddy:
sudo systemctl reload caddy
6. 访问管理后台
打开浏览器访问:
https://xxxxxx.xyz/_admin/
- 默认账号:
admin - 默认密码:日志中显示的随机密码(示例:
mBXCAR0w)
建议登录后立即修改密码,并将 MUST_LOGIN 设置为 Y 后重启容器。
7. 客户端配置
在 RustDesk 客户端中点击右上角 设置 → 网络 → ID/中继服务器,填写:
- ID 服务器:
xxxxxx.xyz:21116 - 中继服务器:
xxxxxx.xyz:21117 - API 服务器:
https://xxxxxx.xyz
勾选 使用加密传输(推荐)。
常见问题排查
- 无法连接:检查防火墙端口是否开放,域名解析是否正确。
- Web 客户端打不开:确认 Caddy 配置中 WebSocket 路径正确。
- 密码忘记:删除
./data目录下的数据库文件后重启容器,会重新生成随机密码。 - 想强制要求登录:将
MUST_LOGIN=N改为Y并重启。
安全建议
- 定期备份
./data目录 - 使用强密码,并开启
ENCRYPTED_ONLY=1 - 生产环境建议将
MUST_LOGIN设置为Y - 推荐配合 Fail2Ban 进一步保护
网友解答:
--【壹】--:
我也是 没装反诈,但是收到过短信
--【贰】--:
支持支持,感谢佬友!先码再看!
--【叁】--:
支持支持
--【肆】--:
安卓端移动网络下一用rustdesk。一会反诈电话就来咯
--【伍】--:
我也收到过短信和电话。我没有安装反诈中心。
--【陆】--:
内网可以用sunshine
--【柒】--:
前排支持!
--【捌】--:
cy,明天试试
--【玖】--:
感谢佬友分享教程
--【拾】--:
我没用手机,我是电脑的,服务器在国内,域名也是国内,备案过,应该没事吧
--【拾壹】--:
我自己只在家里内网使用。
--【拾贰】--:
公网对这个协议好像有监控
安装,使用就会被打电话
--【拾叁】--:
我是远程我家里的电脑,其他的都要收费
--【拾肆】--:
学习到了 最近也在看rustdesk的自建方案
--【拾伍】--:
局域网自建的rustdesk感觉要比3389好用点
--【拾陆】--:
已经用了快半年了,稳得很。
--【拾柒】--:
自用应该问题不大吧
--【拾捌】--:
装这个软件会被蜀蜀打电话吧,之前家里老人不会用手机,寻思着弄一个,结果就接电话了
--【拾玖】--:
这么离谱吗 我收到反诈的短信了
