윈도우 원격접속을 이용해서 Ubuntu GUI 환경으로 접속을 위해 xrdp 를 이용할 수 있다.
우선 하기와 같이 xrdp vnc3server tightvncserver를 삭제한다. 해당 서비스의 경우 높은 확률로 vnc error ( VNC error - problem connecting)를 발생시키기 때문이다.
이후 다시 tightvncserver, xrdp를 설치한다.
$ sudo apt-get remove xrdp vnc4server tightvncserver
$ sudo apt-get install tightvncserver
$ sudo apt-get install xrdp
Ubuntu 계정의 home 디렉토리에 .xsession 파일을 생성한다. 그리고 .xsession 파일 안에 하기와 같이 기재한다.
해당 명령은 Ubuntu 연결 시 default GUI를 설정해 주는 것으로 Ubuntu 18.04나 20.04 버전은 gnome이다.
$ gnome-session –session=gnome-fallback
추가로 본인의 GUI환경이 잘 설치되어 있는지도 확인한다. sudo systemctl statud gdm3 명령을 수행했을 때 Active: active (running) 으로 나오면 정상이다.
$ sudo systemctl status gdm3
● gdm.service - GNOME Display Manager
Loaded: loaded (/lib/systemd/system/gdm.service; static; vendor preset: enabled)
Active: active (running) since Fri 2023-03-03 13:29:42 KST; 3 weeks 5 days ago
Main PID: 1227 (gdm3)
Tasks: 3 (limit: 4915)
CGroup: /system.slice/gdm.service
└─1227 /usr/sbin/gdm3
위와 같이 나오지 않을 경우 별도 Unbuntu용 GUI 환경을 설치해 주거나 gdm3 서비스를 띄워야 한다.
// gdm3가 없다면 굳이 패키지를 지울 필요는 없다.
$ sudo apt remove --purge -y gdm3
$ sudo apt autoremove --purge -y
// 하기와 같이 gdm3 를 재설치하고 서비스를 시작한다.
$ sudo apt install gdm3 -y
$ sudo systemctl start gdm3.service
// 서비스가 잘 수행되고 있는지 확인
$ systemctl status gdm3
// 경우에 따라 시스템 재시작이 필요할 수도 있다.
$ sudo reboot
이제 xrdp도 띄워야 한다. 우선 xrdp가 잘 띄워져 있는지 먼저 확인한다.
$ sudo systemctl status xrdp
● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-03-30 11:48:23 KST; 18min ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 21249 (xrdp)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/xrdp.service
├─21249 /usr/sbin/xrdp
└─22307 /usr/sbin/xrdp
만약 Active: inactive (dead) 거나 Active: fail 이면 다음 명령을 수행한다.
$ sudo systemctl start xrdp
참고로 서비스를 내리거나 다시 시작하는 명령은 다음과 같다.
$ sudo systemctl stop xrdp
$ sudo systemctl restart xrdp
xrdp의 기본 포트는 3389 포트이며 포트가 잘 열려있는지 netstat -lntp 명령을 통해서 확인해야 한다. xrdp 서비스가 시작된 상태에서 아래와 같이 tcp6 3389 ... LISTEN 가 보이면 열려있는 것이다.
$ netstat -lntp
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
... (중략) ...
tcp6 0 0 :::3389 :::* LISTEN -
포트가 잘 떠있어도 Ubuntu 방화벽에서 차단하면 의미가 없다. 아래와 같이 방화벽에 포트를 등록한다.
ufw allow 3389
여기까지 실행되었다면 잘 되고 있는 것이다. 이제 윈도우에서 원격데스트톱 호출을 실행해 보자. 접속 Session은 Xorg로 한다.
□ 관련 페이지
- xrdp 원격 접속, 검은 화면 해결(black screen) https://driz2le.tistory.com/533
'Linux' 카테고리의 다른 글
Troubleshooting, numpy 설치 오류, SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel. (0) | 2023.06.04 |
---|---|
Troubleshooting, docker container 안에서 apt-get update connection timed out (0) | 2023.06.03 |
texlive & texmaker install, ubuntu 18.04 (0) | 2020.07.19 |
clamav install (0) | 2020.05.10 |
node.js, npm 설치 (0) | 2020.04.07 |