오픈소스 원격접속 프로그램 RustDesk

2025. 2. 3. 12:26/오픈소스

RustDesk 소개

오늘은 오픈소스 원격접속 소프트웨어인 Rustdesk를 소개하고, Docker을 이용한 셀프호스팅 방법을 소개해보려고 한다.
Rust언어로 작성되었으며, TeamViewer의 기능을 거의 다 지원하는 것 같다.

TeamViewer은 무료계정을 이용해서 여러 기기에서 많이 접속하면 계속 상업적 이용이라면서 계정이 잠겨서 사용할 수가 없었다. 그런데 RustDesk는 오픈소스에다가, 셀프 호스팅도 가능해서 보안에도 안전하다는 장점이 있었다.

TeamViewer에 비해 기능이 뭐가 부족했다면 망설였겠지만, 적어도 내가 쓰는 기능들은 부족함이 없었다.

https://rustdesk.com/ko/

 

RustDesk: 오픈 소스 원격 데스크탑 및 자체 호스팅 서버 솔루션

RustDesk는 자체 호스팅 서버 옵션을 갖춘 오픈 소스 원격 데스크톱 솔루션을 제공합니다. 안전하고 개인 정보 보호되며 사용자 정의 가능한 원격 액세스를 위한 완벽한 TeamViewer 대체품입니다. 전

rustdesk.com

Install

다운로드는 아래 링크에 들어가서 자신의 Os에 맞게 설치해 주면 된다.

 

Release 1.3.7 · 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

Usage

사실 다운로드하여보면 알겠지만, TeamViewer과 UI도 거의 동일하고, 직관적이어서 사용법을 설명할 것도 없다. (좌측이 팀뷰어 우측이 RustDesk)

그냥 접속하고자 하는 pc에서 접속하려는 pc의 ID와 PW를 입력하면 연결이 된다.

알아두면 좋은 기능

원격 화면만 띄우는 게 다가 아니다. 잔손 가는 작업을 줄여주는 기능이 꽤 있다.

  • 터미널 — 원격 셸을 탭으로 띄운다. 화면 공유 없이 명령어만 칠 때 훨씬 가볍다
  • 스크린샷 촬영 — 원격 화면을 바로 저장한다
  • 잠금화면 비밀번호 입력 — 잠겨 있는 PC에도 그대로 로그인할 수 있다
  • 파일 전송 — 바뀐 부분만 보내고, 연결이 끊겼다 붙어도 이어받는다
  • Wayland 멀티모니터 캡처 — 리눅스에서 모니터를 여러 대 쓸 때 필요하다
  • 엣지 스크롤 — 커서를 화면 가장자리로 밀면 스크롤된다
  • Windows 자동 업데이트 — 새 버전을 매번 받아서 다시 깔 필요가 없다

나는 터미널을 제일 많이 쓴다. 서버 잠깐 만지려고 화면 전체를 띄우는 게 늘 과하다 싶었는데 이걸로 해결됐다.

Self-Hosting

RustDesk의 가장 큰 장점은 아무래도 셀프 호스팅인 것 같다. 회사와 집에서 쓰는 것이기 때문에 또한 프로젝트를 하면서 자주 쓸 것이기에 보안에 대해서는 잘은 모르지만, 공개서버(프로그램 자체서버)보다는 개인서버가 나을 것 같다는 것은 분명하다.

또한 어려우면 시도조차 할 생각을 안 했겠지만, 가이드도 매우 자세하고 간단해서 바로 적용하였다.

우선 나는 Ubuntu 서버에 구축하였고, Docker을 이용하여서 그 기준으로 글을 작성하겠다.
Synology나 윈도에도 구축하는 법이 가이드에 잘 나와있으니 참고해 보면 될 것 같다.

 

Self-host :: Documentation for RustDesk

Self-host If you are using RustDesk you should have your own RustDesk Server, these docs will help you on your RustDesk journey. Support is available via our Discord for OSS and email for Pro. How does self-hosted server work? There are technically two exe

rustdesk.com

방화벽

우선 구축하고자 하는 서버의 방화벽을 열어줘야 한다. 각 OS별로 다르니 열여 주자.

포트 프로토콜 서비스 용도
21114 TCP hbbs 웹 콘솔 (Pro 전용)
21115 TCP hbbs NAT 타입 테스트
21116 TCP + UDP hbbs TCP는 홀펀칭·연결, UDP는 ID 등록·하트비트
21117 TCP hbbr 릴레이
21118 TCP hbbs 웹 클라이언트
21119 TCP hbbr 웹 클라이언트

21114는 Pro 버전의 웹 콘솔용이다. 오픈소스 버전만 쓸 거면 안 열어도 된다.

21116은 TCP와 UDP를 둘 다 열어야 한다. 하나만 열면 연결이 안 된다.

21118, 21119는 웹 클라이언트용이다. 웹으로 접속할 게 아니면 닫아두는 걸 권한다. 이 포트가 열려 있으면 헤더를 위조해서 IP 차단을 우회할 수 있다고 공식 문서에 경고가 붙어 있다.

포트포워딩

다음으로 만약 IP가 공유기를 사용하고 있어 사설 IP(192.168.x.x, 10.x.x.x 등)인 경우 포트포워딩까지 진행해줘야 한다.
나처럼 고정 IP를 가지고 있는 서버에 구축할 경우 따로 포트포워딩은 필요 없이 방화벽만 오픈해 주면 된다.

Docker

Docker설치에 관련한 것은 이 글에서는 다루지 않고, 이미 docker은 사용할 줄 안다고 가정하겠다.
빈 디렉토리를 하나 만들고, 해당 디렉토리에 아래 명령어를 통해 docker-compose.yml을 받아준다.

wget rustdesk.com/oss.yml -O docker-compose.yml

다음으로 컨테이너를 올려준다.

 docker compose up -d

컨테이너가 정상적으로 올라갔으면 방금 생성한 디렉토리에 생성된 data/id_ed25519.pub을 열어준다. 여기 안에 작성되어 있는 것이 접속 key다. 이걸 접속할 PC에 넣어주면 되는데, PC가 여러 대라면 아래 "여러 PC에 설정 복사"를 보는 게 빠르다.

접속

이제 RustDesk 클라이언트를 열고 메인 화면의 ID 옆 [⋮] 메뉴 → Network로 들어간다. 예전에는 설정 안에 있었는데 위치가 바뀌었다.

여기서 바로 수정은 안 되고 먼저 잠금을 풀어야 한다. 관리자 권한을 물어본다.

ID 서버에 자신이 구축한 서버의 IP를 적고, Key에는 아까 복사한 key를 넣어주면 된다.

릴레이 서버는 비워둬도 된다. 안 적으면 RustDesk가 알아서 추론한다.

여러 PC에 설정 복사

PC가 여러 대면 key를 하나하나 복붙할 필요가 없다.

설정을 마친 PC의 Network 화면에서 Export Server Config를 누르면 서버 주소와 Key가 문자열 하나로 복사된다.

다른 PC에서 같은 화면의 Import Server Config를 누르고 Apply만 하면 끝이다.

스크립트로 설치할 거면 명령줄 옵션도 있다.

rustdesk.exe --config <설정문자열>

추가 설정

영구 비밀번호

한번 연결해 놓으면 최근 접속한 pc의 기록은 남기 때문에 ID는 기억할 필요가 없는데, 일회용 비밀번호는 계속 바뀌기 때문에 외부에서 실제로 사용하려면 영구비밀번호를 설정해 놔야 언제든지 접속이 가능하다.

설정->보안에 들어가서 아래의 비밀번호 탭에서 영구 비밀번호 설정을 눌러서 영구 비밀번호 설정을 해두고, 실제로 선택은 (임시/영구) 비밀번호 모두 사용으로 해두는 것을 권장한다.

etc

추가로 ID서버가 뭔지, 릴레이 서버가 뭔지 잘 몰라서 ChatGPT가 해준 답변을 첨부한다.

서버 종류 역할 필요한 경우  
ID 서버 (hbbs) 클라이언트의 ID 관리, 연결 정보 제공 자체 네트워크에서 RustDesk 서버를 운영할 때  
릴레이 서버 (hbbr) 직접 연결이 불가능할 때 중계 역할 호스트,클라이언트가 같은 네트워크가 아닐 때  

https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F

 

How does RustDesk work?

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer. - rustdesk/rustdesk

github.com

마무리

가이드가 워낙 잘되어있기 때문에 공식가이드를 보는 것이 도움이 많이 되었다.
또한 추가설정도 자세하게 나와있으니 참고하면 좋을 것 같다.

 

Docs of RustDesk :: Documentation for RustDesk

RustDesk Documentation RustDesk is a full-featured open source remote control alternative for self-hosting and security with minimal configuration. You have full control of your data, with no concerns about security. The Client is open source and there’s

rustdesk.com

728x90
반응형

'오픈소스' 카테고리의 다른 글

PostgreSQL 환경설정  (0) 2025.02.21
Obsidian Icloud calendar 동기화  (0) 2025.02.20
Docker 컨테이너와 파일 주고받기  (0) 2025.01.20
옵시디언 - 플러그인 Bartender 폴더 순서 변경  (0) 2025.01.07
Ollama delete partially downloaded models  (0) 2024.12.24
'오픈소스' 카테고리의 다른 글
  • PostgreSQL 환경설정
  • Obsidian Icloud calendar 동기화
  • Docker 컨테이너와 파일 주고받기
  • 옵시디언 - 플러그인 Bartender 폴더 순서 변경
창빵맨
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨·로그인
  • 전체
    오늘
    어제
    • 분류 전체보기 (495)
      • 오픈소스 (47)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (22)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
      • 삽질노트 (54)
  • 공지사항

  • 인기 글

  • 태그

    그리디
    이분탐색
    백준
    BFS
    dp
    이것이취업을위한코딩테스트다
    파이썬
    나동빈
    이코테
    오픈소스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바