Files

6.1 KiB

title, weight, description, keywords
title weight description keywords
Docker 7 Docker, Docker Compose 또는 Podman을 사용하여 RustDesk 서버 OSS를 셀프호스팅하십시오. 필요한 포트, 호스트 네트워킹 참고사항 및 hbbs 및 hbbr에 대한 샘플 컨테이너 정의를 검토하십시오.
rustdesk docker
rustdesk docker compose
rustdesk server docker
rustdesk hbbs hbbr docker
rustdesk podman
rustdesk self-host docker

이 안내서를 사용하여 Docker, Docker Compose 또는 Podman을 통해 RustDesk Server OSS를 자체 호스팅하고 hbbshbbr에 대한 올바른 포트를 열어보세요.

Docker에서 RustDesk Server OSS를 실행하는 가장 좋은 방법은 무엇인가요?

대부분의 Linux 배포에서는 network_mode: "host"와 함께 Docker Compose를 사용하는 것이 가장 간단하고 신뢰할 수 있는 옵션입니다. 이 방법은 설정을 반복 가능하게 유지하고 업그레이드를 쉽게 만들어 주며, 호스트 네트워킹이 가능할 경우 추가적인 포트 매핑 복잡성을 피할 수 있습니다.

Docker 배포 체크리스트

  1. Docker 또는 Podman을 설치하기.
  2. hbbshbbr용 지속적 데이터 디렉터리 또는 볼륨 생성하기.
  3. 방화벽에서 필요한 RustDesk 포트를 열기.
  4. Docker Compose, docker run 또는 Podman Quadlet을 사용해 hbbshbbr 시작하기.
  5. 클라이언트를 새 자체 호스팅 서버로 지정하고 등록 및 릴레이 트래픽을 확인하기.

어떤 컨테이너 설정을 선택해야 하나요?

방법 최적의 사용처 사용하는 이유
Docker Compose 대부분의 Linux 서버 반복 가능한 설정 및 보다 쉬운 지속적인 유지보수
docker run 빠른 수동 테스트 간단한 컨테이너 쌍을 시작하는 가장 빠른 방법
Podman Quadlet Podman 플러스 systemd 환경 네이티브 systemd 스타일 서비스 관리

여기 또 다른 좋은 튜토리얼이 있습니다: Building Your Own Remote Desktop Solution: RustDesk Self-Hosted on Cloud with Docker (Hetzner)

Docker를 사용해 자체 서버 설치하기

요구사항

Docker/Podman이 설치되어 있어야만 rustdesk-server를 Docker 컨테이너로 실행할 수 있습니다. 의심스러운 경우, 이 guide를 통해 Docker를 설치하여 최신 버전인지 확인하세요!

방화벽에서 다음 포트를 반드시 열어주세요:

  • hbbs:
    • 21114 (TCP): 웹 콘솔용으로 사용되며, Pro 버전에서만 사용 가능합니다.
    • 21115 (TCP): NAT 유형 테스트에 사용됩니다.
    • 21116 (TCP/UDP): 21116는 TCP와 UDP 모두 활성화되어야 함을 참고해 주세요. 21116/UDP는 ID 등록 및 핑 서비스에 사용됩니다. 21116/TCP는 TCP 홀 펀칭 및 연결 서비스에 사용됩니다.
    • 21118 (TCP): 웹 클라이언트 지원에 사용됩니다.
  • hbbr:
    • 21117 (TCP): 릴레이 서비스에 사용됩니다.
    • 21119 (TCP): 웹 클라이언트 지원에 사용됩니다.

웹 클라이언트 지원이 필요하지 않은 경우, 해당 포트 21118, 21119를 비활성화할 수 있습니다.

Docker 예제

sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr

{{% notice note %}} --net=host는 오직 Linux에서만 작동하며, 이로 인해 hbbs/hbbr는 컨테이너 IP(172.17.0.1)가 아닌 실제 수신 IP 주소를 볼 수 있습니다. --net=host가 잘 작동한다면 -p 옵션은 사용되지 않습니다. Windows에서는 sudo--net=host를 생략하세요.

플랫폼에서 연결 문제가 발생하는 경우 --net=host를 제거해 주세요. {{% /notice %}}

{{% notice note %}} -td로 로그를 볼 수 없는 경우, docker logs hbbs를 통해 로그를 볼 수 있습니다. 또는 -it로 실행할 수 있으며, hbbs/hbbr는 데몬 모드로 실행되지 않습니다. {{% /notice %}}

Docker Compose 예제

여기서 설명한 대로 compose.yml와 함께 Docker 파일을 실행하려면 Docker Compose가 설치되어 있어야 합니다.

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

config 변경이 필요한 경우, 예를 들어 ALWAYS_USE_RELAY=Y를 설정하려면 docker-compose.yml의 환경을 사용할 수 있습니다.

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    environment:
      - ALWAYS_USE_RELAY=Y
    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

Podman Quadlet 예제

Podman을 systemd 서비스로 사용하여 컨테이너를 실행하고 싶다면 다음의 Podman Quadlet 구성 샘플을 사용할 수 있습니다:

[Container]
AutoUpdate=registry
Image=rustdesk/rustdesk-server:latest
Exec=hbbs
Volume=/path/to/rustdesk-server/data:/root
Network=host

[Service]
Restart=always

[Install]
WantedBy=default.target

또는

[Container]
AutoUpdate=registry
Image=rustdesk/rustdesk-server:latest
Exec=hbbr
Volume=/path/to/rustdesk-server/data:/root
Network=host

[Service]
Restart=always

[Install]
WantedBy=default.target