rustdesk 사용법 일부 추가

캔위드   
   조회 7947   추천 0    

처음 글 ( https://www.2cpu.co.kr/lec/4782 ) 에서는  저도 인터넷 어딘가 떠도는 글을 대충 요약한 느낌이라 실수가 조금 있었습니다 ^^

이번에는 공식 매뉴얼 위주로 좀더 간단한 설치/실행 방법을 정리했고요 ( 공홈에 설정이 더 간단한게 있었어요 ) 사용 팁 몇가지 더 추가했습니다.

먼저 docker-compose 최소 버전은 다음과 같습니다. 


1. ID서버만 사용하고 KEY 미사용시


공식 매뉴얼(?) 에 있는 내용입니다. - https://github.com/rustdesk/rustdesk-server

version: '3'

services:
  rustdesk-server:
    container_name: rustdesk-server
    image: rustdesk/rustdesk-server-s6:latest
    ports:
      - "21115:21115"
      - "21116:21116"
      - "21116:21116/udp"
      - "21117:21117"
    volumes:
      - ./data:/data
    restart: unless-stopped

방화벽(또는 공유기 NAT) 오픈 포트는 : 21115~7/tcp, 21116/udp 입니다. ( 공식매뉴얼 - https://rustdesk.com/docs/en/self-host/  )

이렇게 하면 rustdesk 에서 설정 > Network > ID 서버 부분에 위에 설치한 ruestdesk ip 를 입력하면 됩니다.

key 없어도 잘 되네요.


1. KEY 도 사용하고 싶을때

key 를 사용하면 3곳 (rustdesk서버, 원격받는pc, 원격하는pc) 의 key 가 정보 동일해야만 원격이 연결됩니다

포트open를 any ip 로 했을시 그냥 아무나 다 쓸 수 있는게 아니라 오직 key 를 아는 사람들만 사용할 수 있다는 부분이 장점이 되겠죠.

version: '3'

services:
  rustdesk-server:
    container_name: rustdesk-server
    image: rustdesk/rustdesk-server-s6:latest
    ports:
      - "21115:21115"
      - "21116:21116"
      - "21116:21116/udp"
      - "21117:21117"
    environment:
      - "ENCRYPTED_ONLY=1"     # key 가 반드시 맞아야만 통신 가능 옵션. 필요 없으면 주석처리
      # KEY 생성방법 - docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair
      - "KEY_PRIV=xcUxPmWWz0s9bzgYHlxWNiRo7Zw16Am7JoMwJx6PGnBcgCWth3deeWQALBeIvFk2NATtBrK4gRSZVJZHG0hWRQ=="
      - "KEY_PUB=XIAlrYUnXnxkACwRyLxZ2jQE7Qayi5dUmVSWRxtIVkU="
    volumes:
      - ./data:/data
    restart: unless-stopped


중요한 환경변수는 ENCRYPTED_ONLY=1 하나이며 ( KEY가 맞아야 한다는 옵션 )
KEY_PRIV, KEY_PUB는 굳이 설정하지 않아도 서버를 실행하면 자동으로 생성되며

cat ./data/id_ed25519.pub

하셔서 키를 확인할 수 있습니다 (PRIV가 개인키고 PUB 가 공개키로서 rustdesk app 사용시 입력할 key 입니다.)

해당 키를 다음과 같이 입력하여 사용합니다.


그럼 자동으로 생기는걸 굳이 환경변수로 설정을 했냐면요


3. 파일명 이름변경으로 자동 셋팅된 상태로 시작


먼저 키 생성은 간단하고요. ( 매뉴얼 - https://github.com/rustdesk/rustdesk-server?tab=readme-ov-file#how-to-create-a-keypair )

$ docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair
Public Key:  NP6+JkJqfUSqvHwonx0naBzlLEqRoQJglkjSWRvA08g=
Secret Key:  lXIq1cAwtyWWCkjLexfOQPKw/aGEV6wSdAVEyCeOK5o0/r4mQmp9RKq8fCifHSdoHOUsSpGhAmCWSNJZG8DTyA==

이걸 복사해서 사용하면 됩니다. 


그럼 여기 공홈의 내용 이런 내용이 있는데요 

https://rustdesk.com/docs/en/self-host/client-configuration/#5-put-config-in-rustdeskexe-file-name-windows-only

rustdesk 실행파일이 다운로드 받으면 이건데요.

rustdesk-1.2.3-2-x86_64.exe

파일 이름을 이렇게 수정하면 ( 가령 서버가 abcd.com 이고 key 가 NP6+JkJqfUSqvHwonx0naBzlLEqRoQJglkjSWRvA08g= 라고 할때

rustdesk-1.2.3-2-host=abcd.com,key=NP6+JkJqfUSqvHwonx0naBzlLEqRoQJglkjSWRvA08g=,.exe

이렇게 이름을 변경해서 사용하면 설정 > 네트워크 부분을 입력하지 않아도 위의 값이 자동으로 사용됩니다. 매우 편하죠^^


하지만 문제는 저 key가 문제인데 재수없게 슬래쉬 같은게 들어가면.. 윈도우에서는 파일명 변경이 불가능해집니다.

공홈의 가이드는 그런 글자(슬래쉬 같은거) 나오지 않을때까지  ./data/id_ed25519 , ./data/id_ed25519.pub 두개 파일 삭제하고 서버 재시작을  반복하라네요

저는 서버 반복 재시작 대신에 이 명령어를 반복 실행하여 깔끔한 키(슬래쉬 같은거 없는거) 를 찾아서 ENV 로 등록하는 방법을 사용했습니다.
docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair


참고로 key 를 사용하지 않는다면 파일명을 다음과 같이 하여 사용하셔도 잘 됩니다.

rustdesk-1.2.3-2-host=abcd.com,.exe


실제로 실행한 서버가 잘 접속하는지는 MS의 tcpview 를 사용하여 확인할 수 있습니다.  https://learn.microsoft.com/ko-kr/sysinternals/downloads/tcpview


4. 추가 팁

중요한 옵션 한가지

기본값은 체크가 안되어 있습니다.

rustdesk 로 원격접속시 저걸 체크하지 않으면 원격의 rustdesk 옵션을 변경할 수 없습니다 ㅠㅠ
다른 수단으로 해당 서버를 접속할 수 있다면 사실 상관은 없는데요. 그렇지 않은경우.
그러니깐 접속 수단이 restdesk 밖에 남지 않은 상황인데 저 옵션이 꺼져 있으면 난감할 수 있습니다. ( 현재 그 상황입니다 제가 아이고 )



윈도우인 경우 중요한 폴더 2가지

rustdesk-xxx.exe 를 실행하자마자

%USERPROFILE%\AppData\Local\rustdesk  -  이 폴더에 rustdesk.exe 같은게 자동으로 설치됩니다.
%USERPROFILE%\AppData\Roaming\RustDesk\config  - 이 폴더에 설정 값들이 파일 형태로 저장됩니다.

가령 위에서 만든 rustdesk-1.2.3-2-host=abcd.com,.exe 를 실행하면
%USERPROFILE%\AppData\Roaming\RustDesk\config\RustDesk2.toml 파일의 저 위치에 abcd.com:21116 이 자동으로 들어갑니다.


참고로 실행하자 마자 입니다. 설치를 하지 않아도 그냥 막 들어가요..
그래서 설정을 초기화 하려면 %USERPROFILE%\AppData\Roaming\RustDesk\config 폴더의 파일들을 전부 삭제해야 합니다.







dateno1 2024-04
키 내부 저장 추천 안 합니다

뭔일 있으면 백업/복구 귀찮거든요

윈도나 리눅용 바이너리 받아서 실행하면 키 파일 생성되니 그 파일을 호스트에 저장후 Docker 실행 옵션으로 링크하시는게 추천입니다 (이러면 그냥 파일만 보관하면 되고, Docker 이미지 설치정돈 스크립트로 자동화 할 수 있으니 실질적으로 전자동으로 재설치 가능)

키 생성할때 주의점이 가끔 윈도의 파일명에서 허용 안 되는 문자가 들어갈때도 있습니다

그럴때는 키 지우고 재실행해서 괜찮을때까지 뽑기 반복해야 합니다
     
캔위드 2024-04
넵 맞습니다. 데이터 폴더를 백업하지 않고 docker-compose.yml 만 보관하는 경우 설정이 날아가니 사용하는 모든 클라이언트가 미작동하는 불쌍사가 발생할 수 있죠.
제가 조금 사용을 해보니깐. (본문에도 있는 내용이지만) 키 삭제 / 재실행 보다는
docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair
이 명령어로 여러번 실행해 가면서 깔끔한 키를 찾은 docker-compose.yaml 에 환경변수 방식으로  넣는게 가장 쉽고 편한거 같습니다.
말씀하신대로 데이터폴더 백업도 필요 없고 docker-compose.yml  만 보관해 두면 되니까요.
          
dateno1 2024-04
그러고보니 환경 변수로 넣는다는 선택지도 있네요 (프롬포트로 키 먹여지니)
witbox 2024-04
저도 3번 잘 쓰고 있습니다
     
캔위드 2024-04
맞아요 저도 3번으로 쓰고 있습니다.
KEY 필수 일치 옵션 쓰고 있습니다. 제일 편하네요^^


제목Page 1/28
03-30   760   박문형
03-05   3207   스캔l민현기
03-03   2776   안형곤
02-14   3709   캡틴아메리카노
2024-11   8179   서울I김동수
2024-11   8943   QS왕통키손…
2024-10   11332   스캔l민현기
2024-09   9683   rpki
2024-09   13865   화정큐삼
2024-07   19825   박문형
2024-05   24407   삐돌이슬픔이
2024-04   26968   Fentanest
2024-03   27424   tncsystem
2024-02   32289   딥러닝서버
2024-02   31772   딥러닝서버
2024-01   21501   딥러닝서버
2024-01   22381   캔위드
2024-04   7948   캔위드
2024-01   12704   딥러닝서버
2024-01   10199   박문형