개요
맥을 사용하다가도 윈도우가 필요한 순간이 종종 있다.
하지만 그렇다고 노트북을 두 대 들고다닐수도 없기 때문에.. 원격 접속 환경을 구축해보기로 했다.
처음에는 Microsoft의 Windows Remote App을 사용하려했지만, 원격으로 접속할 노트북이 Windows Home 버전이라 공식적으로 지원되지 않았다.
물론 우회하는 방법도 있지만 겸사겸사 self hosting 가능한 RustDesk를 써보기로 했다.
RustDesk Self Hosting
일단 먼저 해야할일은 서버 포트를 열어주는것이다.
hbbs:21114(TCP): used for web console, only available inProversion.21115(TCP): used for the NAT type test.21116(TCP/UDP): Please note that21116should be enabled both for TCP and UDP.21116/UDPis used for the ID registration and heartbeat service.21116/TCPis used for TCP hole punching and connection service.21118(TCP): used to support web clients.
hbbr:21117(TCP): used for the Relay services.21119(TCP): used to support web clients.
나는 오라클 서버를 사용중이라 오라클 홈페이지에서 포트를 설정했다.
Pro 버전은 사용하지 않을 예정이라 21115~21119 포트만 열어주었다.

포트 설정 이후에는 서버에 접속해 docker compose로 RustDesk 서버를 실행한다.
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
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실행 후에는 compose.yml이 있는 폴더에 data라는 폴더가 생성되는데, 그 안에 있는 pub키를 복사해둔다.
이 키는 클라이언트에서 서버를 인증할 때 사용된다.
이후 클라이언트에서 RustDesk를 설치한 뒤 아래 항목을 설정한다.

설정이 완료되면 self-hosted RustDesk 서버를 통해 원격 접속이 가능해진다.
트러블슈팅
사실 처음에는 서버의 공인 IP를 RustDesk의 ID 서버와 릴레이 서버에 입력했는데 연결이 되지 않았다.
설정도 정상이고, 포트도 열려 있었고, 서버 로그에도 특별한 오류가 없어서 한참을 헤맸다.
처음엔 RustDesk 설정 문제인가 싶어서 이것저것 확인했다.
21115 ~ 21119포트 오픈 확인ss -tunlp | grep 211로 리스닝 상태 확인nc -vz 127.0.0.1 21116테스트- Docker 및 서버 로그 확인
전부 정상이었다.
그런데 외부에서 접속하면 계속 연결 실패…
그리고 생각난게 Tailscale..
예전에 서버에 올려둔 DB가 털린 적이 있었는데(무려 2번), 그 이후로 외부에서 직접 접근하지 못하도록 네트워크를 꽤 빡세게 제한해두었었다.
그 과정에서 Tailscale 인터페이스를 통해서만 접근 가능하도록 우회 설정을 해둔 상태였던 것.
그래서 공인 IP로는 연결이 안 되었고, Tailscale에서 할당받은 100.x.x.x 대역 IP를 RustDesk 서버 주소로 입력하니 바로 정상 연결되었다.
마무리
이번에 직접 RustDesk를 self hosting 하면서 느낀점은 구성 자체는 상당히 단순하고 설정이 쉽다는 점이었다.
지금 회사는 매주 금요일마다 재택을 하고있는데, 이틀로 늘려줬음 좋겠다.(?)