最近需要用到遠程工具解決用戶問題,todesk總是提示付費,干脆自己使用開源的。當然凡事都有代價。 話費了一個工作日的時間終于搞定了。
本文將詳細介紹如何從零開始部署RustDesk自建服務器,實現完全自主可控的遠程桌面解決方案。
踩坑
參考了https://blog.csdn.net/m0_74823611/article/details/146158064 使用二進制文件 rustdesk-server-linux-amd64.zip安裝,但是沒有效果。估計還是端口映射的問題。
一方面也是自己偷懶原因,不想安裝docker節省服務器空間。結果最后浪費了一早上的時間。
https://blog.csdn.net/weixin_53510183/article/details/143257158 這篇文章有說明二進制安裝的缺陷。
1. 準備工作
1.1 服務器要求
- 云服務器(騰訊云、阿里云等)
- CentOS 7/8 或 Ubuntu 18.04+
- 至少1GB內存,1核CPU
- 開放的公網IP
1.2 必要端口
- 21115 (hbbs - Web控制臺,可選)
- 21116 (hbbs - ID注冊服務)
- 21117 (hbbr - 中繼服務)
- 21118 (hbbs - Web API,可選)
- 21119 (hbbr - Web API,可選)
2. Docker環境安裝
2.1 CentOS Docker安裝腳本
創建安裝腳本文件:
nano install-docker.sh
復制以下內容:
#!/bin/bash# 更新系統
sudo yum update -y# 安裝必要的工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加 Docker 倉庫
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 替換鏡像源到阿里云
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo# 安裝 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io# 啟動 Docker
sudo systemctl start docker
sudo systemctl enable docker# 測試 Docker 是否安裝成功
sudo docker run --rm hello-worldecho "Docker 已安裝并啟動成功!"
2.2 執行安裝
chmod +x install-docker.sh
./install-docker.sh
2.3 配置Docker鏡像加速(重要)
創建Docker配置文件:
sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json
添加以下內容:
{"registry-mirrors": ["https://dockerproxy.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn"]
}
重啟Docker服務:
sudo systemctl restart docker
3. 防火墻配置
3.1 使用ufw(推薦)
# 安裝ufw
sudo yum install -y epel-release
sudo yum install -y ufw# 啟用ufw
sudo ufw enable# 開放必要端口
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
sudo ufw allow ssh# 查看狀態
sudo ufw status numbered
3.2 云服務器安全組
在云服務商控制臺配置安全組規則:
- 入方向:開放21115-21119端口(TCP)
- 入方向:開放21116端口(UDP)
4. 部署RustDesk服務
4.1 創建數據目錄
sudo mkdir -p /opt/rustdesk
sudo chown $USER:$USER /opt/rustdesk
4.2 啟動hbbs服務(ID注冊服務)
最好使用下面帶端口的安裝方法,官方文檔https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-oss/docker/里使用–net=host 似乎并沒有效果。
docker run --name hbbs \-p 21115:21115 \-p 21116:21116 \-p 21116:21116/udp \-p 21118:21118 \-v /opt/rustdesk:/root \-td --restart unless-stopped \rustdesk/rustdesk-server hbbs -r 你的服務器IP:21117
4.3 啟動hbbr服務(中繼服務)
docker run --name hbbr \-p 21117:21117 \-p 21119:21119 \-v /opt/rustdesk:/root \-td --restart unless-stopped \rustdesk/rustdesk-server hbbr
4.4 驗證服務狀態
# 檢查容器運行狀態
docker ps# 檢查端口監聽
sudo ss -tuln | grep 2111# 查看服務日志
docker logs hbbs
docker logs hbbr
5. 獲取密鑰
5.1 獲取公鑰
# 查看生成的公鑰
cat /opt/rustdesk/id_ed25519.pub
**重要:**這個公鑰將在客戶端配置時使用,請妥善保存。
6. 客戶端配置
6.1 下載RustDesk客戶端
- Windows: https://github.com/rustdesk/rustdesk/releases
- macOS: 同上
- Android/iOS: 應用商店搜索"RustDesk"
6.2 配置連接信息
打開RustDesk客戶端,點擊"設置" -> “網絡” -> “ID/中繼服務器”:
- ID服務器:
你的服務器IP
(?? 不要加端口號) - 中繼服務器:
你的服務器IP
(?? 不要加端口號) - Key: 粘貼步驟5.1獲取的完整公鑰內容
6.3 保存并重啟
- 點擊"確認"保存配置
- 完全退出RustDesk客戶端
- 重新啟動客戶端
7. 常見問題及解決方案
7.1 rustdesk客戶端顯示"未就緒,請檢查網絡連接"
原因: 端口映射或防火墻問題
解決:
# 檢查Docker端口映射
docker port hbbs
docker port hbbr# 檢查防火墻狀態
sudo ufw status# 驗證端口監聽
sudo ss -tuln | grep 21116
sudo ss -tuln | grep 21117
我主要就是卡在這一步,端口沒有映射成功。這里不能開魔法的Tun模式,最好關掉。這樣能檢測是否真正的連接成功。
7.2 Key不匹配錯誤(高頻問題)
原因: 客戶端緩存了舊的配置或使用了錯誤的密鑰
解決:
# Windows下清除緩存(管理員CMD)
rmdir /s /q "%APPDATA%\RustDesk"
rmdir /s /q "%LOCALAPPDATA%\RustDesk"
然后重新獲取正確的密鑰:
# 確保獲取Docker容器中的最新密鑰
cat /opt/rustdesk/id_ed25519.pub
7.3 網絡連通性測試
# Windows PowerShell測試
Test-NetConnection 你的服務器IP -Port 21116
Test-NetConnection 你的服務器IP -Port 21117
正常結果應顯示:TcpTestSucceeded : True
7.4 代理軟件干擾
如果使用了Clash、Mihomo、V2Ray等代理軟件,需要添加直連規則:
# 示例配置(Clash/Mihomo)
rules:- DOMAIN,api.rustdesk.com,DIRECT- IP-CIDR,你的服務器IP/32,DIRECT
8. 總結
通過以上步驟,終于成功部署了一個完全自主可控的RustDesk服務器。相比于使用官方服務器,自建服務器具有以下優勢:
- 隱私保護:所有連接數據不經過第三方服務器
- 穩定可靠:不受官方服務器狀態影響
- 自主可控:可根據需要調整服務配置
- 成本可控:一次部署,長期使用
現在可以在任何安裝了RustDesk客戶端的設備上,通過你的自建服務器進行遠程桌面連接了!
關鍵提醒:
- 服務器地址不要加端口號
- 一定要配置Docker鏡像加速
- Key不匹配時優先清除客戶端緩存
- 網絡測試確認端口連通性
參考文章
https://blog.csdn.net/weixin_53510183/article/details/143257158
https://halo.blog360.sbs/archives/rustdesk-kai-yuan-yuan-cheng-zhuo-mian-ruan-jiahe-shi-yong-jiao-cheng
https://rustdesk.com/docs/zh-cn/self-host/
https://blog.csdn.net/m0_74823611/article/details/146158064