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

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

    • 一、背景与需求场景
    • 二、什么是 RustDesk?为什么选择自托管?
      • 2.1 RustDesk 是什么?
      • 2.2 为什么选择自托管?
    • 三、环境准备与架构说明
    • 四、操作步骤
      • 4.1 在阿里云上安装 RustDesk 服务端
        • 4.1.1 下载并运行安装脚本
        • 4.1.2 获取注册配置信息
        • 4.1.3 配置安全组
      • 4.2 被控设备端安装与配置
      • 4.3 控制端(PC)配置
        • 4.3.1 下载 RustDesk 客户端
        • 4.3.2 配置网络设置
        • 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 服务端:

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 点击“连接” ,之后输入密码登录
请添加图片描述
请添加图片描述

成功连接后,你就可以远程操作设备了:
请添加图片描述


五、常见问题与注意事项

  1. 无法连接?

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

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

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

六、总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96291.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

细说分布式ID

针对高并发写&#xff0c;分布式ID是其业务基础&#xff0c;本文从一个面试题细细展开。面试官&#xff1a;1.对于Mysql的InnoDB引擎下&#xff0c;自增ID和UUID作为主键各自有什么优劣&#xff0c;对于一张表的主键你建议使用哪种ID&#xff1f;2.除了UUID是否还了解其他类型的…

2025年大数据专业证书报考指南:专科学历必看的8大选择​

对于大专学历的同学来说&#xff0c;2025年进入大数据行业是一个充满机遇的选择。大数据领域发展迅速&#xff0c;各类证书能够帮助求职者提升专业能力、增强就业竞争力。其中最推荐的是CDA数据分析师&#xff0c;这个证书适应了未来数字化经济和AI发展趋势&#xff0c;难度不高…

Python爬虫实战:研究Axis Artist模块,构建电商数据采集和分析系统

1. 引言 1.1 研究背景与意义 在大数据时代,互联网上蕴藏着海量有价值的信息,这些信息涵盖了社会、经济、科技等各个领域。高效地从互联网获取数据并进行深度分析,对于企业决策、学术研究、市场分析等都具有重要意义。Python 作为一种功能强大的编程语言,凭借其丰富的库支…

突破大语言模型推理瓶颈:深度解析依赖关系与优化策略

突破大语言模型推理瓶颈&#xff1a;深度解析依赖关系与优化策略当ChatGPT需要5秒才能生成一个回答&#xff0c;当企业级大模型每秒只能处理3个用户请求——这些性能瓶颈的背后&#xff0c;隐藏着大语言模型推理计算中复杂的依赖关系网。在大语言模型推理过程中&#xff0c;依赖…

整理了几道前端面试题

1. 若是有两个数组ar1和ar2&#xff0c;求它们的并集和交集&#xff0c;要怎么做&#xff1f; const ar1 [1, 2, 3, 4]; const ar2 [3, 4, 5, 6];一、求并集 (Union) 目标&#xff1a; 把两个数组合并成一个新数组&#xff0c;新数组包含所有出现过的元素&#xff0c;但每个…

Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版

Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版 1 下载Ubuntu镜像 在Ubuntu官网下载Ubuntu24.04 LTS的arm版镜像&#xff0c;这里选择ubuntu-24.04-live-server-arm64.iso&#xff0c;支持arm的似乎没有合适的desktop版本&#xff0c;Server版本默认是不带图…

开源与定制化对比:哪种在线教育系统源码更适合教育培训APP开发?

如今&#xff0c;“在线教育系统源码”已经成为许多教育培训机构、创业者甚至传统学校的高频关键词。无论是打造一款在线教育APP&#xff0c;还是开发企业内部培训平台&#xff0c;源码选择都决定了后续的开发效率、产品体验与商业化潜力。 在实际开发中&#xff0c;常见的源码…

中间件的日志分析

将日志文件access.log复制到kali中进行分析使用命令查看文件中各IP的访问次数&#xff0c;依次分析其行为awk { print $1 } access.log | sort | uniq -c |sort -nr172.16.3.189cat access.log | grep 172.16.3.198行为模式分析使用固定弱密码进行身份验证 几乎所有请求都使用用…

【Big Data】云原生与AI时代的存储基石 Apache Ozone 的技术演进路径

目录 一、Apache Ozone是什么&#xff1f; 二、Ozone的诞生背景 三、Ozone的架构设计 1. 分层架构设计 2. Ozone Manager (OM) 3. Storage Container Manager (SCM) 4. DataNode 5. Raft协议应用 四、Ozone解决的关键问题 1. 元数据管理瓶颈 2. 小文件性能问题 3. …

抖音直播礼物弹幕抓取工具:技术实现与功能解析

基于Python的直播间数据采集技术实践一、项目概述基于Python开发的直播间数据采集方案&#xff0c;采用最新签名算法(dysign)实现稳定连接&#xff0c;实时获取直播间各类互动数据&#xff0c;为直播数据分析和互动应用开发提供技术支持。二、核心功能实时消息监控用户进入提醒…

添加地址页面,可以添加复制粘贴,自动识别地址的功能uniapp实现方式

主要用uni.getClipboardData(OBJECT)&#xff0c;更多信息可以到uniapp官网查看以下实现方式 1利用api, 2针对判断优化方案&#xff0c;在线APIhandleConfirm2(){let that this;promisRequest({url: https://wangzc.wang/smAddress,data: {"address": that.…

ESP32 驱动 PWM 舵机为什么必须共地?——从原理到实践全解析

在使用 ESP32 控制 PWM 舵机 的过程中,新手经常遇到一个常见问题:舵机不动、乱动、甚至烧坏芯片。 其中最典型的原因,就是没有正确共地。 很多初学者会疑惑:“外接电池只是给舵机供电,为什么还要把电池的地线接到 ESP32 的 GND 上呢?” 本文将从 信号逻辑、闭合回路、…

细菌基因组genome二代测序数据分析

kraken2去除污染conda create -n kraken2 conda activate kraken2 conda install kraken2 -c bioconda mkdir kraken2_outputkraken2 --db ../../kraken2_db/k2_pluspf_20250402/ --threads 8 --paired 250811_HS67EV0804_R1.fastq.gz 250811_HS67EV0804_R2.fastq.gz --use-nam…

工业网络架构的未来:智慧化工厂中的低延迟与高可靠性设计

1. 引言工业网络正经历从传统有线到无线、从低速到高速的全面升级。某铝箔智慧工厂专注于新能源铝箔的生产&#xff0c;依赖低延迟、高可靠的网络支持实现生产控制与智能管理。本文将探讨某铝箔智慧工厂网络架构设计的关键点及其实施策略。2. 某铝箔智慧工厂的网络挑战多终端接…

Android14 init.rc中on boot阶段操作4

Android14 init.rc中on early-init, init, late-init, early-fs, post-fs阶段详解1 Android14 init.rc的on late-fs, post-fs-data阶段主要操作详解2 Android14 init.rc中启动Zygote详解3 Android14 init.rc中on boot阶段操作4 1 on boot和低内存设备的启动优化 仅在ro.con…

CodeSandbox Desktop:零配置项目启动工具,实现项目环境隔离与Github无缝同步

你有没有过为了跑一个简单的 Demo&#xff0c;花半小时配置环境还失败的经历&#xff1f;比如想测试一个 Vue3 组件&#xff0c;先装 Node.js&#xff0c;结果版本太高和项目依赖不兼容&#xff1b;换低版本又提示 “找不到 python 环境”&#xff1b;好不容易装完依赖&#xf…

人工智能-python-深度学习-经典神经网络AlexNet

AlexNet&#xff08;详解&#xff09;——从原理到 PyTorch 实现&#xff08;含训练示例&#xff09; 文章目录AlexNet&#xff08;详解&#xff09;——从原理到 PyTorch 实现&#xff08;含训练示例&#xff09;1. 发展历史与比赛成绩2. AlexNet 的核心思想&#xff08;一句话…

《sklearn机器学习——指标和评分1》

3个不同的API可供评估模型预测质量&#xff1a; 评估器评分方法&#xff1a;评估器有一个score方法&#xff0c;它给计划解决的问题提供一个初始评估标准。这部分内容不在这里讨论&#xff0c;但会出现在每一个评估器的文件中。 评分参数&#xff1a;使用交叉验证&#xff08;…

人工智能中的线性代数总结--简单篇

numpy库中的dot函数来计算矩阵和向量的点积def matrix_vector_dot_product(a, b):import numpy as npif (len(a[0]) ! len(b)):return -1# 使用tolist()将结果转换为列表return np.dot(a, b).tolist()原始方法def matrix_vector_dot_product(matrix, vector):if len(matrix[0])…

又是全网首创/纯Qt实现28181设备模拟器/rtp视频点播/桌面转28181/任意文件转28181/跨平台

一、前言说明 这个工具前前后后也算是废了不少功夫&#xff0c;最开始是因为28181服务端的组件已经完美实现&#xff0c;对照国标文档看了很多遍&#xff0c;逐个实现需要的交互协议&#xff0c;整体上比onvif协议要难不少&#xff0c;主要是涉及到的东西比较多&#xff0c;有…