리눅스 우분투 22.04 기준으로 서버 구축 시, 원격 데스크톱 설정을 정리했습니다. XRDP 설치부터, 원격데스크톱 접속, 첫 접속 시 발생하는 검정화면 문제까지 해결 방법을 확인해보세요!
아래 모든 명령은 root 권한에서 실행합니다!
> sudo -s
(로그인계정 암호 입력)
원격데스크톱 XRDP 설정
1. xrdp 설치
# apt install -y xrdp
설치 확인
# systemctl status xrdp
(옵션) 2. xrdp 포트 변경 (보안을 고려하여 추천)
# vim /etc/xrdp/xrdp.ini
port=3389 에서 포트 번호를 수정 후 저장하기
3. 우분투 재시작
# reboot
4. xrdp 서비스 시작
# service xrdp start
- 시작 : service xrdp start
- 재시작 : service xrdp restart
- 중지 : service xrdp stop
5. 외부에서 원격데스크톱 접속!
저는 윈도우에서 mRemoteNG 프로그램을 사용중
- IP : 우분투 서버의 IP 주소
- 사용자이름 : 우분투 서버의 계정명
- 암호 : 우분투 서버의 계정 암호
- 프로토콜 : RDP
- 포트 : 3389 (XRDP 기본)
추가 설정
1. 재부팅시, xrpd 자동 실행 설정
# systemctl enable --now xrdp
2. 원격데스크톱 접속 시, SSL 인증서 접근 권한 추가
원격 접속 시, 인증 관련 경고가 나오지 않게 해줌
# adduser xrdp ssl-cert
xrdp 재시작
# systemctl restart xrdp
3. 원격데스크톱 방화벽 설정
ufw 방화벽 설치
# apt install -y ufw
ufw 방화벽 활성화 및 원격데스크톱 포트 열기
# ufw enable
# ufw allow from any to any port 3389
(3389는 원격데스크탑 포트 번호)
xrdp 재시작
# systemctl restart xrdp
문제 해결
1-1. 원격데스크톱 접속 시, 검정화면 뜨는 문제 해결 - 설정 수정
# vim /etc/xrdp/startwm.sh
startwm.sh 파일에서 스크린샷과 같이 아래쪽에 아래 3줄을 추가
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
$HOME/.profile
xrdp 재시작
# systemctl restart xrdp
2-2. 원격데스크톱 접속 시, 검정화면 뜨는 문제 해결 - xfce4 설치
(xrdp는 이미 설치되어 있어야 합니다)
# apt install -y xfce4
환경 설정
# echo "xfce4-session" > ~/.xsession
# cat ~/.xsession # 정상변경여부 확인
xrdp 서비스 재시작
# service xrdp restart
3. 그래도 원격데스크톱 접속 시, 블랙스크린이 뜬다면?
- 우분투를 로그오프(reboot 하고 로그인하지 않은 상태)에서 시도
- 가상컴퓨터 호스트OS 점검 : 방화벽 포트 열기
- 공유기 점검: 포트포워드 설정
- ..검정화면에서 조금 더 기다려보고, 화면도 클릭해봅시다
4. 원격데스크톱이 crash 난 경우, 강제 해결 방법
원격 접속 중인 PID 확인
# cat /var/run/xrdp/xrdp-sesman.pid
(PID 번호 기억하기)
# cat /var/run/xrdp/xrdp.pid
(PID 번호 기억하기)
확인된 PID 죽이기 (필요한 경우, pid 파일 강제 삭제)
# kill -9 [PID]
# rm /var/run/xrdp/*.pid
xrdp 서비스 재시작
# service xrdp restart
포트 Listen 상태로 뜨면 정상
# netstat -nap | grep 3389
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN ???/xrdp
이어서, 우분투 SSH 원격 터미널 설정 바로가기!
'IT > SW 개발' 카테고리의 다른 글
우분투 서버 SSH 원격 터미널 설정 (0) | 2024.03.10 |
---|---|
우분투 서버 초기 설정 (0) | 2024.03.04 |
CSS 적용 방법 - HTML에 CSS를 적용하는 방법 3가지 (0) | 2024.01.14 |
어떤 프로그래밍 언어를 선택해야 할까요? 추천! (0) | 2015.02.23 |
AngularJS 소개 - 특징, 철학, 주요 개념, 동작 방식 (0) | 2015.01.20 |
SWEBOK 한글 번역 및 해설 (0) | 2014.07.22 |
립모션 개발 기술 및 LEAM 프로젝트 공개 2부 (5) | 2013.07.29 |
립모션 개발 기술 및 LEAM 프로젝트 공개 1부 (2) | 2013.07.29 |