主题
阿里云服务器使用docker部署rustdesk中继服务器
一 rustdesk 是什么
RustDesk 是一个开源的远程桌面软件,旨在提供简单、安全、快速的远程访问和控制功能。它被设计为一个自托管解决方案,允许用户在自己的服务器上运行,以完全掌控数据和连接安全
二 为什么要使用
当然是因为开源、免费了,正好如果我们有自己的阿里云服务器,那么就可以很好的体验远程操作了, 比什么todesk 、向日葵、teamviewer 好用到不知道哪里去了。
三 hbbs和hbbr分别是什么
在 RustDesk 的服务器组件中,hbbs
和 hbbr
是两个关键的服务,它们分别扮演着不同的角色。以下是它们的定义和用途:
hbbs(RustDesk ID Server)
- 全称:
hbbs
是 RustDesk 的 ID 服务器(ID Server)。 - 功能:
hbbs
负责管理和分配客户端的唯一 ID,处理客户端注册,并维护客户端的连接信息。它是客户端和主机在连接时用来定位和建立连接的关键组件。 - 用途:当客户端启动时,它会向
hbbs
注册并获取一个唯一的 ID。这个 ID 被用于在客户端和主机之间建立连接。
hbbr(RustDesk Relay Server)
- 全称:
hbbr
是 RustDesk 的中继服务器(Relay Server)。 - 功能:
hbbr
负责在客户端和主机之间进行数据中继。它在直接连接(点对点连接)由于网络限制(如防火墙或 NAT)无法建立时,作为中间服务器转发数据流量。 - 用途:当客户端和主机无法直接连接时,它们会通过
hbbr
中继服务器进行通信,以确保数据流的顺利传输。
四 安装前准备
1 阿里云安装docker
众所周知,由于不可抗力因素,最近无法通过docker官方提供的安装方式进行docker的安装,所以这里提供下如何快捷的在阿里云安装docker。
在阿里云服务器官网上,进入详情页面,然后按下图进入,点击安装扩展后,搜索docker,安装即可,一会就好了。
2 在docker中导入导出image镜像
由于docker不可访问(呵呵mmp),所以rustdesk/rustdesk-server镜像无法拉去下来。 由于在阿里云服务器,所以代理操作不好实现(主要是安全问题 不想冒险),这时候我们通过在本地的虚拟机中把docker中的镜像导出出来,然后上传到阿里云服务器。 注意:docker 无法通过export http_proxy操作实现代理,具体如何实现,请参考我的博客
送佛送到西,我给大家提供了我已经导出好的rustdesk的镜像,直接上传后导入即可。点击下载
导出镜像
shell
docker save -o my_image.tar my_image:latest
这里,-o my_image.tar
指定了输出文件名,my_image:latest
是您要导出的镜像名称和标签。
导入镜像
shell
docker load -i my_image.tar
五 配置和使用
1. 部署 hbbs
(ID Server)
建议:在用户目录新建一个rustdesk文件夹,然后在rustdesk文件夹下执行此命令,因为执行完后会在当前文件夹下生成一个data文件,方便后期查看管理
您可以使用 Docker 部署 RustDesk ID 服务器并指定端口。以下是一个示例命令:
bash
sudo docker run --name hbbs \
-v ./data:/root \
-td \
--net=host \
--restart unless-stopped rustdesk/rustdesk-server hbbs \
-r <relay-server-ip[:port]>
参数解释:
- 注意 -r <relay-server-ip[:port]> 这个参数是指定中继服务器的ip地址和端口,如果都在本机安装,那么可以删除此项
- td,安装后显示密钥,如果不显示可以通过
docker logs hbbs
查看 - --net=host 这个是docker自己的参数,代表使用主机的网络。如果安装后有问题无法使用,可以去掉这个参数,然后通过-p 主机端口:容器内端口 来映射
- -v 磁盘文件映射 主机文件: docker容器
2. 部署 hbbr
(Relay Server)
同样,您可以使用 Docker 部署 RustDesk 中继服务器:
bash
sudo docker run --name hbbr \
-v ./data:/root \
-td \
--net=host \
--restart unless-stopped rustdesk/rustdesk-server hbbr
参数
- --net=host 这个是docker自己的参数,代表使用主机的网络。如果安装后有问题无法使用,可以去掉这个参数,然后通过-p 主机端口:容器内端口 来映射
3 密钥查看
通过docker logs hbbs
查看密钥
shell
root@iZuf6jan0ceb3gi12hemq4Z:~/rustdesk# docker logs hbbs
[2024-07-03 06:19:01.806999 +00:00] INFO [src/common.rs:148] Private/public key written to id_ed25519/id_ed25519.pub
[2024-07-03 06:19:01.810571 +00:00] INFO [src/rendezvous_server.rs:1191] Key: HYreFIuRLxIuN6AHsXBFwWn2VEwqPz8h81KLsdSWKQ=
[2024-07-03 06:19:01.810599 +00:00] INFO [src/peer.rs:84] DB_URL=./db_v2.sqlite3
[2024-07-03 06:19:01.842340 +00:00] INFO [src/rendezvous_server.rs:99] serial=0
[2024-07-03 06:19:01.842359 +00:00] INFO [src/common.rs:46] rendezvous-servers=[]
[2024-07-03 06:19:01.842364 +00:00] INFO [src/rendezvous_server.rs:101] Listening on tcp/udp :21116
[2024-07-03 06:19:01.842367 +00:00] INFO [src/rendezvous_server.rs:102] Listening on tcp :21115, extra port for NAT test
[2024-07-03 06:19:01.842370 +00:00] INFO [src/rendezvous_server.rs:103] Listening on websocket :21118
[2024-07-03 06:19:01.842403 +00:00] INFO [libs/hbb_common/src/udp.rs:35] Receive buf size of udp [::]:21116: Ok(212992)
[2024-07-03 06:19:01.842451 +00:00] INFO [src/rendezvous_server.rs:138] mask: None
[2024-07-03 06:19:01.842454 +00:00] INFO [src/rendezvous_server.rs:139] local-ip: ""
[2024-07-03 06:19:01.842459 +00:00] INFO [src/common.rs:46] relay-servers=[]
[2024-07-03 06:19:01.842501 +00:00] INFO [src/rendezvous_server.rs:153] ALWAYS_USE_RELAY=N
[2024-07-03 06:19:01.842528 +00:00] INFO [src/rendezvous_server.rs:185] Start
[2024-07-03 06:19:01.842676 +00:00] INFO [libs/hbb_common/src/udp.rs:35] Receive buf size of udp [::]:0: Ok(212992)
密钥是这一行
[2024-07-03 06:19:01.810571 +00:00] INFO [src/rendezvous_server.rs:1191] Key: HYreFIuRLxIuN6AHsXBFwWn2VEwqPz8h81KLsdSWKQ=
key: 后面的才是密钥。需要一会在客户端配置
4 默认端口
我们一般只使用21116(id服务器端口)、21117(中继服务器端口)就可以了。 确保端口在防火墙中打开了,21116需要UDP/TCP、21117需要TCP
**hbbs*监听的端口
- 21114(TCP,用于网络控制台,只有 Pro 版本可用)
- 21115(TCP)
- 21116(TCP/UDP)
- 和21118(TCP)
hbbr监听的端口
- 21117(TCP)
- 21119(TCP)
端口的作用
- 21115用于 NAT 类型测试
- 21116/UDP 用于 ID 注册和心跳服务
- 21116/TCP 用于 TCP打洞和连接服务
- 21117用于中继服务
- 21118和21119用于支持 web 客户端 如果不需要 Web 客户端(21118,21119)支持,可以禁用相应的端口。
5 客户端配置
配置位置:在设置>网络下配置
一图胜千言
总结
hbbs
是 ID 服务器,用于管理客户端 ID 和连接信息。hbbr
是中继服务器,用于在客户端和主机无法直接连接时进行数据中继。
通过理解这两个组件的功能和用途,您可以更好地配置和部署 RustDesk 服务器,以满足不同的网络环境和需求。
参考文章:
https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/docker/