Complete tutorial for using remote control software RustDesk

RustDesk是非常有名的远程控制软件,在github有近10万star,开源免费,支持多种操作系统,包括 Windows、macOS、Linux,以及移动端的 iOS 和 Android,甚至还有网页客户端。不过,由于其官方服务器在国外,在国内使用会遇到很多问题。鉴于目前同类软件大都收费,即使有免费版也是有各种限制,好好研究和尝试一下这个软件还是很有必要的。本教程试图通用最简单易懂的方式解决所有可能遇到的问题,让小白也能用上这款非常好用的远程控制神器。不夸张地说,本教程是目前全网最全面的。

准备工作

下载RustDesk相应版本客户端:rustdesk

注意不要在非官方下载客户端,有被植入木马的风险。

简单使用

连接同一宽带环境的设置不需要服务器,直接使用即可。注意,纯内网使用在控制端不必填软件给出的ID,要直接填写ip地址或内网地址。

如果设备不是在同一宽带环境,最简单的方法就是用异地组网软件。例如比扬云,注册账号,下载客户端登录使用,可以生成内网地址,将其填入控制端与受控端即可连接。

进阶使用

比扬云之类异地组网软件虽然有免费版,但有速率限制。并且,这实际上是将比扬云用作服务器,对于有些用户而言可能会有数据泄露的担心。因此,更推荐的做法是自建服务器。当然,这就需要自备一台vps,延迟越低越好,推荐国内或离得较近的港台日韩区的虚拟机。

安装服务器

官方安装服务器的步骤较为复杂,且API功能也是收费的。这里使用lejianwen大佬基于RustDesk独立开发的服务器镜像,完全开源免费的使用一切功能。

SSH远程连接vps,注意以下命令只适用于debian/ubuntu,其他系统请自行查找相应命令。

  • 防火墙放行端口(若更改默认端口则放行相应端口)
TCP:21114-21119
UDP:21116
  • 安装docker
sudo apt update
curl -sSL https://get.docker.com/ | sh
  • 安装docker compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
  • 安装nano命令(若已安装跳过,使用vim命令也可以)
sudo apt install nano
  • 创建目录
mkdir -p /data/rustdesk
  • 编辑配置
nano /data/rustdesk/docker-compose.yml

将以下内容中“你的IP”修改为自己vps的IP,若是IPv6注意IP要加方括号。

networks:
  rustdesk-net:
    external: false
services:
  rustdesk:
    ports:
      - 21114:21114
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21117:21117
      - 21118:21118
      - 21119:21119
    image: lejianwen/rustdesk-server-s6:latest
    environment:
      - RELAY=你的IP:21117
      - ENCRYPTED_ONLY=1
      - MUST_LOGIN=N
      - TZ=Asia/Shanghai
      - RUSTDESK_API_RUSTDESK_ID_SERVER=你的IP:21116
      - RUSTDESK_API_RUSTDESK_RELAY_SERVER=你的IP:21117
      - RUSTDESK_API_RUSTDESK_API_SERVER=http://你的IP:21114
      - RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
      - RUSTDESK_API_JWT_KEY=xxxxxx # 随意输入字符即可
    volumes:
      - /data/rustdesk/server:/data
      - /data/rustdesk/api:/app/data #将数据库挂载
    networks:
      - rustdesk-net
    restart: unless-stopped  

复制粘贴到刚创建的docker-compose.yml文件中,crl+o回车保存,crl+x退出。

  • 拉取镜像
cd /data/rustdesk
docker compose up -d

等待成功后,就能正常打开和登录API面板:http://你的IP:21114

默认用户名:admin

默认密码通过以下命令在日志中查找:

docker logs rustdesk-rustdesk-1

若找不到就用如下命令重置:

docker exec -it rustdesk-rustdesk-1 sh
./apimain reset-admin-pwd 新密码
  • 配置客户端

ID服务器及中继服务器都直接填写vps地址(若修改了默认端口则需要加上端口),注意API服务器格式与上面有所不同。

KEY用以下命令查看:

cat /data/rustdesk/server/id_ed25519.pub

注意是vps用户名(一般是root)前面的所有字符。

可以登录账户(用户名及密码见上,注意密码与KEY不同),这样就能保存和显示已连接过的设备了。

至止,自建服务器已完全可以正常连接使用。

高级使用

直接用IP访问API会有风险,更注重安全的用户推荐域名https访问,这就需要设置反向代理。

如果已安装了1Panel或宝塔面板,可以直接在创建的网站中添加反向代理,不需要以下步骤。

  • 安装Nginx
sudo apt install nginx
  • 编辑配置
nano /etc/nginx/sites-available/default

清空其中原有内容。将已绑定 IP的域名替换以下“你的域名”,然后复制粘贴到以上文件中

server {
    listen 80;    # 若是IPv6则替换为:listen [::]:80;
    server_name 你的域名; # 将此处替换为你的实际域名

    if ($host != "你的域名") {
        return 444;
    }

    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header Referrer-Policy no-referrer-when-downgrade;
    add_header Content-Security-Policy "default-src 'self'";

    proxy_connect_timeout 10s;
    proxy_send_timeout 30s;
    proxy_read_timeout 30s;

    location / {
        proxy_pass http://127.0.0.1:21114;    # 若是IPv6则替换为:http://[::1]:21114;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • 安装申请证书插件
sudo apt install certbot python3-certbot-nginx -y

申请过程中要输入一个邮箱,输入两次y。

  • 申请证书
sudo certbot --nginx -d 你的域名
  • 重启Nginx
sudo nginx -t && sudo systemctl reload nginx

至此就可以通过域名访问API地址了,客户端中ID服务器与中继服务器可以只填写域名就能实现连接。

  • 进一步加强安全性

修改原来的docker-compose.yml以下两处:

禁止IP访问:21114:21114改为:“127.0.0.1:21114:21114”

登录账户才能连接:MUST_LOGIN=Y改为:MUST_LOGIN=N

完整配置如下:

networks:
  rustdesk-net:
    external: false
services:
  rustdesk:
    ports:
      - "127.0.0.1:21114:21114" #若是IPv6则改为"[::1]:21114:21114"
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21117:21117
      - 21118:21118
      - 21119:21119
    image: lejianwen/rustdesk-server-s6:latest
    environment:
      - RELAY=你的IP:21117
      - ENCRYPTED_ONLY=1
      - MUST_LOGIN=Y
      - TZ=Asia/Shanghai
      - RUSTDESK_API_RUSTDESK_ID_SERVER=你的IP:21116
      - RUSTDESK_API_RUSTDESK_RELAY_SERVER=你的IP:21117
      - RUSTDESK_API_RUSTDESK_API_SERVER=http://你的IP:21114
      - RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
      - RUSTDESK_API_JWT_KEY=xxxxxx # 随意输入字符即可
    volumes:
      - /data/rustdesk/server:/data
      - /data/rustdesk/api:/app/data #将数据库挂载
    networks:
      - rustdesk-net
    restart: unless-stopped  

修改并保存后重启容器:

cd /data/rustdesk
docker compose down
docker compose up -d

至此,RustDesk自建服务器的所有步骤全部完成,可以安心畅享远程控制的一切功能了。

配置导出与导入

设置好客户端网络后,注意右上角的两个图标,一个是导出服务器配置,一个是导入服务器配置,可以很方便地在各个客户端间导入使用。

另外,Windows客户端也可以将配置写入文件名,打开后即可直接使用,不需要再另外设置。格式如下:

rustdesk-host=你的服务器IP或域名,key=你的key.exe

手机安装RustDesk客户端问题

有些手机,比如小米/红米,会禁止安装RustDesk,可以通过以下方式解决:

  • 旧版的小米/红米系统关闭安全守护和安全监控,并且打开飞行模式就能安装。
  • 新版小米/红米系统管得更严,需要卸载“应用包管理组件”的更新,然后再关闭安全守护和安全监控,打开飞行模式安装。
  • 最新版的小米/红米系统据说“应用包管理组件”已无法直接检索到,想要卸载更新需要先点击安装任意安装包,然后切后台,看到安装的窗口,这个窗口的名称就叫应用包管理组件。长按窗口进入应用设置,下方卸载更新、清除数据。然后如上关闭安全守护和安全监控,打开飞行模式安装。
30 Likes

Thanks for sharing the tutorial, boss.

Thank you, boss

1 Like

Thank you, boss

Thank you for sharing.

It would be great if Rustdesk could support using the system proxy.

Very detailed tutorial, thumbs up

Support. I’ve been using it continuously.

Thank you

Save it first, study later

You can set a socks5 proxy

Liked, studying

Detailed tutorial shared by Xie Lao

Give me a dozen of these good posts.

ipv6 is quite awkward

Save for later

Thanks for sharing, big boss

A beginner would still get dizzy, right.

Got it, thanks OP, is there a web version tutorial?

Thank you for sharing