• 开源的远程桌面软件RustDesk


    在这里插入图片描述

    本文是应网友 figo 的要求写的

    什么是 RustDesk ?

    RustDesk 是一款开源的远程桌面软件,开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。可以使用官方的注册/中继服务器, 或者自己架设。

    今天我们要做的就是通过自建服务器,然后从远程访问家里的电脑,之所以要自建,是因为 RustDesk 提供的免费公共服务器比较少

    安装

    在群晖上以 Docker 方式安装。

    在注册表中搜索 rustdesk ,选择第一个 rustdesk/rustdesk-server,双击直接下载。

    在这里插入图片描述

    本文起草于 202111 月,当时只有一个版本,所以不需要选择。现在已经支持 x86arm64v8 平台,x86latest 即可。

    在这里插入图片描述

    【注意】:后面无论是 hbbs 还是 hbbr 都是基于这个镜像安装

    安装 hbbs

    hbbs 指的是 RustDesk ID/Rendezvous server,也就是 RustDesk 注册服务器。

    默认情况下,hbbs 监听 21115(tcp)21116(tcp/udp)21118(tcp)。其中:

    • 21115hbbs 用作 NAT 类型测试;
    • 21116/UDPhbbs 用作 ID 注册与心跳服务;
    • 21116/TCPhbbs 用作TCP 打洞与连接服务;
    • 21118 是为了支持网页客户端,注意是 WebSocket 协议,不是 http 协议;

    因为没找到网页客户端,不知道怎么用 21118 端口,所以后面的端口映射没打开该端口,需要的话可以添加在 tcp 协议中;

    容器名称

    默认为 rustdesk-rustdesk-server1,为了方便区分,重命名为 rd-hbbs,这不是必须的操作

    docker 文件夹中,创建一个新文件夹,并将其命名为 rustdesk,然后在其中建两个子文件夹,分别是 hbbshbbr

    在这里插入图片描述

    文件夹装载路径说明
    docker/rustdesk/hbbs/root存放文件,包括 key 文件

    在这里插入图片描述

    网络

    勾选 使用与 Docker Host 相同的网络

    在这里插入图片描述

    环境

    命令中输入 hbbs -r

    其中:

    • relay-server-ip 为群晖主机 IP
    • port 默认为 21117 , 没改的话可以不填;

    所以我们只要在 命令 中输入 hbbs -r 192.168.0.197 即可

    在这里插入图片描述

    安装 hbbr

    hbbr 指的是 RustDesk relay server ,也就是 RustDesk 中继服务器。

    默认情况下,hbbr 监听 21117(tcp), 21119(tcp)。其中:

    • 21117hbbr 用作中继服务;
    • 21119 是为了支持网页客户端,注意是 WebSocket 协议,不是 http 协议;

    因为不知道怎么用 21119 端口,所以后面的端口映射没打开该端口,需要的话可以添加在 tcp 协议中;

    容器名称

    默认为 rustdesk-rustdesk-server1,为了方便区分,重命名为 rd-hbbr,这不是必须的操作

    在这里插入图片描述

    前面已经建好了文件夹,这里直接使用 就行

    文件夹装载路径说明
    docker/rustdesk/hbbr/root存放文件

    在这里插入图片描述

    网络

    勾选 使用与 Docker Host 相同的网络

    在这里插入图片描述

    环境

    命令 行中输入 hbbr 即可

    在这里插入图片描述

    命令行安装

    如果你熟悉命令行,可能用 docker cli 更快捷

    # 新建文件夹 restdesk 和 子目录
    mkdir -p /volume2/docker/rustdesk/{hbbs,hbbr}
    
    # 进入 restdesk 目录
    cd /volume2/docker/rustdesk
    
    # 运行容器 hbbs
    docker run -d \
       --name rd-hbbs \
       --restart unless-stopped \
       --net=host \
       -v $(pwd)/hbbs:/root \
       rustdesk/rustdesk-server \
       hbbs -r <relay-server-ip[:port]>
    
    # hbbs 示例
    ## relay-server-ip :为群晖主机 IP
    ## port 默认为 21117 , 没改的话可以不填
    docker run -d \
       --name rd-hbbs \
       --restart unless-stopped \
       --net=host \
       -v $(pwd)/hbbs:/root \
       rustdesk/rustdesk-server \
       hbbs -r 192.168.0.197
    
    # hbbr 示例
    docker run -d \
       --name rd-hbbr \
       --restart unless-stopped \
       --net=host \
       -v $(pwd)/hbbr:/root \
       rustdesk/rustdesk-server \
       hbbr
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

    version: '3'
    
    services:
      hbbs:
        image: rustdesk/rustdesk-server
        container_name: rd-hbbs
        restart: always
        network_mode: "host"
        depends_on:
          - hbbr
        volumes:
          - ./hbbs:/root
        command: hbbs -r 192.168.0.197
    
      hbbr:
        image: rustdesk/rustdesk-server
        container_name: rd-hbbr
        restart: always
        network_mode: "host"
        volumes:
          - ./hbbr:/root
        command: hbbr
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    然后执行下面的命令

    # 新建文件夹 restdesk 和 子目录
    mkdir -p /volume2/docker/rustdesk/{hbbs,hbbr}
    
    # 进入 rustdesk 目录
    cd /volume2/docker/rustdesk
    
    # 将 docker-compose.yml 放入当前目录
    
    # 一键启动
    docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    不出意外的话,两个容器应该都正常启动了

    在这里插入图片描述

    运行

    在运行客户端之前,还有少许网络上的设置,不管你是用 frp 还是 ddns ,要做的就是将相应的端口打开

    frp 设置

    老苏用的是 frp,需要在 frpc.ini 中增加下面👇这段:

    [range:rd_tcp]
    # 2022.07.13新增,for RustDesk 测试
    type = tcp
    local_ip = 192.168.0.197
    local_port = 21115-21117
    remote_port = 21115-21117
    custom_domains = id.laosu.ml
    
    [rd_udp]
    # 2022.07.13新增,for RustDesk 测试
    type = udp
    local_ip = 192.168.0.197
    local_port = 21116
    remote_port = 21116
    custom_domains = id.laosu.ml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    保存之后,重启 frpc 容器。

    ddns 设置

    老苏没有公网 IP ,所以没机会使用过 ddns,但从原理上看,跟局域网使用的原理一致,只是不过是将局域网 IP 换成了域名,需要在路由器放行下面👇的端口:

    • 21115-21117 ,协议 tcp
    • 21116,协议 udp

    客户端填写 ID 服务器 时,同样也是 域名:21116

    客户端

    https://rustdesk.com/zh/ 可以下载对应平台的客户端

    找到 ID/中级服务器

    在这里插入图片描述

    填入前面 frpc 中的设置

    另外两个地址可以不填,RustDesk 会自动推导(如果没有特别设定的话)

    File Station 中找到 /docker/restdesk/hbbs 目录,其中 id_ed25519.pub 就是我们需要的 key

    可以下载之后用文本编辑器打开,也可以直接用命令行打开

    # 打开公钥文件
    cat ./hbbs/id_ed25519.pub
    
    • 1
    • 2

    key 复制到客户端中

    在这里插入图片描述

    确认之后,网络会重新连接

    在这里插入图片描述

    如果设置没问题,很快就 就绪

    在这里插入图片描述

    测试

    老苏又装了一台 android 客户端,用来做控制端,设置和 PC 端是一样的,只要输入 ID 服务器Key 即可

    在这里插入图片描述

    输入要控制的 PC 端的 ID

    在这里插入图片描述

    连上之后需要输入密码,密码可以在 PCID 的下方获取到

    在这里插入图片描述

    连接成功后,PC 端的右上角有提示

    在这里插入图片描述

    速度还可以,感觉比向日葵快

    在这里插入图片描述

    各平台的详细使用手册,可以去官网看中文的使用手册:https://rustdesk.com/docs/zh-cn/manual/

    老苏觉得 RustDesk 作为一款远程桌面控制软件,完全可以取代 TeamViewer向日葵

    参考文档

    GitHub - rustdesk/rustdesk: The best open source remote desktop software
    地址:https://github.com/rustdesk/rustdesk

    rustdesk/rustdesk-server: RustDesk Server Program
    地址:https://github.com/rustdesk/rustdesk-server

    RustDesk | 最好的开源远程桌面软件
    地址:https://rustdesk.com/zh/

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

  • 相关阅读:
    Win11如何删除升级包?Win11删除升级包的方法
    大学生简单静态HTML网页模板源码——家乡介绍美丽乡村11页
    采用BeautifulSoup&&pqQuery&&xpath三种方法爬取电影详情页
    312页18万字数字化校园总体建设方案
    token正确不报错,token失效后却出现报跨域错误
    7.2K Star!把数据库的每一行都监控到的强大数据流平台
    聚观早报|腾讯员工平均月薪超8万;马斯克考虑卸任特斯拉CEO
    关于丢失msvcp71.dll的5个解决办法,msvcp71.dll丢失原因分析
    前端自动生成二维码并长按识别跳转 Vue
    BIM+物联网应用,可以解决生活中的诸多问题?
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/125885654