前言

   远程工具是程序员日常不可缺少的工具。常见的有Team viewer、Todesk、向日葵,但随着软件迭代更新,吃相也愈发难看,今天就教大家搭建一款可以私有化部署的远程工具 RustDesk ,其连接网速取决于家里的宽带上行速度。

优劣势对比

远程工具优势劣势
RustDesk1. 开源免费,无需商业用途限制
2. 跨平台支持,安装包小巧
3. 界面简洁,远程连接流畅
1. 知名度相对较低
2. 相对于商业化产品,功能可能较为简单
TeamViewer1. 远程连接流畅度高
2. 广泛的操作系统支持
3. 丰富的功能和定制性
1. 免费版体验较差,商业用途限制多
2. 价格较高,不适合个人用户
ToDesk1. 免费不限速,连接速度快
2. 支持多平台,包括iOS和Linux
3. 用户体验好
1. 老版本可能存在小卡顿问题
2. 相对于RustDesk,可能不是完全开源
向日葵1. 知名度高,用户量大
2. 适用于个人和企业用户
3. 支持多平台远程连接
1. 复制粘贴功能可能不稳定
2. 付费版限速较严重
3. 在某些操作系统上可能存在兼容性问题

安装与部署

这里使用 docker-compose 安装

version: '3'

networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116 # 自定义 hbbs 映射端口
      - 21116:21116/udp # 自定义 hbbs 映射端口
    image: rustdesk/rustdesk-server:latest # 注意这里要加:latest,防止docker镜像缓存未更新的问题
    command: hbbs -r xxx.xxx.com:21117 -k _ # 填入个人域名或 IP + hbbr 暴露端口,这里填写你解析后的域名或服务器ip都行, -k _意为使用key进行认证
    volumes:
      - /www/server/rustdesk:/root # 自定义挂载目录
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 64M

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117 # 自定义 hbbr 映射端口
    image: rustdesk/rustdesk-server:latest #注意,这里同样需要拉取最新镜像
    command: hbbr -k _ #这里的key也是需要key认证的话则要加
    volumes:
      - /www/server/rustdesk:/root # 自定义挂载目录
    networks:
      - rustdesk-net
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 64M

端口说明

  • 21115是hbbs用作NAT类型测试
  • 21116/UDP是hbbs用作ID注册与心跳服务
  • 21116/TCP是hbbs用作TCP打洞与连接服务
  • 21117是hbbr用作中继服务。
  • 21118和21119是为了支持网页客户端。如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。
  • TCP(21115, 21116, 21117, 21118, 21119)
  • UDP(21116)

注意

hbbr 与 hbbs 的挂载目录必须为同一个,否则后面链接会提示对方已挂断提示。
如果你想所有人都可以通过你的服务器来进行链接rustdesk,则需要删掉配置文件中 -k _。
配置文件中xxx.xxx.com需要替换为解析到目标服务器的域名或目标服务器公网ip地址。

运行

docker-compose up -d

客户端使用

下载 RustDesk 客户端并完成服务器对接
rusk.png

注意

  ID服务器为文件中配置的个人域名或ip。格式例:www.baidu.com or 127.0.0.1。
如果配置文件中增加了上述提到的-k _配置,则需要找到文件挂载目录/www/server/rustdesk中的id_ed25519.pub文件,将内容复制即可。
如果没有配置则不需要进行配置。