
글을 읽기 전 RustDesk에 대해 알고 싶으신 분은 아래 링크를 통해 확인 가능합니다.
https://god-logger.tistory.com/185
RustDesk: 강력한 오픈소스 원격 제어 도구의 모든 것
RustDesk란 무엇인가?RustDesk는 오픈소스 원격 데스크톱 소프트웨어로, 사용자가 다른 컴퓨터를 원격으로 제어할 수 있게 해줍니다.2021년에 처음 공개된 이 도구는 Rust 프로그래밍 언어로 작성되어
god-logger.tistory.com
RustDesk와 릴레이 서버: 왜 구축해야 할까?
RustDesk는 강력한 오픈소스 원격 데스크톱 소프트웨어로, 기본적으로 P2P(Point-to-Point) 연결을 통해 두 장치 간 직접 통신을 시도합니다. 하지만 방화벽, NAT(Network Address Translation), 또는 복잡한 네트워크 환경에서는 P2P 연결이 실패할 수 있습니다. 이때 릴레이 서버가 필요합니다.
릴레이 서버는 클라이언트 간 연결을 중계하는 중간 역할을 합니다. RustDesk는 공용 릴레이 서버를 무료로 제공하지만, 자체 릴레이 서버를 구축하면 다음과 같은 이점이 있습니다:
- 속도 향상: 내부망에 릴레이 서버를 두면 공용 서버 대비 지연 시간 감소.
- 보안 강화: 데이터가 외부 서버를 거치지 않아 프라이버시 확보.
- 제어 가능성: 네트워크 환경에 맞게 커스터마이징 가능.
특히, 저처럼 회사 내부망이나 가정 네트워크에서 여러 장치를 관리한다면 자체 릴레이 서버는 필수입니다.
이번 글에서는 이를 도커(Docker)를 활용해 구축하는 방법을 다룹니다.
왜 도커를 사용할까?
도커는 컨테이너 기술을 통해 애플리케이션을 가볍고 일관되게 배포할 수 있게 해줍니다.
RustDesk 릴레이 서버를 도커로 설정하는 이유는 다음과 같습니다
- 쉬운 설치: 복잡한 의존성 설치 없이 이미지로 바로 실행.
- 이식성: 우분투뿐 아니라 다른 리눅스 배포판에서도 동일하게 동작.
- 관리 용이: docker-compose로 여러 서비스를 한 번에 관리.
저는 Proxmox라는 가상화 플랫폼을 사용 중인데, 여기서 우분투 22.04 LXC (Proxmox의 경량 리눅스 컨테이너 기반 가상화) 를 띄워 릴레이 서버를 구축했습니다.
Proxmox를 활용하면 물리 서버 하나로 여러 VM을 관리할 수 있어 자원 활용도가 높아지는 장점도 있죠.
Proxmox는 선택사항이며 일반 PC에 우분투를 설치하셔서 진행하셔도 무방하지만, 윈도우 환경에서 WSL에서는 직접 해보지 않아 확실히 된다고 말씀드리기는 어렵다는 점 참고 부탁드릴게요.
사전 준비
- 환경: Proxmox VE(우분투 22.04 LXC) 또는 별도의 PC(우분투 22.04)
- 목표: RustDesk 릴레이 서버(hbbs와 hbbr)를 도커로 실행.
- 필요 도구: Docker, Docker Compose, 손, 의지
RustDesk 릴레이 서버 구축
1.Docker와 Docker Compose 설치
이전에 작성한 블로그 글을 참고하시기 바랍니다.
https://god-logger.tistory.com/117
Ubuntu 22.04 Docker ( with docker-compose) 설치
설치 환경Quick Install1. 패키지 업데이트 및 저장소 등록# Add Docker's official GPG key:sudo apt-get updatesudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/u
god-logger.tistory.com
2. 작업 디렉토리 생성
mkdir ~/rustdesk-server
cd ~/rustdesk-server
mkdir data
3. docker-compose.yml 작성
version: '3'
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
chatGpt나 claude grok등이 알려주는건 대부분 잘못되었거나 과거 설정일 가능성이 높습니다.
아래 yml의 경우 공식문서에서 발췌하였으며 정상 작동 확인하였습니다.
4. 도커를 통한 서버 실행
sudo docker-compose up -d
# 이후 실행 상태 확인 명령어
docker ps
#아래와 같이 나오면 정상입니다.
root@rustdesk-relay:~/rustdesk-server# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14817f****** rustdesk/rustdesk-server:latest "hbbs" 2 hours ago Up 2 hours hbbs
0e3989****** rustdesk/rustdesk-server:latest "hbbr" 2 hours ago Up 2 hours hbbr
로그를 보고 싶은 경우 아래 명령어를 사용할 수 있습니다.
docker-compose logs -f hbbr
또는
docker-compose logs -f hbbs
5. Key 파일 확인
cat ~/rustdesk-server/data/id_ed25519.pub

위 사진과 같이 cat으로 보면 쉘에 [계정@호스트]가 사진처럼 붙어나오는 경우가 있는데 vi, vim, nano 등과 같은 에디터로 들어가 확인해도 됩니다.
사진과 같이 cat으로 조회하는 경우 '=' 까지가 키 값입니다.
위 내용을 어떤 방식으로든 클라이언트 프로그램 ( 원격 받는 PC, 또는 원격 하고자 하는 PC ) 에게 전달하면 됩니다.
내부 네트워크인 경우 SCP를 이용할 수 있을 것 같습니다.
6. 방화벽 ( 예 : UFW 등 )이 활성화 된 경우, 특정 포트 허용
# ubuntu의 ufw 기준으로 작성
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
sudo ufw status
RustDesk 클라이언트에서 사용하기
1. 클라이언트 다운로드
클라이언트는 아래 링크를 통해 다운로드 받으실 수 있습니다.
https://github.com/rustdesk/rustdesk/releases/tag/1.3.8
Release 1.3.8 · rustdesk/rustdesk
Architecture Windows Ubuntu Mac Android Flatpak iOS Web x86-64 (64-bit) EXE MSI Download Download Universal Download Go AArch64 (ARM64) Download Download Download Download TestFlight A...
github.com
Portable 또는 설치형 파일을 받아 실행 후 아래 그림에서 가르키는 곳을 눌러 설정 화면에 들어갑니다.


2. 클라이언트 설정
아래 그림과 같이 [설정 - 네트워크]로 이동하여 설정합니다.

이후 ID/릴레이 서버 항목을 클릭하여 접근 후 아래와 같이 설정값을 넣어줍니다.

ID 서버
|
<YOUR_SERVER_IP>:21116
|
Relay 서버
|
<YOUR_SERVER_IP>:21117
|
API 서버
|
<YOUR_SERVER_IP>:21118
|
Key
|
./data/id_ed25519.pub 내용
|
확인을 누루면 [성공] 혹은 [Ready] 라는 Toast 메세지가 뜬다면 이제 다른 클라이언트에서 ID를 입력해 접속 테스트를 해보시기 바랍니다.
마무리 : 우분투, 도커와 함께한 나만의 릴레이 서버
우분투 22.04 환경에서 도커로 RustDesk 릴레이 서버를 구축해보았습니다.
이렇게 하면 공용 서버 의존 없이 내부망에서도 빠르고 안전하게 원격 제어를 사용할 수 있습니다.
릴레이 서버 구축이 처음이라면 약간의 시행착오가 있을 수 있지만, 도커 덕분에 설치 과정은 꽤 간단합니다.
여러분도 이 글을 따라 나만의 RustDesk 환경을 만들어 보세요.
사실 저도 잘 모르지만 질문이 있으신 분들은 언제든 댓글로 남겨 주시면 아는 범위 내에서 최대한 답변 드리겠습니다.
'운영체제 및 서버' 카테고리의 다른 글
RustDesk: 강력한 오픈소스 원격 제어 도구의 모든 것 (0) | 2025.02.23 |
---|---|
윈도우11 인터넷 연결 없이 설치 (오프라인 설치) (0) | 2023.11.09 |

글을 읽기 전 RustDesk에 대해 알고 싶으신 분은 아래 링크를 통해 확인 가능합니다.
https://god-logger.tistory.com/185
RustDesk: 강력한 오픈소스 원격 제어 도구의 모든 것
RustDesk란 무엇인가?RustDesk는 오픈소스 원격 데스크톱 소프트웨어로, 사용자가 다른 컴퓨터를 원격으로 제어할 수 있게 해줍니다.2021년에 처음 공개된 이 도구는 Rust 프로그래밍 언어로 작성되어
god-logger.tistory.com
RustDesk와 릴레이 서버: 왜 구축해야 할까?
RustDesk는 강력한 오픈소스 원격 데스크톱 소프트웨어로, 기본적으로 P2P(Point-to-Point) 연결을 통해 두 장치 간 직접 통신을 시도합니다. 하지만 방화벽, NAT(Network Address Translation), 또는 복잡한 네트워크 환경에서는 P2P 연결이 실패할 수 있습니다. 이때 릴레이 서버가 필요합니다.
릴레이 서버는 클라이언트 간 연결을 중계하는 중간 역할을 합니다. RustDesk는 공용 릴레이 서버를 무료로 제공하지만, 자체 릴레이 서버를 구축하면 다음과 같은 이점이 있습니다:
- 속도 향상: 내부망에 릴레이 서버를 두면 공용 서버 대비 지연 시간 감소.
- 보안 강화: 데이터가 외부 서버를 거치지 않아 프라이버시 확보.
- 제어 가능성: 네트워크 환경에 맞게 커스터마이징 가능.
특히, 저처럼 회사 내부망이나 가정 네트워크에서 여러 장치를 관리한다면 자체 릴레이 서버는 필수입니다.
이번 글에서는 이를 도커(Docker)를 활용해 구축하는 방법을 다룹니다.
왜 도커를 사용할까?
도커는 컨테이너 기술을 통해 애플리케이션을 가볍고 일관되게 배포할 수 있게 해줍니다.
RustDesk 릴레이 서버를 도커로 설정하는 이유는 다음과 같습니다
- 쉬운 설치: 복잡한 의존성 설치 없이 이미지로 바로 실행.
- 이식성: 우분투뿐 아니라 다른 리눅스 배포판에서도 동일하게 동작.
- 관리 용이: docker-compose로 여러 서비스를 한 번에 관리.
저는 Proxmox라는 가상화 플랫폼을 사용 중인데, 여기서 우분투 22.04 LXC (Proxmox의 경량 리눅스 컨테이너 기반 가상화) 를 띄워 릴레이 서버를 구축했습니다.
Proxmox를 활용하면 물리 서버 하나로 여러 VM을 관리할 수 있어 자원 활용도가 높아지는 장점도 있죠.
Proxmox는 선택사항이며 일반 PC에 우분투를 설치하셔서 진행하셔도 무방하지만, 윈도우 환경에서 WSL에서는 직접 해보지 않아 확실히 된다고 말씀드리기는 어렵다는 점 참고 부탁드릴게요.
사전 준비
- 환경: Proxmox VE(우분투 22.04 LXC) 또는 별도의 PC(우분투 22.04)
- 목표: RustDesk 릴레이 서버(hbbs와 hbbr)를 도커로 실행.
- 필요 도구: Docker, Docker Compose, 손, 의지
RustDesk 릴레이 서버 구축
1.Docker와 Docker Compose 설치
이전에 작성한 블로그 글을 참고하시기 바랍니다.
https://god-logger.tistory.com/117
Ubuntu 22.04 Docker ( with docker-compose) 설치
설치 환경Quick Install1. 패키지 업데이트 및 저장소 등록# Add Docker's official GPG key:sudo apt-get updatesudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/u
god-logger.tistory.com
2. 작업 디렉토리 생성
mkdir ~/rustdesk-server
cd ~/rustdesk-server
mkdir data
3. docker-compose.yml 작성
version: '3'
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
chatGpt나 claude grok등이 알려주는건 대부분 잘못되었거나 과거 설정일 가능성이 높습니다.
아래 yml의 경우 공식문서에서 발췌하였으며 정상 작동 확인하였습니다.
4. 도커를 통한 서버 실행
sudo docker-compose up -d
# 이후 실행 상태 확인 명령어
docker ps
#아래와 같이 나오면 정상입니다.
root@rustdesk-relay:~/rustdesk-server# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14817f****** rustdesk/rustdesk-server:latest "hbbs" 2 hours ago Up 2 hours hbbs
0e3989****** rustdesk/rustdesk-server:latest "hbbr" 2 hours ago Up 2 hours hbbr
로그를 보고 싶은 경우 아래 명령어를 사용할 수 있습니다.
docker-compose logs -f hbbr
또는
docker-compose logs -f hbbs
5. Key 파일 확인
cat ~/rustdesk-server/data/id_ed25519.pub

위 사진과 같이 cat으로 보면 쉘에 [계정@호스트]가 사진처럼 붙어나오는 경우가 있는데 vi, vim, nano 등과 같은 에디터로 들어가 확인해도 됩니다.
사진과 같이 cat으로 조회하는 경우 '=' 까지가 키 값입니다.
위 내용을 어떤 방식으로든 클라이언트 프로그램 ( 원격 받는 PC, 또는 원격 하고자 하는 PC ) 에게 전달하면 됩니다.
내부 네트워크인 경우 SCP를 이용할 수 있을 것 같습니다.
6. 방화벽 ( 예 : UFW 등 )이 활성화 된 경우, 특정 포트 허용
# ubuntu의 ufw 기준으로 작성
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp
sudo ufw status
RustDesk 클라이언트에서 사용하기
1. 클라이언트 다운로드
클라이언트는 아래 링크를 통해 다운로드 받으실 수 있습니다.
https://github.com/rustdesk/rustdesk/releases/tag/1.3.8
Release 1.3.8 · rustdesk/rustdesk
Architecture Windows Ubuntu Mac Android Flatpak iOS Web x86-64 (64-bit) EXE MSI Download Download Universal Download Go AArch64 (ARM64) Download Download Download Download TestFlight A...
github.com
Portable 또는 설치형 파일을 받아 실행 후 아래 그림에서 가르키는 곳을 눌러 설정 화면에 들어갑니다.


2. 클라이언트 설정
아래 그림과 같이 [설정 - 네트워크]로 이동하여 설정합니다.

이후 ID/릴레이 서버 항목을 클릭하여 접근 후 아래와 같이 설정값을 넣어줍니다.

ID 서버
|
<YOUR_SERVER_IP>:21116
|
Relay 서버
|
<YOUR_SERVER_IP>:21117
|
API 서버
|
<YOUR_SERVER_IP>:21118
|
Key
|
./data/id_ed25519.pub 내용
|
확인을 누루면 [성공] 혹은 [Ready] 라는 Toast 메세지가 뜬다면 이제 다른 클라이언트에서 ID를 입력해 접속 테스트를 해보시기 바랍니다.
마무리 : 우분투, 도커와 함께한 나만의 릴레이 서버
우분투 22.04 환경에서 도커로 RustDesk 릴레이 서버를 구축해보았습니다.
이렇게 하면 공용 서버 의존 없이 내부망에서도 빠르고 안전하게 원격 제어를 사용할 수 있습니다.
릴레이 서버 구축이 처음이라면 약간의 시행착오가 있을 수 있지만, 도커 덕분에 설치 과정은 꽤 간단합니다.
여러분도 이 글을 따라 나만의 RustDesk 환경을 만들어 보세요.
사실 저도 잘 모르지만 질문이 있으신 분들은 언제든 댓글로 남겨 주시면 아는 범위 내에서 최대한 답변 드리겠습니다.
'운영체제 및 서버' 카테고리의 다른 글
RustDesk: 강력한 오픈소스 원격 제어 도구의 모든 것 (0) | 2025.02.23 |
---|---|
윈도우11 인터넷 연결 없이 설치 (오프라인 설치) (0) | 2023.11.09 |