1. 기본 설치 조건
Rustdesk Server/Client는 다양한 환경에 설치가 가능하다..
윈도우즈/리눅스/맥OS/시놀로지
여기에서는 우분투 20.04 LTS 기준으로 설치를 진행 하도록 하겠다.
2. 네이티브로도 설치가 가능하나, 설정의 편의를 위해 Docker-Compose로 진행하기로 한다.
우분투에 SSH로 접속하고, 적당한 곳에 docker에서 사용할 로컬 폴더를 생성한다.
mkdir -p /docker/rustdesk
cd /docker/rustdesk
3. 이제 docker-compose에서 사용할 yml파일을 작성하도록 한다.
아래 rustdesk.yml파일중에 {도메인주소 OR IP}만 본인 환경에 맞게 수정해서 복사/붙여넣기 하기 바란다.
ex) command: hbbs -r joongon.com:21117 -k OR command: hbbs -r 122.22.22.12:21117 -k
그리고 저장한다.(당연한거지만...)
*복사(ctrl + ins) / 붙여넣기(shift + ins)
본인 서버의 cpu에 따라 docker image가 다르니 구분해서 설정하도록 한다.
AMD/INTEL CPU
nano rustdesk.yml
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r {도메인주소 OR IP}:21117 -k _
volumes:
- ./data:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr -k _
volumes:
- ./data:/root
networks:
- rustdesk-net
restart: unless-stopped
nano rustdesk.yml
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest-arm64v8
command: hbbs -r {도메인주소 OR IP}:21117 -k _
volumes:
- ./data:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest-arm64v8
command: hbbr -k _
volumes:
- ./data:/root
networks:
- rustdesk-net
restart: unless-stopped
4. 이제 아래 명령으로 container를 실행해보자.
docker-compose -f rustdesk.yml up -d
docker ps #docker가 잘 로딩 된 것을 확인
5. 이제 네트워크 설정할 차례이다.
RustDesk는 총 21115 - 21119까지 5개의 Port를 사용한다.
이중 21118, 21119는 옵션인다.(WebUI용) 그래도 해당 포트를 일단 모두 열어준다.
방화벽에서 모두 열어주고 라우터(공유기)에서 포트포워딩도 해줘야 한다.(당연한거지만)
5.1 방화벽 설정
ufw allow 21115:21119
ufw allow 21116/udp
*OCI(오라클 클라우드 인프라스트럭쳐) VM 같은경우 ufw가 아닌 iptables에 직접 방화벽 정책을 입력해야 한다. 하단의 OCI 네트워크 설정을 참조해서 진행
5.2 라우터(공유기) 설정
외부 --> 내부로 볼떄, 21115:21119 --> 21115:21119(tcp), 21116 --> 21116(udp)
6. 이제 보안 설정을 해보자.
아래 경로에 가면 보안 Key set이 보인다.(id_ed25519, id_ed25519.pub)
이중 public key인 id_ed25519.pub 파일을 열어서 내용을 복사해 놓는다.
cd /docker/rustdesk/data
nano id_ed25519.pub
*아래와 같은 공개키값을 복사해 놓는다.
vCM4beuUJiwWWLnewYsdfsgdfhdfhdfhadsasHR5Y=
이제 이 키 값을 우리가 연결해 사용할 remote PC등에 설정할 예정이다.
7. 이제 모든 서버 설정이 마무리 되었다. 우리가 접속할 모든 remote 기기들, PC/Mac등에 RustDesk의 Client를 설치하자. Client 다운로드 https://rustdesk.com/
8. 설치된 Client를 실행하고 아래와 같이 설정한다.(ID/Relay Server)
RustDesk Server의 도메인과 포트번호(21116)를 입력하고, 마지막의 ed25519 공개키 값을 입력해준다.
9. 정상적으로 Server에 연결되면 하단에 아래와 같이 "Ready"문구가 뜨게 된다.
10. 이제 다른 PC에서 지금 설정한 PC(remote)로 접속이 가능한지 확인해 본다.
다른 PC에도 RustDesk Client가 마찬가지로 설치/동일셋팅(서버주소, 보안키) 되어 있어야 한다.
접속시 사용할 비번은 임의 생성되나, 본인 고유의 값으로 변경 가능하다.
비번은 접속 타겟이 되는 remote PC마다 각각 설정해주어야 한다.
접속이 정상적으로 되면, 상단에 암호화된 접속임을 알 수 있는 초록색 방패아이콘이 표기된다.
=========================================================
OCI VPS(UBUNTU 20.04 LTS A1(Ampere) Instance)
1. SSH로 접속 후, iptables로 방화벽 설정을 진행한다. OCI에서는 ufw가 비활성화 되어 있는 것 같다.
21115-21119/tcp, 21116/udp를 열어준다.
iptables -I INPUT -p tcp --dport 21115:21119 -j ACCEPT
iptables -I INPUT -p udp --dport 21116 -j ACCEPT
아래 명령으로 iptables 설정을 저장한다. 저장하지 않을 경우 재부팅시 설정한 사항은 초기화 되버린다.
netfilter-persistent save
※ netfilter-persistent가 없는 경우 패키지 매니저를 통해 설치하면 된다.
apt update
apt install netfilter-persistent -y
2. 설정된 방화벽이 제대로 등록되었는지 확인 한다.
iptables -S | grep 2111*
3. OCI 네크워크에 대한 Portforwarding 설정을 진행한다.