Linux(ubuntu)에 GUI, 원격연결(RDP) 세팅하기 - ubuntu-desktop, xrdp

2021. 11. 19. 17:25[개발] 지식/리눅스

지난번 CentOS에 GUI, RDP 설치에 이어 ubuntu에도 설치하고자 한다. 사실 우여곡절 끝에 이미 설치를 했고, 그 과정을 정리해서 올린다. CentOS 설치 했을때와 달랐던 점은 오프라인 환경이라는 것이었다. 사내 오프라인 망에서 설치했지만 다행이 미러서버가 존재해 인터넷망에서의 설치와 크게 다를것 같진 않다.

ubuntu 버전은 18.04이다.

GUI 설치

1. apt 최신화

일단 가장 처음에 해야할 일은 apt를 최신화 해주는 것이다.

나는 root 계정으로 해서 sudo는 필요 없었으나, 일반 계정으로 설치할때는 sudo를 붙여주자.

sudo apt update

2. tasksel 패키지 설치

다음에는 tasksel 패키지를 설치해준다.

사실 apt 를 사용해서 바로 설치해도 될 것 같긴 하다.

하지만 아래 Ref. 섹션에 적어둔 블로그를 주로 참조했기에 그대로 따라했다.

sudo apt install tasksel

3. ubuntu-desktop 설치

tasksel을 이용해서 ubuntu-desktop을 설치한다.

sudo tasksel install ubuntu-desktop

화면이 바뀌면서 프로그레스 바를 통해 진행상황을 알려준다.

도중에 몇번 실패하면서 종료되었는데, 위 명령어를 재차 실행해주니 중단된 시점부터 다시 설치가 진행되었다. 찝찝했지만 그대로 진행했고 결과적으로 큰 문제는 없었다.

4. gdm3 서비스 자동실행 등록

설치가 끝나면 일단 gdm3 서비스를 등록한다.

sudo systemctl enable gdm3

이 명령어는 부팅시 자동으로 gdm3 서비스를 시작하도록 등록하라는 뜻이다. 설치하는 장비가 나만 사용하는게 아니었기 때문에 혹시나 재부팅 될 수 있는 여지가 있으므로 등록해서 나쁠건 없다.

5. gdm3 서비스 시작

gdm3 서비스를 시작한다.

sudo systemctl start gdm3

만약 로컬 장비였다면 여기서 바로 GUI가 실행되었을 것이다.

하지만 클라우드 VM에서 ssh로 접속해 작업했기 때문에 그러진 않았다.

6. gdm3 서비스 확인

마지막으로 서비스가 정상적으로 구동되었는지 확인한다.

sudo systemctl status gdm3

active(running)이라고 뜨면 성공.

xrdp 설치

RDP(Remote Desktop Protocol)란 마이크로소프트에서 개발한 원격 접속 프로토콜이다. 리눅스(ubuntu)의 GUI 서비스를 Windows에서 원격으로 실행할 것이기 때문에 RDP를 구현한 xrdp 패키지를 설치해야 한다. 예전에는 vnc를 설치해서 접속을 했었는데 windows를 사용한다면 rdp로 접속하는게 여러모로 좋다.

VNC와 RDP의 가장 큰 차이점은 세션의 유무이다. VNC는 세션이 하나라서 한명이 조작하면 다른 접속자들의 화면에도 조작하는 내용이 그대로 보인다. 가끔 삼성이나 KT 등에 원격지원 요청을 하면, 상담사가 커서를 움직이거나 조작하는 내용이 내 컴퓨터에도 똑같이 보이는데 이게 VNC 방식이다. 반면 RDP는 각 사용자들이 각각의 세션을 사용할 수 있기 때문에 같은 장비를 여러명이 따로 사용할 수 있다. 고로 Windows를 쓸거라면 RDP가 낫다.

1. xrdp 패키지 설치

설치는 간단하다. 아래 명령어를 실행한다.

sudo apt install xrdp

2. xrdp 서비스 등록

gdm3와 마찬가지로 장비 부팅시 자동실행을 등록한다.

sudo systemctl enable xrdp

3. xrdp 서비스 실행

서비스를 구동한다.

sudo systemctl start xrdp

4. xrdp 서비스 확인

서비스 정상구동 여부를 확인한다.

sudo systemctl status xrdp

active(running)이라고 뜨면 성공.

5. 포트(port) 확인

xrdp는 Windows에서 접속하는 관문 역할을 한다. 따라서 포트가 외부에 열려있어야 한다. 아래 명령어로 열려있는 tcp 포트를 확인한다.

netstat -lntp
  • l : LISTENING (열려있는)
  • t : TCP 만
  • p : 상세정보까지
  • n : 10진수 숫자로 표현

xrdp의 기본 포트는 3389 이다. 3389 포트가 대충 아래처럼 표현되어야 한다.

  • tcp 0.0.0.0:3389 0.0.0.0:* LISTEN
  • tcp6 :::3389 :::* LISTEN

저 두가지가 모두 있을수도 있고, 하나만 있을수도 있다. 나같은 경우는 tcp6만 있고 tcp(ipv4)는 없었다. 그런데 tcp6(ipv6)만 열려있어도, Windows에서 접속했을때 못찾으면 소켓에서 tcp(ipv4)도 같이 찾으므로 문제될 것은 없어 보인다.

만약 포트를 변경하고 싶다면 설정파일을 열어서 변경해준다.

sudo vi /etc/xrdp/xrdp.ini

[global] 항목에 port=3389로 되어있을 것이다. 이 부분을 변경한다. 그리고 xrdp 서비스를 재시작한다.

sudo systemctl restart xrdp

7. 방화벽 개방

방화벽에 막혀있으면 아무리 서비스를 잘 올려놓고 LISTEN 상태라고 해도 원격으로 접속할 수가 없다. ubuntu의 경우 ufw를 사용해서 방화벽을 해제한다. 물론 방화벽 상태가 꺼져있다면 상관없다.

ufw allow 3389

위와 같이 입력해서 3389포트의 방화벽을 해제한다.

리눅스 계정 비밀번호 설정

원격으로 GUI에 접속하기 위해서는 사용할 계정에 패스워드가 설정되어 있어야 한다. Cloud VM의 경우 key인증을 통해 접속하기 때문에 명시된 패스워드가 없는 경우가 있다. 이럴 경우 패스워드를 타이핑해서 로그인할 수 있도록 세팅한다.

passwd <계정이름>

설정할 비밀번호를 2번 타이핑하면 된다.

Windows에서 원격 데스크톱 접속

이제 Windows에서 접속해보자.

win + R 을 눌러 실행창을 켠다음, mstsc를 입력&실행하면 원격 데스크톱 연결 앱이 실행된다.

IP를 입력하고 연결 버튼을 클릭하면 접속이 시작된다.

RDP 포트는 default가 3389라서 포트를 따로 적진 않아도 될텐데, 잘 안된다면 IP뒤에 Port까지 적고 접속을 시도해보자.

111.222.333.444:3389

아래와 같은 화면이 나오면 아까 패스워드를 설정한 계정과 패스워드를 입력하고 로그인한다.

Ref.

클라우드 우분투에 gui로 원격 연결하기

[Ubuntu] 서버포트열기

Ubuntu) 포트, 방화벽 확인 및 포트 열기

[Ubuntu] 우분투 방화벽(UFW) 설정

방화벽, 포트 및 IP 접근제어

공유기에 연결된 Linux(Ubuntu) 컴퓨터를 외부에서 원격 데스크톱 연결을 통해 조작하기

GCP VM 인스턴스 GUI로 접근하기

공유기에 연결된 Linux(Ubuntu) 컴퓨터를 외부에서 원격 데스크톱 연결을 통해 조작하기

<