CentOS服务器+Win客户端安装部署远程控制RustDesk教程
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">1:RustDesk 概览</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">1.1:项目简介</a></li><li><a href="#_lab2_0_1">1.2:工作原理</a></li><li><a href="#_lab2_0_2">1.3:核心特性</a></li><li><a href="#_lab2_0_3">1.4:核心功能</a></li><li><a href="#_lab2_0_4">1.5:相关链接</a></li></ul><li><a href="#_label1">2:部署 RustDesk 服务</a></li><ul class="second_class_ul"></ul><li><a href="#_label2">3:部署客户端</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_5">3.1:Win 客户端</a></li><li><a href="#_lab2_2_6">3.2:Web 客户端</a></li><li><a href="#_lab2_2_7">3.3:其它 客户端</a></li></ul><li><a href="#_label3">4:部署优化</a></li><ul class="second_class_ul"><li><a href="#_lab2_3_8">4.1:Web 远控加载慢</a></li><li><a href="#_lab2_3_9">4.2:Systemd 管理</a></li><li><a href="#_lab2_3_10">4.3:Api 服务器</a></li></ul><li><a href="#_label4">5:Docker 部署</a></li><ul class="second_class_ul"></ul><li><a href="#_label5">6:故障排查指南 </a></li><ul class="second_class_ul"><li><a href="#_lab2_5_11">连接失败:</a></li><li><a href="#_lab2_5_12">画面卡顿:</a></li><li><a href="#_lab2_5_13">文件传输慢:</a></li><li><a href="#_lab2_5_14">声音问题:</a></li></ul><li><a href="#_label6">7:总结</a></li><ul class="second_class_ul"></ul></ul></div><p><strong>RustDesk</strong> 是一款开源的远程桌面控制软件,采用 Rust 语言编写。它允许用户通过网络远程控制另一台计算机,类似于 TeamViewer、AnyDesk、向日葵等商业软件。</p><p></p>
<p class="maodian"><a name="_label0"></a></p><h2>1:RustDesk 概览</h2>
<p class="maodian"><a name="_lab2_0_0"></a></p><h3>1.1:项目简介</h3>
<p>RustDesk 它是一个远程控制开源项目,该项目支持自己搭建服务器。</p>
<p>RustDesk 默认提供免费公共中继服务,但 RustDesk 的中继服务器在海外,所以延迟非常明显,所以可以自己搭建服务器。</p>
<p class="maodian"><a name="_lab2_0_1"></a></p><h3>1.2:工作原理</h3>
<p>RustDesk 会先用 TCP 21116 信令服务 NAT 打洞,如果打洞成功,直接 P2P 直连,RustDesk 不参与中继。</p>
<p>RustDesk 如果没有打洞成功,则走 TCP 21117 中继服务,延迟、画质取决于中继服务器的带宽。</p>
<table><thead><tr><th>hbbs 监听端口</th><th>hbbr 监听端口</th></tr></thead><tbody><tr><td>21115(tcp):用作 NAT 类型测试</td><td>21117(tcp):中继服务</td></tr><tr><td>21116(tcp):NAT 打洞与连接服务</td><td>21119(tcp):支持 Web 客户端</td></tr><tr><td>21118(tcp):支持 Web 客户端</td><td></td></tr><tr><td>21116(udp):ID 注册与心跳服务</td><td></td></tr></tbody></table>
<p class="maodian"><a name="_lab2_0_2"></a></p><h3>1.3:核心特性</h3>
<ul><li><p><strong>完全开源</strong>:代码在 GitHub 上公开,可自行审查和部署</p></li><li><p><strong>跨平台支持</strong>:Windows、macOS、Linux、Android、iOS、Web 浏览器</p></li><li><p><strong>自托管选项</strong>:可以部署自己的中继服务器,数据完全自主掌控</p></li><li><p><strong>轻量高效</strong>:安装包小,资源占用低,连接速度快</p></li><li><p><strong>P2P 直连</strong>:在理想网络条件下会自动建立点对点直连,减少延迟</p></li></ul>
<p class="maodian"><a name="_lab2_0_3"></a></p><h3>1.4:核心功能</h3>
<table><tbody><tr><th>功能</th><th>说明</th></tr><tr><td><strong>远程桌面控制</strong></td><td>实时查看和操作远程计算机桌面</td></tr><tr><td><strong>文件传输</strong></td><td>在本地和远程计算机间双向传输文件</td></tr><tr><td><strong>远程终端</strong></td><td>访问远程计算机的命令行/终端(类 SSH)</td></tr><tr><td><strong>语音通话</strong></td><td>远程协助时的语音沟通</td></tr><tr><td><strong>聊天功能</strong></td><td>内置文字聊天窗口</td></tr><tr><td><strong>多显示器支持</strong></td><td>支持远程多显示器切换</td></tr><tr><td><strong>远程打印</strong></td><td>将远程文件打印到本地打印机</td></tr><tr><td><strong>会议模式</strong></td><td>支持多人同时查看同一台远程桌面</td></tr></tbody></table>
<p class="maodian"><a name="_lab2_0_4"></a></p><h3>1.5:相关链接</h3>
<p>Web、API 部署教程:https://www.52pojie.cn/thread-1708319-1-1.html</p>
<p>RustDesk 服务端下载:https://github.com/rustdesk/rustdesk-server/releases</p>
<p>RustDesk 客户端下载:https://github.com/rustdesk/rustdesk/releases/tag/1.2.3-2</p>
<p>RustDesk 官方部署教程:https://rustdesk.com/docs/zh-cn/</p>
<p class="maodian"><a name="_label1"></a></p><h2>2:部署 RustDesk 服务</h2>
<p>我的服务器是 CentOS7.6 64位,所以下载 <a href="https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-linux-amd64.zip" rel="external nofollow" target="_blank">rustdesk-server-linux-amd64.zip</a>,用 unzip 解压后执行 <code>hbbr(ID)</code>、<code>hbbs(中继)</code>。</p>
<p>请注意 TCP 21115-21119 和 1 个 UDP 21116 都要在安全组放行,如果有宝塔,宝塔的防火墙也要放行。</p>
<div class="jb51code"><pre class="brush:bash;">unzip rustdesk-server-linux-amd64.zip
mv amd64 rustdesk_server
cd rustdesk_server
# 启动ID注册服务,后台运行
# -k _ 用于强制被控端输入Key,因为默认情况下只需要主控端输入Key就能连接
./hbbs -k _ &
# 启动中继服务,后台运行
# 启动后生成公私密钥对(id_edxxxx,id_edxxxx.pub)
./hbbr -k _ &</pre></div>
<p class="maodian"><a name="_label2"></a></p><h2>3:部署客户端</h2>
<p class="maodian"><a name="_lab2_2_5"></a></p><h3>3.1:Win 客户端</h3>
<p>由于我是 Win 环境,所以下载 <a href="https://github.com/rustdesk/rustdesk/releases/download/1.2.3-2/rustdesk-1.2.3-2-x86_64.exe" rel="external nofollow" target="_blank">rustdesk-1.2.3-2-x86_64.exe</a>,打开后是非安装版本,也可作为主控和被控端,但可能会有一些限制,最好用安装一下。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122014021444.png" /></p>
<p><strong>示例:</strong> <code>笔记本</code> 和 <code>无影云电脑</code> 都安装了 RustDesk for Win 客户端,并且 ID/中继服务器 均配置完成。笔记本获取无影电脑的 ID 值和密码,连接成功。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122014021495.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122014021410.png" /></p>
<p class="maodian"><a name="_lab2_2_6"></a></p><h3>3.2:Web 客户端</h3>
<p>Web 客户端有静态源码,官方教程中也说只有 RustDesk Server Pro 才有 Web 远控,GitHub 项目中也没有给 Web 客户端的资源,但网上却有<a href="https://v5star.lanzouv.com/iq43T0f8rgsf?pwd=52pj" rel="external nofollow" target="_blank">下载</a>,我猜是有人从 Pro 版本扒出来源码修改了一点点😅。</p>
<p>0x01:宝塔创建一个站点,用于存放 Web 静态文件。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122014021483.png" /></p>
<p>0x02:将 web-client 文件夹里的文件全部剪切到根目录中,并修改所有者和用户组为 www。</p>
<div class="jb51code"><pre class="brush:bash;">mv web-client/* wwwroot/
chown -R www:www wwwroot/*</pre></div>
<p>0x03:浏览器访问 Web 远控端,同样也要输入 ID服务器 和 Key。</p>
<blockquote><p>如果服务器上行带框小,访问会比较慢</p></blockquote>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122014021415.png" /></p>
<p>0x04:Web 远控输入无影云主机ID,输入密码后成功连接。</p>
<blockquote><p>服务器上行带宽太小会导致延迟、画质过差</p></blockquote>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122014021495.png" /></p>
<p class="maodian"><a name="_lab2_2_7"></a></p><h3>3.3:其它 客户端</h3>
<p><u>RustDesk 还支持 Linux(Debian系列没问题,虽然也提供了RadHat系列的rpm包,但好像有问题)、Mac、Android 等客户端,等有这方面的需求在搞。</u></p>
<p class="maodian"><a name="_label3"></a></p><h2>4:部署优化</h2>
<p class="maodian"><a name="_lab2_3_8"></a></p><h3>4.1:Web 远控加载慢</h3>
<p>Web 远控慢是因为 canvaskit.wasm 太大了,足足 6MB 多,如果你服务器上行带宽很大,其实可以忽略。</p>
<p>优化:canvaskit.js 访问的 canvaskit.wasm,可以将访问地址换成网上免费的 <a href="https://www.bootcdn.cn/canvaskit-wasm" rel="external nofollow" target="_blank">插件CDN服务</a>。</p>
<div class="jb51code"><pre class="brush:bash;">cd canvaskit@0.33.0/
vim canvaskit.js
# 搜索 canvaskit.wasm,将后面的 if(!Ab()){var Cb=Bb;Bb=t.locateFile?t.locateFile(Cb,Ca):Ca+Cb} 删除
# 将 Bb 变量修改为 CDN 加速链接,这样节省了带宽又加速了访问
# (如果CDN的带宽还没你服务器带宽大,就别搞这个)
var Bb;Bb="https://cdn.bootcdn.net/ajax/libs/canvaskit-wasm/0.33.0/canvaskit.wasm";</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122014021456.png" /></p>
<p class="maodian"><a name="_lab2_3_9"></a></p><h3>4.2:Systemd 管理</h3>
<p>0x01:创建 service 文件,WorkingDirectory 工作目录一定要指定,否则密钥对不会创建 。</p>
<div class="jb51code"><pre class="brush:bash;">cat > /etc/systemd/system/hbbr.service << EOF
Description=RustDesk Hbbs
After=network.target
User=root
Type=simple
WorkingDirectory=/taosec/remote_control/rustdesk_server
ExecStart=/taosec/remote_control/rustdesk_server/hbbr
ExecStop=/bin/kill -TERM $MAINPID
WantedBy=multi-user.target
EOF
cat > /etc/systemd/system/hbbs.service << EOF
Description=RustDesk Hbbs
After=network.target
User=root
Type=simple
WorkingDirectory=/taosec/remote_control/rustdesk_server
ExecStart=/taosec/remote_control/rustdesk_server/hbbs
ExecStop=/bin/kill -TERM $MAINPID
WantedBy=multi-user.target
EOF</pre></div>
<p>0x02:启动 hbbr 和 hbbs 并开机自启动。</p>
<div class="jb51code"><pre class="brush:bash;">systemctl start hbbr
systemctl start hbbs
systemctl enable hbbr
systemctl enable hbbs</pre></div>
<p class="maodian"><a name="_lab2_3_10"></a></p><h3>4.3:Api 服务器</h3>
<p>Api 服务器 (登录、注册、记录等作用) 好像也是 Pro 版本才有,但网上有很多大佬自己开发了 Api 服务器,我在网上查了一下,甚至测试了 1 套,虽然登录没问题,将远程记录放到地址簿中,数据库确实有数据,但重新登录后,却无法获取地址簿的数据,可能是版本更新的原因吧,那套源码是 23 年的,还有一套不错的 Api 项目,可惜只支持 Win。</p>
<p>我看了一眼 Api 服务器的PHP版本的源代码,很简单,几乎是套娃,我也懒得搞了,没这需求,搞得我也累。</p>
<p class="maodian"><a name="_label4"></a></p><h2>5:Docker 部署</h2>
<div class="jb51code"><pre class="brush:bash;"># host是与宿主机共享网络,-r是指定中继服务器IP(端口可选),由于我们是 host 模式,所以 ip 填宿主机的就可以
docker run --restart=always --name hbbs-v /opt/rustdesk/hbbs/root:/root -td --net=host rustdesk/rustdesk-serverhbbs-r 10.0.0.11 -k 123456
docker run--restart=always --name hbbr -v /opt/rustdesk/hbbr/root:/root -td --net=host rustdesk/rustdesk-server hbbr</pre></div>
<p></p>
<p class="maodian"><a name="_label5"></a></p><h2>6:故障排查指南 </h2>
<p class="maodian"><a name="_lab2_5_11"></a></p><h3>连接失败:</h3>
<p> 1. 检查两端网络连接<br /> 2. 确认防火墙允许RustDesk通过<br /> 3. 检查服务器地址和端口配置<br /> 4. 尝试更换连接模式(TCP/UDP)</p>
<p class="maodian"><a name="_lab2_5_12"></a></p><h3>画面卡顿:</h3>
<p>1. 检查网络带宽和延迟<br /> 2. 降低远程显示质量设置<br /> 3. 关闭硬件加速(某些显卡)<br /> 4. 更新显卡驱动程序</p>
<p class="maodian"><a name="_lab2_5_13"></a></p><h3>文件传输慢:</h3>
<p> 1. 检查磁盘读写速度<br /> 2. 暂停其他大流量操作<br /> 3. 尝试小文件测试网络状况<br /> 4. 检查杀毒软件是否干扰</p>
<p class="maodian"><a name="_lab2_5_14"></a></p><h3>声音问题:</h3>
<p> 1. 检查音频设置是否启用<br /> 2. 确认系统音频服务正常<br /> 3. 尝试重新安装音频驱动<br /> 4. 检查麦克风权限设置</p>
<p class="maodian"><a name="_label6"></a></p><h2>7:总结</h2>
<p>RustDesk 是一款强大且灵活的远程桌面工具,特别适合注重数据隐私和控制权的用户。通过合理配置和安全措施,它可以成为安全高效的远程访问解决方案。</p>
頁:
[1]