Files
doc.rustdesk.com/content/self-host/rustdesk-server-pro/relay/_index.ko.md
T
21pages 63497c2be6 docs(relay): document hbbr key configuration options
- add relay-only Docker Compose configuration
  - document KEY and key-file setup methods
  - clarify legacy -k _ behavior and Pro 1.8.6 changes
  - update all translations

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-08-26 23:27:13 +08:00

11 KiB

title, weight, description, keywords
title weight description keywords
릴레이 서버 구성 17 서버 프로 배포에 추가 RustDesk 릴레이 서버를 추가하고 지리적 위치를 사용하여 가장 가까운 사용 가능한 hbbr 인스턴스를 통해 연결을 라우팅하십시오.
rustdesk relay server
rustdesk hbbr
rustdesk geolocation relay
rustdesk additional relay
rustdesk server pro relay

이 가이드를 사용하여 RustDesk Server Pro에 추가 릴레이 서버를 추가하고 지리적 위치 인식 라우팅을 통해 지역별 성능을 향상시키세요.

언제 추가 릴레이 서버가 필요합니까?

사용자가 서로 다른 지역 간에 연결되고 직접 홀 펀칭이 항상 가능하지 않을 때 추가 릴레이 서버가 필요합니다. 추가 hbbr 노드를 통해 RustDesk는 보다 가까운 지역을 통해 릴레이 트래픽을 라우팅할 수 있으며, 이는 릴레이가 필요한 경우 지연 시간을 줄이고 세션 품질을 개선할 수 있습니다.

릴레이 설정 체크리스트

  1. 대상 지역에 추가 hbbr 릴레이 서버를 배포합니다.
  2. hbbrKEY 환경 변수를 id_ed25519.pub의 공개 키로 설정하거나 id_ed25519id_ed25519.pub를 릴레이 서버로 복사합니다.
  3. TCP 포트 2111721119를 열어줍니다.
  4. RustDesk Pro 웹 콘솔에 새로운 릴레이 호스트명 또는 IP 주소를 추가합니다.
  5. hbbs에 MaxMind GeoLite2 City 데이터베이스를 설치합니다.
  6. 지오 설정을 다시 로드하고, 새 릴레이가 로그에 나타나는지 확인합니다.

Docker를 사용한 추가 릴레이 서버 설치 방법

{{% notice note %}} The simple install는 동일한 머신에서 암묵적으로 릴레이 서버(hbbr 프로세스)를 생성하므로, 릴레이 서버를 명시적으로 지정할 필요가 없습니다.

다른 컴퓨터에 추가 릴레이 서버를 명시적으로 생성하려면 OSS installation를 따라 hbbr를 실행하세요. hbbrrustdesk-server-linux-amd64.tar.gz, rustdesk-server-hbbr_<version>-<arch>.deb, rustdesk-server-windows-x86_64.tar.gz 또는 docker(sudo docker run ... rustdesk/rustdesk-server-pro hbbr)에서 찾을 수 있습니다.

hbbr는 라이선스가 필요하지 않으며 오픈소스 버전과 동일합니다. {{% /notice %}}

여러 개의 릴레이 서버를 전 세계에 걸쳐 실행하고 지리적 위치를 자동으로 활용해 가장 가까운 릴레이 서버를 사용할 수 있어 원격 컴퓨터에 연결할 때 더 빠른 경험을 제공합니다. hbbs는 이러한 릴레이 서버들이 몇 초마다 온라인 상태인지 자동으로 확인하며, 온라인 상태인 릴레이 서버만 선택합니다.

{{% notice note %}} 알려진 문제: https://github.com/rustdesk/rustdesk/discussions/7934 {{% /notice %}}

hbbrKEY 환경 변수를 id_ed25519.pub의 공개 키로 설정하거나 id_ed25519id_ed25519.pub를 릴레이 서버로 복사합니다.

Docker Compose

추가 릴레이 서버에는 hbbr만 필요하며 hbbsdepends_on은 필요하지 않습니다. 다음 키 구성 방법 중 하나를 선택합니다.

  • environment 섹션을 유지하고 아래와 같이 KEYid_ed25519.pub의 내용으로 설정합니다.
  • environment 섹션 전체를 제거하고 id_ed25519id_ed25519.pub./data에 넣습니다.

다음 내용으로 compose.yml 파일을 만듭니다.

services:
  hbbr:
    container_name: hbbr
    image: docker.io/rustdesk/rustdesk-server-pro:latest
    environment:
      KEY: "<PUBLIC_KEY>"
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

Docker

환경 변수로 키 설정

KEYid_ed25519.pub의 내용으로 설정합니다.

# sudo docker run --name hbbr -e KEY="<PUBLIC_KEY>" -td --net=host rustdesk/rustdesk-server-pro hbbr

키 파일 사용

아래 Docker 예제에서는 키 파일 방식을 사용합니다.

1 - 이미 Docker가 설치되어 있다면 SSH를 통해 서버에 연결하고 hbbr용 볼륨을 생성하세요.

# docker volume create hbbr

볼륨 hbbr는 /var/lib/docker/volumes/hbbr/_data에 위치해야 합니다.

2 - 개인 키 쌍을 볼륨 위치로 복사합니다. 이 경우 SCP를 사용해 파일을 복사하겠습니다.

명령어 구문은 scp <path/filename> username@server:</destination/path>입니다.

# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data

3 - 이전에 생성한 볼륨을 사용하여 hbbr 컨테이너를 배포하십시오. 이 볼륨에는 개인 릴레이 서버를 실행하는 데 필요한 개인 키 쌍이 있습니다.

# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server-pro hbbr

rustdesk/rustdesk-server 이미지는 여전히 -k <KEY>를 지원합니다. 마운트된 키 파일을 사용하려면 -k _를 지정하여 실행합니다.

# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _

여기서 _는 키 자체가 아니라 특수 값입니다. 이 값은 hbbrid_ed25519를 불러오거나 생성하고, 여기에서 공개 키를 얻어 릴레이 요청을 검증하도록 합니다. RustDesk Server Pro 1.8.6 이전 버전에서도 id_ed25519를 불러오기 위해 -k _를 사용할 수 있었습니다.

RustDesk Server Pro 1.8.6부터 hbbr-k 옵션은 더 이상 사용되지 않으며 무시됩니다. KEY가 설정되지 않은 경우 hbbrid_ed25519에서 공개 키를 가져오며, 개인 키 파일이 없으면 id_ed25519.pub에서 읽습니다. 두 파일이 모두 없으면 hbbr는 공개 릴레이 모드로 실행됩니다.

4 - 실행 로그를 확인하여 키 쌍을 사용해 hbbr가 실행 중인지 확인하십시오.

# docker logs hbbr

INFO [src/common.rs:121] **Private key comes from id_ed25519**
NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :21117

운영체제에 따라 방화벽을 사용해 IP를 차단하거나 허용하고 싶을 수 있습니다.

우리의 경우 Ubuntu를 실행하며 21117과 21119 포트로의 모든 TCP 연결을 허용하고자 합니다.

# sudo ufw allow proto tcp from any to any port 21117,21119

방화벽 활성화

# sudo ufw enable

상태 확인

# ufw status

Status: active

To                         Action      From
--                         ------      ----
21117,21119/tcp            ALLOW       Anywhere
21117,21119/tcp (v6)       ALLOW       Anywhere (v6)

웹 콘솔에서 지리적 위치를 구성하는 방법

GeoLite2 City 데이터베이스 파일 등록 및 다운로드

지리적 위치 기능을 사용하려면 hbbs가 MaxMind GeoLite2 City 데이터베이스에 접근해야 합니다. 이 데이터베이스는 무료이며, 회원가입 후 파일을 다운로드하고 API 키를 받을 수 있습니다.

먼저 website로 이동하여 계정을 생성하세요(아직 계정이 없다면). Download Databases로 이동해 GeoLite2 City를 다운로드한 다음, gzip 파일을 선택하면 압축을 풀 때 mmdb 파일을 얻게 됩니다.

image

Linux 머신에서 설치 스크립트를 사용해 RustDesk Pro를 설치한 경우, mmdb 파일을 /var/lib/rustdesk-server/로 이동해야 합니다.

Docker 설치의 경우, 해당 파일은 컨테이너를 배포할 때 매핑한 볼륨에 있어야 하며, 이는 /root에 매핑됩니다.

프로세스를 자동화하려면 API 키 얻기 - Linux 서버

이 파일을 정기적으로 업데이트해야 하며, cronjob을 사용해 이를 수행할 수 있습니다. 무료인 다운로드 링크에 접근하려면 API 키가 필요합니다.

Manage License Keys로 이동해 새 라이선스 키를 생성하세요.
image
image

몇 가지 방법으로 download process를 자동화할 수 있지만, 이전 단계에서 얻은 API 키로 {Your Access Key}를 교체하여 다음 명령을 크론탭에 추가하세요.

/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={Your Access Key}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb'

RustDesk Pro 웹 콘솔에서 설정 변경

Relay Servers에 릴레이 서버의 IP 주소 또는 DNS 이름을 추가하세요. (DNS는 버전 1.1.11부터 지원됩니다.) 포트는 필요하지 않으며, 21117 포트가 명시적으로 사용됩니다.
image

Geo 오버라이드를 추가하되, 서버 IP 주소와 서버가 위치한 좌표를 함께 추가하세요.
image

Reload Geo를 클릭하면 목록이 이와 비슷하게 보일 것입니다.
image

결과를 확인하려면 Reload Geo를 클릭할 때 hbbs 로그를 확인하세요. 릴레이 서버의 IP 주소와 그 좌표가 표시된 메시지를 볼 수 있어야 합니다.

Linux 머신에서 RustDesk Pro를 실행 중인 경우 RUST_LOG=debug ./hbbs 명령어를 사용해 로그를 확인하십시오. Docker 컨테이너에서 실행 중인 경우 docker logs hbbs를 사용하십시오.

RUST_LOG=debug ./hbbs

INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb
INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx
[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx
[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx
GEOIP_FILE loaded, #overrides 3
INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"]
NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))]

또한, hbbr 인스턴스에서 릴레이 요청을 직접 확인할 수 있으며, 컨테이너 로그를 확인하기만 하면 됩니다.

# docker logs hbbr

INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired
INFO [src/relay_server.rs:442] Both are raw