基于阿里云部署 RustDesk 自托管服务器
本文介绍了如何在阿里云上部署RustDesk自托管远程桌面服务器。通过自建中继服务器,用户可以实现安全、高效的跨网络远程控制,解决传统方案如Tailscale+VNC或FRP穿透的带宽和延迟问题。文章详细说明了部署步骤:包括安装服务端、配置安全组、设置被控设备端以及控制端连接等操作,并提供了常见问题解决方法。自托管方案具有数据隐私性好、性能可优化、不受商业限制等优势,适合需要远程访问内网设备的场景
基于阿里云部署 RustDesk 自托管服务器
一、背景与需求场景
在日常工作和开发中,我们常常需要远程访问位于内网环境中的设备(例如家庭 NAS、公司内部测试服务器等)。传统的解决方案如 Tailscale + VNC
或 NoMachine
虽然可行,但经常受限于带宽和延迟问题,体验不佳。而使用 FRP(内网穿透工具)加 VNC 的方式又配置复杂,维护成本较高。
因此,我决定尝试 RustDesk——一个开源的远程桌面软件,支持自建中继服务器,既能保障数据安全,又能提升连接质量。本文将详细介绍如何在阿里云服务器上部署 RustDesk 自托管服务,并实现跨网络远程桌面控制。
二、什么是 RustDesk?为什么选择自托管?
2.1 RustDesk 是什么?
RustDesk 是一款远程桌面控制软件,支持 Windows、Linux等多种平台。与 TeamViewer、AnyDesk 等商业软件类似,它提供远程控制、文件传输等功能,但更加轻量、开源,并允许用户自建服务器。
2.2 为什么选择自托管?
- 数据隐私:所有远程连接数据经过自己的服务器,避免第三方窥探。
- 性能优化:自建服务器可以选择合适的机房,优化网络延迟和带宽。
- 不受限制:自托管版本没有连接时间或设备数量的限制。
- 定制化强:可根据需要调整服务器配置和中继策略。
三、环境准备与架构说明
在开始之前,你需要:
- 一台阿里云 ECS 实例(建议 ≥ 2核4G,带宽按需选择)。
- 一个域名(可选,但推荐使用,方便后续维护)。
- 基本的 Linux 命令行操作经验。
整个系统的架构如下:
控制端(PC) → 阿里云中继服务器(RustDesk-Server) → 被控设备(内网机器)
中继服务器负责转发数据,使得两个不在同一局域网的设备能够建立远程桌面连接。
四、操作步骤
4.1 在阿里云上安装 RustDesk 服务端
4.1.1 下载并运行安装脚本
通过以下命令快速安装 RustDesk 服务端:
wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh
安装完成后,你会看到类似下面的输出:
Creating /var/log/gohttp
Tidying up Go HTTP Server Install
Created symlink from /etc/systemd/system/multi-user.target.wants/gohttpserver.service to /etc/systemd/system/gohttpserver.service.
Your IP/DNS Address is <你的域名>.top
Your public key is <公钥字符串>
Install Rustdesk on your machines and change your public key and IP/DNS name to the above
You can access your install scripts for clients by going to http://<你的域名>:8000
Username is <用户名> and password is <密码>
Press any key to finish install
waiting for the keypress
请务必记录下:公钥(public key)、用户名和密码,后续配置客户端时需要用到。
4.1.2 获取注册配置信息
运行以下命令,获取被控端注册时所需的配置参数:
cat /opt/gohttp/public/linuxclientinstall.sh | grep "rustdesk_cfg="
输出结果中的 rustdesk_cfg
值需要记录下来,它在被控端注册时使用。
4.1.3 配置安全组
在阿里云控制台中,打开ECS实例的安全组设置,放行以下端口:
4.2 被控设备端安装与配置
在被控制的设备(如内网Linux机器)上执行如下命令:
wget https://github.com/rustdesk/rustdesk/releases/download/1.4.1/rustdesk-1.4.1-aarch64.deb
sudo dpkg -i rustdesk-1.4.1-aarch64.deb
# 安装依赖(某些环境可能需要)
apt install libxdo3
sudo apt install libxdo3 -y
apt --fix-broken install -y
# 设置随机访问密码并注册到服务器
rustdesk_pw=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
rustdesk_cfg="<替换为上一步获取的rustdesk_cfg>"
rustdesk_id=$(rustdesk --get-id)
rustdesk --password $rustdesk_pw &> /dev/null
rustdesk --config $rustdesk_cfg
systemctl restart rustdesk
systemctl status rustdesk
echo "ID:$rustdesk_id"
echo "password:$rustdesk_pw"
请记录最后显示的 ID 和 Password,控制端连接时需要用到。
4.3 控制端(PC)配置
4.3.1 下载 RustDesk 客户端
从 官方发布页 下载 Windows 版本并安装。
4.3.2 配置网络设置
打开 RustDesk,进入设置 → 网络,填写如下信息:
- ID 服务器:你的域名或云服务器IP
- 中继服务器:同上
- API 服务器:
http://<你的域名或IP>
- Key:之前记录的服务端公钥
如下图所示:
4.3.3 建立远程连接
返回主界面,输入被控端的 ID 点击“连接” ,之后输入密码登录
成功连接后,你就可以远程操作设备了:
五、常见问题与注意事项
-
无法连接?
- 检查安全组端口是否开放。
- 确认所有配置中的IP/域名是否正确。
-
性能调优
- 可尝试调节分辨率和帧率提升流畅度。
- 若服务器带宽较小,建议降低远程桌面画质。
-
安全建议
- 定期更换密码。
- 限制安全组IP访问范围(如仅允许自己的IP访问管理端口)。
六、总结
通过本文,你已经在阿里云上成功搭建了一套 RustDesk 自托管远程桌面服务。不仅实现了内网设备的远程控制,还拥有了完全自主的数据控制权。
更多推荐
所有评论(0)