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

酒笙

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

推荐用户

酒笙

酒笙

青栀

青栀

酒笙
2 月前 香港

自建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
  • 远程控制
  • 远程桌面
等 人表示很赞
464
0

评论

请在登录后评论...
空空如也
推荐 FileCodeBox - 开源轻量级文件快递柜
FileCodeBox是一款轻量级的文件快递柜系统,支持文本和文件的临时分享。项目采用FastAPI + Vue3技术栈,提供Docker一键部署,支持自定义提取次数和有效期,适合个人或小团队的文件分享场景。系统设计简洁,安全可靠,是一个非 ...
  • 开源推荐
  • 资源
  • Docker
  • ElementUI
  • FastAPI
  • Python项目
  • Vue3
583 0
推荐 PotPlayer:PC 平台最强视频播放器之一
一款经过深度优化的 PotPlayer 播放器分享,集成了完整解码包、精选主题和最佳性能设置。无论是日常观影还是专业视频处理,都能获得出色的播放体验。本文详细介绍了优化内容和使用技巧。 ...
  • 资源
  • 软件推荐
  • PotPlayer
  • 在线播放
  • 影音系统
  • 视频播放器
  • 软件优化
593 0
推荐 Shell脚本完全指南:从入门到精通的Linux命令行编程
本教程提供了Shell脚本编程的全面指南,从Shell基础概念开始,详细介绍了变量类型、字符串操作、数组处理和参数传递等核心知识。教程深入讲解了条件语句、循环结构和函数定义等流程控制机制,并涵盖了正则表达式、错误处理、调试技巧和进程管理等高 ...
  • 学习资料
  • 笔记
  • 编程开发
  • 资源
  • Bash
  • Linux
  • shell
  • 命令行
  • 文本处理
262 0
推荐 让文件搜索变得简单:Listary
Listary 是一款出色的文件搜索工具,它以快速和便捷的功能帮助用户轻松找到所需文件。 ...
Listary
Listary – 一款真正令人惊叹且精致的搜索实用程序,介于启动器和文件管理器之间,但又兼而有之。 Listary 位于您主要的文件管理应用程序旁边,使管理列表和查找文件变得轻而易举。 真的很特别,值得您下载。
数码荔枝
本软件商店隶属于上海立七数码科技有限公司。我司成立于 2021 年,主营正版软件销售,并提供在线客服支持与售后。让正版软件消费者买的放心,用的安心!
  • 资源
  • 软件推荐
  • Windows
  • 办公效率
  • 快捷使用
  • 文件搜索
  • 电脑工具
698 0
推荐 Midjourney Survey Master: 全自动填写问卷获取免费快速时长
基于之前的简单脚本,本文介绍全新升级的Midjourney Survey Master工具,它能自动识别并填写Midjourney所有类型的调查问卷,包括Demographics(人口统计)和Personality(个性/价值观)问卷。新版 ...
  • 笔记
  • 编程开发
  • 问题解决
  • AI绘图
  • JavaScript
  • Midjourney
  • Tampermonkey
  • 自动填表
459 0

推荐栏目

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

推荐标签

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