云边日落 云边日落
  • 首页
  • 随笔
    • 生活随记
    • 思考感悟
    • 阅读笔记
  • 笔记
    • 编程开发
    • 环境配置
    • 问题解决
  • 资源
    • 软件推荐
    • 学习资料
    • 开源推荐
  • 友链
  • 关于

酒笙

管理员
IP归属地: 香港
文章
13
评论
1

推荐用户

酒笙

酒笙

青栀

青栀

酒笙
4 月前 香港

自建RustDesk远程桌面服务器:Docker部署完整指南

远程桌面工具在当今远程办公环境中扮演着重要角色。市面上虽有不少选择,但在体验和隐私方面往往存在不足。RustDesk作为一款开源的远程桌面解决方案,提供了自建服务器的能力,让用户完全掌控自己的数据。本文将详细介绍如何使用Docker部署RustDesk服务器。

准备工作

  • 一台运行Linux的服务器(本教程以Ubuntu为例)
  • 已安装Docker和Docker Compose
  • 服务器具有公网IP地址
  • 基本的命令行操作知识

服务器部署步骤

1. 创建项目目录

首先,创建一个专门的目录用于RustDesk服务:

mkdir rustdesk && cd rustdesk

2. 创建Docker Compose配置文件

在rustdesk目录中,创建compose.yml文件:

nano compose.yml

将以下内容复制到文件中:

services:
  hbbs:
    container_name: hbbs
    image: docker.io/rustdesk/rustdesk-server-pro:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: docker.io/rustdesk/rustdesk-server-pro:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

这个配置文件定义了两个服务:

  • hbbs:处理ID注册和心跳服务
  • hbbr:负责中继服务

3. 启动服务

使用Docker Compose启动服务:

docker compose up -d

命令中的-d参数让服务在后台运行。

4. 获取密钥

RustDesk需要一个密钥来验证客户端和服务器之间的连接。有两种方法可以获取密钥:

方法1:查看生成的密钥文件

cd data/
ls
cat id_ed*.pub

系统会列出生成的文件,找到以.pub结尾的文件并查看其内容,这就是你的公钥。

方法2:查看服务日志

docker compose logs -f

在日志输出中查找类似Key: YxxxxxxxxunU=的行,这个值就是你的密钥。

配置防火墙

RustDesk服务器需要开放特定端口才能正常工作。根据你使用的防火墙类型,选择相应的配置方法:

使用firewalld (CentOS/RHEL/Fedora)

# 开启防火墙
systemctl start firewalld
systemctl enable firewalld

# 开放端口
firewall-cmd --permanent --add-port=21114/tcp
firewall-cmd --permanent --add-port=21115/tcp
firewall-cmd --permanent --add-port=21116/tcp
firewall-cmd --permanent --add-port=21116/udp
firewall-cmd --permanent --add-port=21117/tcp
firewall-cmd --permanent --add-port=21118/tcp
firewall-cmd --permanent --add-port=21119/tcp

# 重新加载防火墙配置
firewall-cmd --reload

# 查看已开放的端口
firewall-cmd --list-ports

使用UFW (Ubuntu/Debian)

# 启用UFW
sudo ufw enable

# 开放端口
sudo ufw allow 21114/tcp
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp

# 查看UFW状态
sudo ufw status

使用iptables

# 开放TCP端口
iptables -A INPUT -p tcp --dport 21114 -j ACCEPT
iptables -A INPUT -p tcp --dport 21115 -j ACCEPT
iptables -A INPUT -p tcp --dport 21116 -j ACCEPT
iptables -A INPUT -p tcp --dport 21117 -j ACCEPT
iptables -A INPUT -p tcp --dport 21118 -j ACCEPT
iptables -A INPUT -p tcp --dport 21119 -j ACCEPT

# 开放UDP端口
iptables -A INPUT -p udp --dport 21116 -j ACCEPT

# 保存iptables规则(根据发行版可能有所不同)
# Debian/Ubuntu:
iptables-save > /etc/iptables/rules.v4

# CentOS/RHEL:
service iptables save

端口说明

RustDesk服务器使用以下端口:

  • hbbs服务:
  • 21114 (TCP) - Web控制台(仅专业版)
  • 21115 (TCP) - NAT类型测试
  • 21116 (TCP/UDP) - ID注册、心跳服务和TCP打洞
  • 21118 (TCP) - WebSocket(Web客户端)
  • hbbr服务:
  • 21117 (TCP) - 中继服务
  • 21119 (TCP) - WebSocket(Web客户端)

重要提示:端口21116需要同时开放TCP和UDP协议。如果不需要Web客户端支持,可以不开放21118和21119端口。

客户端配置

1. 下载客户端

从RustDesk的GitHub发布页面下载适合你操作系统的客户端:
https://github.com/rustdesk/rustdesk/releases

2. 安装并配置客户端

安装完成后,按照以下步骤配置:

  1. 打开RustDesk客户端,进入主界面
    RustDesk主界面
  2. 找到并点击"网络"选项,解锁设置
    网络设置
  3. 选择"ID/中继服务器"选项
    ID/中继服务器设置
  4. 填写服务器信息:
  • ID服务器:你的服务器IP:21116
  • 中继服务器:你的服务器IP:21117
  • 密钥:之前获取的密钥
    填写服务器信息
  1. 点击确认保存设置
  2. 返回主界面,点击"启动服务"
    启动服务
  3. 服务成功启动后,界面会显示"就绪"状态
    服务就绪

连接远程设备

在需要被控制的设备上完成上述客户端配置后,该设备会获得一个ID。在控制端设备上同样配置好服务器信息,然后使用被控设备的ID进行连接即可实现远程控制。

总结

通过本教程,你已经成功部署了自己的RustDesk服务器,并配置了客户端连接。相比使用公共服务器,自建服务器具有更好的隐私保护和数据控制能力,特别适合企业内部或对安全有较高要求的场景使用。

RustDesk作为开源软件,不断有新的功能和安全更新,建议定期检查GitHub仓库获取最新版本,以保持系统的安全性和稳定性。

参考资源

  • RustDesk官方GitHub仓库:https://github.com/rustdesk/rustdesk
  • RustDesk官方文档:https://rustdesk.com/docs/
  • 开源推荐
  • 环境配置
  • 笔记
  • 资源
  • 问题解决
  • Docker
  • RustDesk
  • 远程控制
  • 远程桌面
等 人表示很赞
782
0

评论

请在登录后评论...
空空如也
推荐 PotPlayer:PC 平台最强视频播放器之一
一款经过深度优化的 PotPlayer 播放器分享,集成了完整解码包、精选主题和最佳性能设置。无论是日常观影还是专业视频处理,都能获得出色的播放体验。本文详细介绍了优化内容和使用技巧。 ...
  • 资源
  • 软件推荐
  • PotPlayer
  • 在线播放
  • 影音系统
  • 视频播放器
  • 软件优化
756 0
推荐 在线安全检测工具分享
整理了一些实用的在线安全检测工具,平时下载的绿色软件可以先用这些平台扫描一下。虽然不能百分百防止中毒,但安装前先检测一下,还是能避免很多安全隐患。 ...
  • 环境配置
  • 笔记
  • 在线工具
  • 安全工具
  • 安全防护
  • 病毒扫描
  • 软件检测
1,092 0
推荐 飞猫M20短信转发功能实现:飞书通知与自启
本文提供了一套完整的飞猫M20短信转发解决方案,通过精心设计的Shell脚本实现了:1) 自动登录设备管理界面并维持会话 2) 增量式短信索引跟踪机制 3) 纯文本工具解析JSON数据 4) 飞书富文本卡片消息推送。针对嵌入式设备特性,详细 ...
  • 笔记
  • 编程开发
  • 问题解决
  • BusyBox
  • Shell脚本
  • 短信转发
  • 飞猫M20
566 0
推荐 手把手教你用Homarr打造私人导航页|NAS玩家必备神器
本文针对NAS玩家和自建服务用户,详细解析如何通过Docker快速部署Homarr导航面板。该工具突破传统书签局限,提供实时容器状态监测、跨平台数据同步、NAS生态深度整合等功能,配套可视化配置指南与维护方案,助您构建高颜值服务管理中心。 ...
  • 开源推荐
  • 资源
  • Docker
  • Homarr教程
  • NAS神器
  • 开源项目
  • 自建导航页
1,052 0
推荐 搭建全自动化影视库教程:从零开始打造个人媒体中心 (基于网盘/NAS方案)
前言 服务器有闲置资源,遂折腾一下影视库。本文将介绍如何搭建一个全自动化的影视库系统,从资源获取到观看体验,实现完全自动化的流程。 方案概述 本文将介绍两种方案: 本地 NAS 存储方案 网盘存储方 ...
  • 环境配置
  • 笔记
  • Alist
  • Docker
  • Emby
  • MoviePilot
  • 在线播放
1,325 0

推荐栏目

  • 笔记
  • 资源
  • 编程开发
  • 问题解决
  • 环境配置
  • 开源推荐
  • 随笔
  • 生活随记
  • 软件推荐

推荐标签

  • Docker
  • AI绘图
  • JavaScript
  • Tampermonkey
  • Midjourney
  • 开源项目
  • 在线播放
  • 影音系统
  • 自动填表
    暂无内容
Copyright © 2025 云边日落. All rights reserved. Designed by nicetheme.
  • 随笔
    • 思考感悟
    • 生活随记
    • 阅读笔记
  • 笔记
    • 环境配置
    • 编程开发
    • 问题解决
  • 资源
    • 学习资料
    • 开源推荐
    • 软件推荐
  • 友联
  • 关于
欢迎回来
账号注册 忘记密码?
其他登录方式
欢迎回来
账号注册 忘记密码?
其他登录方式
微信扫码登录
未注册的微信号将自动创建账号
扫码回复关键词「登录」获取验证码
其他登录方式
免费注册
其他登录方式
重设密码
返回登录