처음 글 ( 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==
이걸 복사해서 사용하면 됩니다.
그럼 여기 공홈의 내용 이런 내용이 있는데요
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 폴더의 파일들을 전부 삭제해야 합니다.
¹ºÀÏ ÀÖÀ¸¸é ¹é¾÷/º¹±¸ ±ÍÂú°Åµç¿ä
À©µµ³ª ¸®´ª¿ë ¹ÙÀ̳ʸ® ¹Þ¾Æ¼ ½ÇÇàÇϸé Å° ÆÄÀÏ »ý¼ºµÇ´Ï ±× ÆÄÀÏÀ» È£½ºÆ®¿¡ ÀúÀåÈÄ Docker ½ÇÇà ¿É¼ÇÀ¸·Î ¸µÅ©ÇÏ½Ã´Â°Ô ÃßõÀÔ´Ï´Ù (ÀÌ·¯¸é ±×³É ÆÄÀϸ¸ º¸°üÇÏ¸é µÇ°í, Docker À̹ÌÁö ¼³Ä¡Á¤µ· ½ºÅ©¸³Æ®·Î ÀÚµ¿È ÇÒ ¼ö ÀÖÀ¸´Ï ½ÇÁúÀûÀ¸·Î ÀüÀÚµ¿À¸·Î À缳ġ °¡´É)
Å° »ý¼ºÇÒ¶§ ÁÖÀÇÁ¡ÀÌ °¡²û À©µµÀÇ ÆÄÀÏ¸í¿¡¼ Çã¿ë ¾È µÇ´Â ¹®ÀÚ°¡ µé¾î°¥¶§µµ ÀÖ½À´Ï´Ù
±×·²¶§´Â Å° Áö¿ì°í Àç½ÇÇàÇؼ ±¦ÂúÀ»¶§±îÁö »Ì±â ¹Ýº¹ÇØ¾ß ÇÕ´Ï´Ù
Á¦°¡ Á¶±Ý »ç¿ëÀ» Çغ¸´Ï±ñ. (º»¹®¿¡µµ ÀÖ´Â ³»¿ëÀÌÁö¸¸) Å° »èÁ¦ / Àç½ÇÇà º¸´Ù´Â
docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair
ÀÌ ¸í·É¾î·Î ¿©·¯¹ø ½ÇÇàÇØ °¡¸é¼ ±ò²ûÇÑ Å°¸¦ ãÀº docker-compose.yaml ¿¡ ȯ°æº¯¼ö ¹æ½ÄÀ¸·Î ³Ö´Â°Ô °¡Àå ½±°í ÆíÇÑ°Å °°½À´Ï´Ù.
¸»¾¸ÇϽŴë·Î µ¥ÀÌÅÍÆú´õ ¹é¾÷µµ ÇÊ¿ä ¾ø°í docker-compose.yml ¸¸ º¸°üÇØ µÎ¸é µÇ´Ï±î¿ä.
KEY Çʼö ÀÏÄ¡ ¿É¼Ç ¾²°í ÀÖ½À´Ï´Ù. Á¦ÀÏ ÆíÇϳ׿ä^^