PW0N's Blog

分享更多的技术让志同道合的一起学习交流

0%

拥有一个安全自己操作的远程软件:RustDesk 完全私有化部署教程

前言

在如今的远程办公和技术支持中,安全是首要考虑因素。然而,大部分主流的远程控制软件虽然安全,但其高级功能通常需要付费订阅,这不仅增加了成本,还可能将数据暴露在第三方服务器中。与其花费高额费用购买订阅,不如通过自建服务端,拥有完全掌控的远程解决方案。如果你动手能力强且能自行维护,这将是最佳选择。


RustDesk 介绍

RustDesk 是一款开源的远程桌面软件,类似于 TeamViewer 和 AnyDesk,但它的特点是完全开源且自托管。RustDesk 允许用户在不同的设备和平台之间进行远程控制,支持 Windows、Linux、macOS、Android 和 iOS 等操作系统。

作为向日葵等商业软件的替代方案,它具备高性能、安全性和无需订阅等优点。本文将详细介绍 RustDesk 的特点、与向日葵的对比,并指导如何通过 Docker 搭建 RustDesk 服务端。


RustDesk 与向日葵的对比

特性 RustDesk 向日葵
开源
部署方式 支持自建服务端 官方服务器或订阅
数据隐私 完全掌控 依赖官方服务
成本 免费 部分功能需订阅
性能 高效(P2P 优先,支持中继) 视网络状况而定

RustDesk 的主要优势在于开源和私有化部署,适合需要高度安全和灵活控制的用户。


搭建 RustDesk 服务端(Docker 优先)

1. 环境准备

系统与工具

  • 操作系统:Ubuntu / CentOS
  • 安装 Docker:

Ubuntu:

1
sudo apt update && sudo apt install -y docker.io docker-compose

CentOS:

1
sudo yum update -y && sudo yum install -y docker docker-compose

启动并设置 Docker 开机启动:

1
2
sudo systemctl start docker
sudo systemctl enable docker

2. 使用 Docker 部署 RustDesk 服务端

RustDesk 服务端包括 hbbs(信令服务器)和 hbbr(中继服务器),可以通过 Docker 一键部署。

拉取 RustDesk Docker 镜像

1
docker pull rustdesk/rustdesk-server:latest

创建 Docker 容器

运行以下命令启动服务端:

1
2
3
4
5
6
7
docker run -d \
--name rustdesk-server \
-p 21114:21114 \
-p 21115:21115 \
-p 21116:21116 \
-v $(pwd)/data:/data \
rustdesk/rustdesk-server:latest
  • -p 21114:21114:信令服务器(ID Server),用于设备注册和通信
  • -p 21115:21115:中继服务器(Relay Server),用于穿透 NAT 和中继数据传输
  • -p 21116:21116:API 服务器(File Transfer Server),用于文件传输和其他 API 调用
  • -v $(pwd)/data:/data:持久化存储数据

3. 配置防火墙

确保开放必要端口:

1
2
3
4
5
6
7
8
9
10
# Ubuntu
sudo ufw allow 21114/tcp
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp

# CentOS
sudo firewall-cmd --add-port=21114/tcp --permanent
sudo firewall-cmd --add-port=21115/tcp --permanent
sudo firewall-cmd --add-port=21116/tcp --permanent
sudo firewall-cmd --reload

4. 获取秘钥与配置

RustDesk 服务端的秘钥存储在容器内 /data 目录下。

进入容器查看秘钥:

1
docker exec -it rustdesk-server cat /data/id_ed25519.pub

输出的公钥内容即为客户端连接时需要的秘钥。


安装客户端

你可以在 RustDesk 1.3.6 版本发布页面 下载适用于各平台的 RustDesk 客户端安装包。


客户端配置详解

在 RustDesk 客户端中,需要配置以下内容:

  1. ID Server(信令服务器)

    • 端口:21114
    • 用途:负责设备注册和管理设备之间的连接。
    • 示例配置:填入你的服务器域名或 IP 地址,例如 yourdomain.com
  2. Relay Server(中继服务器)

    • 端口:21115
    • 用途:用于设备之间的中继通信,尤其是无法直接 P2P 连接时。
    • 示例配置:同样填写你的服务器域名或 IP 地址。
  3. File Transfer Server(API 服务器)

    • 端口:21116
    • 用途:文件传输服务,支持远程桌面的文件操作。
    • 示例配置:填写与信令服务器相同的地址。
  4. Key(秘钥)

    • 用途:确保客户端与服务端的连接安全。
    • 配置方式:将前面获取的公钥粘贴到「Key」字段中。

在 RustDesk 客户端的设置页面中,依次填写以上信息,完成配置。
rustdesk-setting


验证服务

  1. 启动客户端并尝试连接目标设备。
  2. 检查服务端日志,确保连接正常。

查看 Docker 容器日志:

1
docker logs rustdesk-server

总结

RustDesk 通过开源、可私有化部署的特点,为用户提供了安全高效的远程桌面解决方案。与向日葵相比,RustDesk 的免费和隐私优势尤为突出。通过 Docker 部署 RustDesk 服务端,并结合必要端口配置和秘钥管理,可以轻松搭建自己的远程桌面服务。
参考 RustDesk 官方网站 获取更多信息。

Link
Plus
Share
Class
Send
Send
Pin