- [리눅스 한 학기 살기 #3] Ubuntu 24.04 원격 데스크톱: xrdp 대신 grdctl로 RDP 접속 붙이기2025년 04월 01일 00시 05분 45초에 업로드 된 글입니다.작성자: kugorang
TL;DR — 3줄 핵심 요약
• 문제: 모니터 없이 돌리는 라즈베리파이에 화면을 붙이려면 원격 데스크톱이 필요하다. 예전 방식은 xrdp 패키지를 따로 설치하고 세션을 수동으로 연결해야 했다.
• 기술/원인: Ubuntu 24.04에는 GNOME 원격 데스크톱이 기본 들어 있고, RDP 프로토콜로 화면을 보낸다. Wayland에서도 PipeWire로 화면 프레임을 가져와 RDP로 전송한다. 그래서 xrdp 없이 3389 포트 하나로 Windows·macOS·Linux 클라이언트가 모두 접속한다.
• 해결/인사이트: 재부팅 뒤에도 접속하려면 Desktop Sharing이 아니라 Remote Login을 켜야 한다(로그인 화면까지 원격). 연결이 인증 직후 끊기면 rdp 파일을 export해 use redirection server name:i:1을 넣는 것이 해결책이었다.
24.04에서 달라진 점

xrdp 대신 grdctl 씁시다! - gnome-remote-desktop 기본 포함: xrdp를 설치하지 않아도 된다.
- Wayland 지원: 화면 공유가 PipeWire로 프레임을 넘긴다.
- RDP 암호화: 세션 전체가 TLS로 암호화된다. VNC는 기본적으로 평문이다.
- 두 가지 모드: Desktop Sharing(로그인된 세션 공유)과 Remote Login(로그인 화면부터 원격).
모드에 따라 포트가 바뀐다
- Remote Login만 켜면 3389를 쓴다.
- Desktop Sharing을 함께 켜면 Desktop Sharing이 3390으로 옮겨간다(충돌 방지).
- 서버·재부팅 후 접속이 필요하면 Remote Login을 기준으로 설정한다.
서버 설정: GUI
- GUI가 없으면 먼저 설치한다: sudo apt install ubuntu-desktop 후 재부팅.
- 설정 → 시스템 → 원격 데스크톱 → Remote Login 탭.
- Unlock으로 관리자 인증.
- Remote Login 스위치를 켜고 Login/Password를 직접 정한다.
- 재부팅 후 상태 확인: systemctl status gnome-remote-desktop.
서버 설정: SSH에서 CLI로
grdctl status grdctl rdp set-credentials <아이디> <비밀번호> grdctl rdp disable-view-only # 원격 제어 허용 grdctl rdp enable systemctl --user restart gnome-remote-desktop systemctl --user status gnome-remote-desktop- grdctl은 gnome-remote-desktop 패키지에 들어 있다.
- 사용자 세션 기준으로 동작하므로 SSH 계정과 데스크톱 계정이 같아야 한다.
- 시스템 전역(로그인 화면)은 grdctl --system rdp ...로 설정한다.
- TLS 인증서를 직접 쓰려면 set-tls-cert와 set-tls-key를 쓴다.
클라이언트 접속
- Windows: 원격 데스크톱 연결에 서버IP:3389 입력 → 원격 로그인 ID/암호 → Ubuntu 계정으로 다시 로그인.
- macOS: App Store의 Microsoft Remote Desktop에서 Add PC → 서버IP:3389, 자격 증명 입력.
- Linux: Remmina(remmina-plugin-rdp) 또는 xfreerdp /v:서버IP:3389 /u:아이디 /p:비밀번호
인증은 두 단계다
먼저 RDP 접속용 자격 증명(ID/비밀번호)을 확인하고, 그다음 Ubuntu 사용자 계정의 비밀번호를 입력한다. 처음에 실패하면 대개 첫 번째 단계의 자격 증명이 틀린 것이다.
보안: 포트를 인터넷에 열지 않는다
- 3389는 스캔이 끊이지 않는 포트다. 공유기에 포트포워딩을 만들지 않는다.
- VPN(WireGuard·Tailscale)으로 내부망에 들어간 뒤 RDP를 연결한다.
- VPN이 어려우면 SSH 터널을 쓴다: ssh -L 3389:localhost:3389 사용자@서버 후 localhost:3389로 접속.
- ufw를 쓴다면 신뢰 대역만 허용한다: sudo ufw allow from 192.168.0.0/24 to any port 3389.
- 원격에서 ufw를 켜기 전에 SSH 포트를 먼저 허용한다.
연결이 안 될 때 확인 순서
- 서비스가 도는가: systemctl status gnome-remote-desktop(또는 --user)
- 포트를 듣는가: ss -tlnp | grep 3389
- 방화벽이 막는가: ufw status
- 자격 증명이 맞는가: grdctl status
- 인증 직후 끊기는가: rdp 파일을 export해 use redirection server name:i:1을 넣는다
다섯 번째가 실제로 막혔던 지점이다. 클라이언트가 서버 이름을 다시 확인하려는 과정에서 실패하면, 그 항목을 명시해 우회하면 연결된다. 모니터를 붙이지 않은 기기라면 HDMI 더미 플러그를 찾기보다 이 설정을 먼저 확인하는 편이 빠르다.
자주 묻는 질문 (FAQ)
Q1. xrdp를 지워야 하나요?
A. 24.04에서는 필요 없다. 다만 xrdp가 이미 설치되어 3389를 점유하고 있으면 gnome-remote-desktop이 포트를 열지 못한다. xrdp를 중지하고 gnome-remote-desktop을 쓰는 편이 Wayland 환경에서 문제가 적다.
Q2. Desktop Sharing과 Remote Login 중 무엇을 켜야 하나요?
A. 모니터 없이 상시 접속하려면 Remote Login이다. Desktop Sharing은 현재 로그인된 세션을 공유하므로, 로그아웃 상태나 재부팅 직후에는 접속할 수 없다.
Q3. 접속은 되는데 화면이 검게 나옵니다.
A. 세션 종류나 그래픽 세션이 맞지 않을 때 생긴다. Remote Login으로 로그인 화면까지 확인하고, Wayland와 Xorg 세션 중 어느 쪽에서 서비스가 도는지 로그(journalctl -u gnome-remote-desktop)로 확인한다.
728x90728x90'시스템 & 인프라 > Linux & DevOps' 카테고리의 다른 글
다음글이 없습니다.이전글이 없습니다.댓글