RustDesk自建服务器札记[简易版]

由Jeza Chen 发表于 July 6, 2024

RustDesk是一款开源的远程桌面软件,支持Windows、Linux、MacOS等多个平台。它的特点是简单易用,无需配置,只需下载安装即可使用。此外,RustDesk支持自建服务器,可利用自己的服务器实现高质量的画质传输,而无需付费购买主流远程桌面软件的增值服务。本文记录了如何在腾讯云轻量应用服务器搭建RustDesk服务器的简易步骤。

前提

腾讯云服务器一台,系统为CentOS 7.6 64bit,并安装了dockerdocker-compose

步骤

1. 编写docker-compose.yml,以将RustDesk服务部署在docker容器中

首先创建一个目录(如rustdesk),然后在该目录下创建docker-compose.yml文件,内容如下:

version: "3"
services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"

    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

2. 运行docker-compose

在上述的rustdesk目录下,运行以下命令:

sudo docker-compose up -d

此时,RustDesk服务已经运行在服务器上。可以通过netstat -tunlp查看服务端口,默认运行在21115-21119/tcp21116/udp端口上。

netstat命令截图

3. (如有) 关闭ipv6

在默认情况下,服务器一般会开启ipv6,从而导致RustDesk服务默认绑定在ipv6地址上(如下图所示,netstat所返回的结果中,RustDesk服务端口绑定在tcp6上)。且目前暂无办法通过配置等方式修改成监听ipv4地址(参见GitHub中的issue)。

netstat命令截图2 - RustDesk服务绑定在tcp6

因此,如果需要通过ipv4地址访问RustDesk服务,需要关闭ipv6。关闭步骤可见这个教程。本文采取的是第一个做法,简单一个shell命令即可,但需要重启服务器:

grubby --args ipv6.disable=1 --update-kernel DEFAULT

注意:关闭ipv6可能会导致其他问题,如nginx服务无法启动(某些server监听了ipv6地址)等,因此请谨慎操作。如果有更好的解决方案,欢迎留言或发邮件~

4. 配置防火墙等

由于腾讯云或其他云服务商默认会开启防火墙,因此需要在安全组中添加规则,允许21115-21119/tcp21116/udp端口的外网访问。下图是腾讯云轻量应用服务器的防火墙配置界面:

防火墙配置

对于一些Linux服务器,还需要在内部配置防火墙规则,以允许这些端口的访问。具体可以根据服务器的系统版本和防火墙软件进行配置。

5. 配置客户端

最后,根据本机的操作系统类型下载RustDesk客户端,安装并打开,在设置中输入ID服务器的公网IP地址以及Key,应用后即可连接到服务器。

如无特殊配置(按本文的操作),ID服务器的公网IP地址默认为[服务器公网IP]:21116,公网IP可以在服务器提供商的控制台中查看。

此外,Key的内容需要在服务器的rustdesk/data目录下查看,文件名为id_ed25519.pub,将其内容复制到客户端的Key输入框中。

中继服务器和API服务器无需填写,RustDesk客户端会默认探测。

客户端配置

6. 开始远程

应用设置后,观察下方的链接状态,如果显示就绪,则表示连接成功,即可开始远程操作。否则,可尝试重新启动客户端或检查服务器端口是否开放等。

客户端就绪截图

7. 参考资料