本文最后更新于 2024-05-16,

若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。

本站只有Telegram群组为唯一交流群组, 点击加入

文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请

前言

经常需要帮朋友远程,远程工具一般都是用Todesk,不过似乎国内的软件都需要登录+绑定手机号等信息,还需要绑定机器码、邮箱验证等步骤,非常繁琐,并且我对他们的安全性并不信任。

今天就来推荐一款远程桌面的开源产品——Rust desk

1715691174660.webp

项目地址:https://github.com/rustdesk/rustdesk

Docker镜像地址:https://hub.docker.com/r/rustdesk/rustdesk-server/tags

官网地址:https://rustdesk.com

文档地址:https://rustdesk.com/docs/zh-cn/self-host/

特点

  • 用Rust编写
  • 开箱即用,不需要复杂的配置
  • 你可以完全控制你的数据,而不用担心安全问题
  • 你可以使用官方的rendezvous/relay服务器,也可以建立你自己的rendezvous/relay服务器。

1715691368521.webp

安装Docker🐳

利用Docker-compose搭建,易于更新

先建立一个文件夹

mkdir -p ~/rustdesk &&cd $_

vim docker-compose.yml

docker-compose填入以下内容:

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r hbbs.example.com:21117   # hbbs.example.com改成你的域名
    volumes:
      - ./hbbs:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./hbbr:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。

运行

docker-compose up -d

注意

默认情况下,hbbs 监听 21115(tcp), 21116(tcp/udp), 21118(tcp),hbbr 监听 21117(tcp), 21119(tcp)

务必在防火墙开启这几个端口, 请注意 21116同时要开启 TCPUDP

其中 21115是hbbs用作NAT类型测试,21116/UDP是hbbs用作ID注册与心跳服务,21116/TCP是hbbs用作TCP打洞与连接服务,21117是hbbr用作中继服务, 2111821119是为了支持网页客户端。

如果您不需要网页客户端 (21118,21119)支持,对应端口可以不开。

  • TCP(21115、21116、21117、21118、21119
  • UDP( 21116 )

更新

cd ~/rustdesk # 进入docker-compose所在的文件夹

docker-compose pull    # 拉取最新的镜像

docker-compose up -d   # 重新更新当前镜像

卸载

cd ~/rustdesk # 进入docker-compose所在的文件夹

docker-compose down    # 停止容器,此时不会删除映射到本地的数据

rm -rf ~/rustdesk # 完全删除映射到本地的数据

反向代理

参考教程:安装及使用

⚠️Nginx Proxy Manager(以下简称NPM)会用到80、443端口,所以本机不能占用(比如原来就有Nginx)

互联网使用请确保完成了域名解析

使用教程

安装及配置

下载好软件打开。点击 ID 右侧的菜单按钮如下,选择“ ID/中继服务器”。

1715802869499.webp

在 ID 服务器输入框中(被控端+主控端)输入 hbbs 主机或 ip 地址,另外两个地址可以不填,RustDesk会自动推导(如果没有特别设定),中继服务器指的是hbbr(21116)端口。

例如:

hbbs.example.com

或者

hbbs.example.com:21116

1715802892223.webp

1715802900347.webp

1715802911282.webp
1715802913974.webp
1715802917111.webp
1715802922348.webp
1715802926563.webp
1715802929887.webp

传输文件

1715802973295.webp
1715802976339.webp

1715802979373.webp

加密通话

默认是不加密的。我们可以通过设置Key,来加密通话。

以下来自官方文档

hbbs在第一次运行时,会自动产生一对加密私钥和公钥(分别位于运行目录下的 id_ed25519id_ed25519.pub文件中),其主要用途是为了通讯加密。

1715803021499.webp

如果您在上一步骤中没有填写 Key:(公钥文件 id_ed25519.pub中的内容),不影响连接,但是连接无法加密。

cat /root/rustdesk/hbbs/id_ed25519.pub

如果您禁止没有key的用户建立非加密连接,请在运行hbbs和hbbr的时候添加 -k _ 参数,例如:

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r hbbs.example.com:21117 -k _     # 加上-k _ 
    volumes:
      - ./hbbs:/root
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    image: rustdesk/rustdesk-server:latest
    command: hbbr -k _ # 加上-k _ 
    volumes:
      - ./hbbr:/root
    networks:
      - rustdesk-net
    restart: unless-stopped

复制

实测加上 -k _参数后,会导致无法连接,不确定是不是BUG,有解决的小伙伴欢迎在评论区留言交流!

如果要更改key,请删除 id_ed25519id_ed25519.pub 文件并重新启动 hbbs/hbbr,hbbs将会产生新的密钥对。

把配置放在可执行文件名里 (Windows only)

rustdesk.exe 修改为 rustdesk-host=<host-ip-or-name>,key=<public-key-string>.exe, 例如: rustdesk-host=192.168.1.137,key=xfdsfsd32=32.exe,你可以在About窗口看到配置结果,如下图所示。

hostkey 都需要添加,缺少一个就不好使。

如果密钥中有无效字符而不能用于文件名,请删除 id_ed25519文件并重新启动hbbs/hbbr,id_ed25519.pub文件将被重新生成,请重复操作直到获得有效字符。

1715803283725.webp