리눅스 서버 환경에서 윈도우 원격 데스크톱 연결(RDP) 기능을 사용하게 해주는 xrdp 설치는 많은 사용자들에게 필수적인 과정입니다. 특히 GUI 환경이 필요한 작업을 원격으로 처리할 때 매우 유용합니다. 이 가이드에서는 리눅스 배포판(Ubuntu, CentOS 등)에서 xrdp를 성공적으로 설정하고, 윈도우에서 접속하는 방법에 대해 상세히 다룹니다.
📚 함께 읽으면 좋은 글
xrdp 설치 전 필수 확인 사항 및 준비 단계 보기
xrdp 설치를 시작하기 전에, 사용하려는 리눅스 서버에 데스크톱 환경(GUI)이 설치되어 있는지 확인해야 합니다. xrdp는 RDP 프로토콜을 사용하여 원격으로 GUI 세션을 제공하므로, GUI 환경이 없으면 정상적인 사용이 불가능합니다. 대부분의 서버 배포판은 기본적으로 GUI가 설치되어 있지 않으므로, GNOME, KDE, Xfce 등 원하는 데스크톱 환경을 먼저 설치하는 것이 중요합니다.
또한, 시스템 패키지 목록을 최신 상태로 업데이트해야 안정적인 설치가 가능합니다. 터미널에서 다음 명령어를 실행하여 업데이트를 진행합니다. 이 과정은 시스템의 안정성을 높이고 최신 버전의 종속성을 확보하는 데 필수적입니다.
sudo apt update && sudo apt upgrade -y (데비안/우분투 계열)
sudo yum update -y (CentOS/RHEL 계열)
필수적으로 데스크톱 환경을 먼저 설치하고 시스템을 업데이트하는 것이 성공적인 xrdp 설정을 위한 첫걸음입니다.
Ubuntu 환경에서 xrdp 설치 및 설정 상세 더보기
Ubuntu 환경은 xrdp 설치가 비교적 간단합니다. 다음 명령어를 순서대로 실행하면 xrdp 서비스 설치 및 활성화가 완료됩니다. 설치 후에는 방화벽 설정(UFW)에서 RDP 기본 포트인 3389를 허용해 주어야 외부에서 접속이 가능합니다.
sudo apt install xrdp -y
sudo systemctl enable xrdp
sudo systemctl start xrdp
방화벽 설정은 보안상 매우 중요합니다. 3389 포트를 개방하는 명령어는 다음과 같습니다. 만약 방화벽을 사용하고 있지 않다면 이 단계는 생략 가능하지만, 보안을 위해 방화벽 설정은 반드시 권장됩니다.
sudo ufw allow 3389/tcp
기본적으로 Ubuntu의 xrdp는 VNC 세션 관리자에게 제어권을 넘기도록 설정되어 있습니다. 때로는 $HOME 디렉터리에 .xsession 파일 등을 설정하여 세션을 지정할 필요가 있을 수 있습니다. 예를 들어, Xfce를 사용할 경우 다음과 같이 세션을 지정합니다.
echo xfce4-session > ~/.xsession
CentOS/RHEL 환경에서의 xrdp 및 추가 설정 확인하기
CentOS나 RHEL 계열에서는 EPEL 저장소 추가 및 SELinux 설정을 추가로 해줘야 하는 경우가 많습니다. 먼저 EPEL 저장소를 설치하고, xrdp를 설치합니다.
sudo dnf install epel -y (CentOS 8 이상)
sudo yum install epel-release -y (CentOS 7 이하)
sudo yum install xrdp -y
CentOS에서는 Gnome 데스크톱 환경 설치 후, xrdp가 해당 환경을 인식하도록 설정해주는 것이 일반적입니다. 또한, 시스템 방화벽(firewalld)에서 RDP 포트를 열어주어야 합니다. 다음 명령어는 firewalld 설정 예시입니다. 방화벽 설정 변경 후에는 반드시 리로드해야 적용됩니다.
sudo firewall-cmd --permanent --add-port=3389/tcp
sudo firewall-cmd --reload
CentOS/RHEL 환경에서는 SELinux가 원격 접속을 막을 수 있으므로, SELinux 정책을 수정하여 xrdp가 정상적으로 동작하도록 허용해주는 것이 중요합니다.
윈도우 원격 데스크톱 연결 및 접속 문제 해결 상세 더보기
리눅스 서버에 xrdp 설치가 완료되었다면, 윈도우 PC에서 ‘원격 데스크톱 연결’ 프로그램을 실행합니다. 서버의 IP 주소를 입력하고 ‘연결’ 버튼을 누릅니다. 세션 유형 선택 화면이 나타나면 기본값인 Xorg 또는 sesman-Xvnc를 선택합니다.
로그인 시도 시, 리눅스 사용자 계정 이름과 암호를 입력합니다. 정상적으로 연결되면 리눅스 데스크톱 환경이 윈도우 창에 나타납니다. 만약 접속이 원활하지 않다면, 다음 사항을 확인해야 합니다.
- 서버의 IP 주소가 올바른지 확인합니다.
- 방화벽(UFW, firewalld)에서 3389 포트가 열려 있는지 확인합니다.
- xrdp 서비스가 활성화되고 실행 중인지
sudo systemctl status xrdp명령어로 확인합니다. - 리눅스 계정의 비밀번호가 설정되어 있는지 확인합니다.
특히 연결 끊김 현상이 자주 발생한다면, 네트워크 환경이나 리눅스 서버의 자원(CPU, 메모리) 부족 여부를 점검해 보는 것이 좋습니다.
xrdp 설정 파일 분석 및 포트 변경 방법 확인하기
xrdp의 핵심 설정 파일은 /etc/xrdp/xrdp.ini입니다. 이 파일을 편집하여 포트 번호 변경, 보안 강화, 세션 설정 등 다양한 커스터마이징이 가능합니다. 예를 들어, 보안을 위해 기본 포트인 3389를 다른 번호(예: 3390)로 변경하려면 [Globals] 섹션의 port=3389 값을 수정하면 됩니다.
sudo nano /etc/xrdp/xrdp.ini
포트 번호를 변경한 후에는 반드시 해당 포트를 방화벽에서 허용하고, xrdp 서비스를 재시작해야 변경 사항이 적용됩니다. 이는 서버 보안을 강화하는 중요한 방법 중 하나입니다.
sudo systemctl restart xrdp
또한, xrdp.ini 파일 내에서 [sesman] 섹션을 통해 세션 관리자 설정을 조정할 수 있으며, 이 부분은 다중 사용자 환경에서의 세션 관리에 큰 영향을 미칩니다.
xrdp와 VNC의 차이점 및 사용 환경 비교 보기
xrdp와 VNC(Virtual Network Computing)는 모두 원격 데스크톱을 가능하게 하지만, 동작 방식에 차이가 있습니다. xrdp는 Microsoft의 RDP 프로토콜을 사용하는 반면, VNC는 RFB 프로토콜을 사용합니다. xrdp는 일반적으로 RDP 클라이언트가 기본 제공되는 윈도우 환경에서 사용하기 편리하며, 압축률과 전송 효율이 더 좋아서 VNC보다 빠르고 부드러운 원격 경험을 제공하는 경우가 많습니다.
반면, VNC는 크로스 플랫폼 호환성이 뛰어나며, 이미 실행 중인 물리적 디스플레이 세션을 공유하는 용도로도 사용될 수 있습니다. xrdp는 기본적으로 새롭고 독립적인 세션을 생성합니다. 따라서 윈도우 클라이언트 환경에서 최적의 성능과 호환성을 원한다면 xrdp가 더 나은 선택이 될 수 있습니다.
📌 추가로 참고할 만한 글
자주 묻는 질문 (FAQ)
Q: xrdp 설치 후 연결은 되는데 검은 화면만 나옵니다. 왜 그런가요 확인하기
A: 주로 리눅스 서버에 적절한 데스크톱 환경(예: GNOME, Xfce)이 설치되지 않았거나, xrdp가 해당 환경을 제대로 로드하지 못할 때 발생합니다. 데스크톱 환경 설치를 확인하고, ~/.xsession 파일 등을 통해 세션을 명시적으로 지정해 보세요. 또한, 오래된 xrdp 버전이나 충돌하는 디스플레이 관리자가 원인일 수도 있습니다.
Q: xrdp 접속 시 “Authentication Required” 오류가 계속 발생합니다 상세 더보기
A: 이 문제는 리눅스 사용자 계정의 비밀번호가 설정되지 않았거나, 사용자 권한 문제, 또는 SELinux(CentOS/RHEL) 정책 문제로 인해 발생할 수 있습니다. 사용자 계정 비밀번호를 다시 설정하고, SELinux가 Enforcing 모드라면 정책을 점검해 보거나 일시적으로 Permissive 모드로 변경하여 테스트해 볼 필요가 있습니다.
Q: 모바일 기기로도 xrdp 접속이 가능한가요 보기
A: 네, 가능합니다. 안드로이드와 iOS 모두 Microsoft에서 제공하는 공식 ‘Microsoft 원격 데스크톱’ 앱을 비롯해 다양한 RDP 클라이언트 앱이 존재합니다. 이 앱들을 사용하여 모바일 기기로도 리눅스 서버에 원격으로 접속할 수 있습니다. 단, 작은 화면에서 GUI를 조작하는 데는 다소 불편함이 있을 수 있습니다.
Q: xrdp 사용 시 보안을 강화할 수 있는 방법이 있나요 확인하기
A: 보안 강화를 위해 다음 조치들을 권장합니다. 기본 포트(3389)를 다른 포트로 변경하고, 접속을 특정 IP 대역에서만 허용하도록 방화벽 규칙을 설정하며, 강력한 암호를 사용해야 합니다. 또한, SSH 터널링을 통해 RDP 트래픽을 암호화하여 전송하는 방법도 매우 효과적인 보안 강화 방법입니다.