qoqoro

qoqoro

Docker部署Rustdesk

46
2024-10-24
Docker部署Rustdesk

拿出来吃灰许久的腾讯云轻量服务器2H2G3M 系统是Debian12

大陆服务器 Docker 安装

查看 Docker 版本

docker -v

开机自动启动

sudo systemctl enable docker

卸载 Docker

sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo apt-get remove docker docker-engine
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

查看 Docker Compose 版本

docker compose version

RustDesk服务端部署

创建一个新的文件夹作为 RustDesk 挂载目录:

mkdir ~/rustdesk-server
cd ~/rustdesk-server

在root/rustdesk-server目录中 创建 Docker-Compose.yml 配置文件:

nano docker-compose.yml
version: '3'
networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115 # hbbs 的默认端口
      - 21116:21116 # hbbs 自定义端口映射
      - 21116:21116/udp # hbbs 自定义 UDP 端口映射
    image: rustdesk/rustdesk-server
    command: hbbs 
    volumes:
      - ./data:/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
    command: hbbr
    volumes:
      - ./data:/root # 自定义挂载目录
    networks:
      - rustdesk-net
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 64M

启动服务

docker compose up -d

如果出现镜像获取超时

创建 Docker 镜像加速配置文件:

sudo nano /etc/docker/daemon.json

写入腾讯云加速器:

{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

重启docker服务

sudo systemctl restart docker

然后再次运行:

docker compose up -d

打开防火墙

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

设置ID/中继服务器

设置加密连接

查看公钥文件,找到rust挂载目录中有data文件夹

cd ~/rustdesk-server/data

输入 cat ./id_ed25519.pub 查看key,将key填入上方步骤ID/中继服务器设置中应用

 cat ./id_ed25519.pub

常见问题

1.遇到DNS配置问题,修改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

参考:官方RustDesk自建文档