基于阿里云部署 RustDesk 自托管服务器

基于阿里云部署 RustDesk 自托管服务器

    • 一、背景与需求场景
    • [二、什么是 RustDesk?为什么选择自托管?](#二、什么是 RustDesk?为什么选择自托管?)
      • [2.1 RustDesk 是什么?](#2.1 RustDesk 是什么?)
      • [2.2 为什么选择自托管?](#2.2 为什么选择自托管?)
    • 三、环境准备与架构说明
    • 四、操作步骤
      • [4.1 在阿里云上安装 RustDesk 服务端](#4.1 在阿里云上安装 RustDesk 服务端)
        • [4.1.1 下载并运行安装脚本](#4.1.1 下载并运行安装脚本)
        • [4.1.2 获取注册配置信息](#4.1.2 获取注册配置信息)
        • [4.1.3 配置安全组](#4.1.3 配置安全组)
      • [4.2 被控设备端安装与配置](#4.2 被控设备端安装与配置)
      • [4.3 控制端(PC)配置](#4.3 控制端(PC)配置)
        • [4.3.1 下载 RustDesk 客户端](#4.3.1 下载 RustDesk 客户端)
        • [4.3.2 配置网络设置](#4.3.2 配置网络设置)
        • [4.3.3 建立远程连接](#4.3.3 建立远程连接)
    • 五、常见问题与注意事项
    • 六、总结

一、背景与需求场景

在日常工作和开发中,我们常常需要远程访问位于内网环境中的设备(例如家庭 NAS、公司内部测试服务器等)。传统的解决方案如 Tailscale + VNCNoMachine 虽然可行,但经常受限于带宽和延迟问题,体验不佳。而使用 FRP(内网穿透工具)加 VNC 的方式又配置复杂,维护成本较高。

因此,我决定尝试 RustDesk------一个开源的远程桌面软件,支持自建中继服务器,既能保障数据安全,又能提升连接质量。本文将详细介绍如何在阿里云服务器上部署 RustDesk 自托管服务,并实现跨网络远程桌面控制。


二、什么是 RustDesk?为什么选择自托管?

2.1 RustDesk 是什么?

RustDesk 是一款远程桌面控制软件,支持 Windows、Linux等多种平台。与 TeamViewer、AnyDesk 等商业软件类似,它提供远程控制、文件传输等功能,但更加轻量、开源,并允许用户自建服务器。

2.2 为什么选择自托管?

  • 数据隐私:所有远程连接数据经过自己的服务器,避免第三方窥探。
  • 性能优化:自建服务器可以选择合适的机房,优化网络延迟和带宽。
  • 不受限制:自托管版本没有连接时间或设备数量的限制。
  • 定制化强:可根据需要调整服务器配置和中继策略。

三、环境准备与架构说明

在开始之前,你需要:

  1. 一台阿里云 ECS 实例(建议 ≥ 2核4G,带宽按需选择)。
  2. 一个域名(可选,但推荐使用,方便后续维护)。
  3. 基本的 Linux 命令行操作经验。

整个系统的架构如下:

复制代码
控制端(PC) → 阿里云中继服务器(RustDesk-Server) → 被控设备(内网机器)

中继服务器负责转发数据,使得两个不在同一局域网的设备能够建立远程桌面连接。


四、操作步骤

4.1 在阿里云上安装 RustDesk 服务端

4.1.1 下载并运行安装脚本

通过以下命令快速安装 RustDesk 服务端:

bash 复制代码
wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh

安装完成后,你会看到类似下面的输出:

bash 复制代码
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 获取注册配置信息

运行以下命令,获取被控端注册时所需的配置参数:

bash 复制代码
cat /opt/gohttp/public/linuxclientinstall.sh | grep "rustdesk_cfg="

输出结果中的 rustdesk_cfg 值需要记录下来,它在被控端注册时使用。

4.1.3 配置安全组

在阿里云控制台中,打开ECS实例的安全组设置,放行以下端口:


4.2 被控设备端安装与配置

在被控制的设备(如内网Linux机器)上执行如下命令:

bash 复制代码
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 点击"连接" ,之后输入密码登录

成功连接后,你就可以远程操作设备了:


五、常见问题与注意事项

  1. 无法连接?

    • 检查安全组端口是否开放。
    • 确认所有配置中的IP/域名是否正确。
  2. 性能调优

    • 可尝试调节分辨率和帧率提升流畅度。
    • 若服务器带宽较小,建议降低远程桌面画质。
  3. 安全建议

    • 定期更换密码。
    • 限制安全组IP访问范围(如仅允许自己的IP访问管理端口)。

六、总结

通过本文,你已经在阿里云上成功搭建了一套 RustDesk 自托管远程桌面服务。不仅实现了内网设备的远程控制,还拥有了完全自主的数据控制权。

相关推荐
七夜zippoe4 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥5 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
孤岛悬城5 小时前
37 日志分析:ELK(Elasticsearch+Logstash+Kibana)
云计算
Fcy6486 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满6 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠6 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
主机哥哥6 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
Harvey9036 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技7 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀8 小时前
Linux环境变量
linux·运维·服务器