✨ 주요 기능: - Proxmox VE 호스트 부팅 시 자동 RDP 연결 - 완전 자동화된 설정 스크립트 - 강화된 입력 검증 및 에러 처리 - 네트워크 연결 테스트 - 자동 백업 및 복구 기능 - 사용자 친화적 컬러 출력 🛠️ 기술 스택: - Bash Shell Script - systemd (자동 로그인) - X Window System + Openbox - FreeRDP3 (RDP 클라이언트) 🔧 주요 구성: - proxmox-auto-rdp-setup.sh: 메인 설치 스크립트 - proxmox_auto_rdp_setup_korean.md: 상세 한글 문서 - README.md: 프로젝트 개요 및 사용법 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
5.6 KiB
5.6 KiB
Proxmox 9.0 자동 RDP 연결 설정 가이드
개요
Proxmox VE 9.0 (Debian 13 기반) 호스트가 부팅될 때 자동으로 Windows VM에 RDP로 풀스크린 연결하는 설정 가이드입니다.
목표: CLI 화면을 보지 않고 부팅 후 바로 RDP 화면이 풀스크린으로 표시
환경 정보
- OS: Proxmox VE 9.0.5 (Debian 13 기반)
- RDP 대상: ysleadersos.com:6642
- 인증정보: doctor-03 / @flejtm301
전체 설정 과정
1단계: 필수 패키지 설치
# X 윈도우 시스템 및 관련 패키지 설치
apt update
apt install -y xorg openbox unclutter freerdp3-x11
# 설치된 패키지 확인
dpkg -l | grep -E "(xorg|openbox|freerdp)"
2단계: 사용자 계정 생성 및 설정
# rdpuser 계정 생성 (이미 존재한다면 건너뛰기)
useradd -m -s /bin/bash rdpuser
passwd rdpuser
# 사용자 홈 디렉토리 권한 설정
chown -R rdpuser:rdpuser /home/rdpuser
3단계: systemd 자동 로그인 설정
# getty@tty1 서비스 override 디렉토리 생성
mkdir -p /etc/systemd/system/getty@tty1.service.d
# override.conf 파일 생성
cat > /etc/systemd/system/getty@tty1.service.d/override.conf << 'EOF'
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin rdpuser --noclear %I $TERM
Type=idle
EOF
# systemd 설정 리로드
systemctl daemon-reload
systemctl restart getty@tty1.service
4단계: 자동 X 시작 설정
# rdpuser의 .bash_profile 생성
cat > /home/rdpuser/.bash_profile << 'EOF'
# tty1에서만 X 자동 시작
if [[ -z $DISPLAY ]] && [[ $(tty) == /dev/tty1 ]]; then
startx
logout
fi
EOF
# 파일 소유권 설정
chown rdpuser:rdpuser /home/rdpuser/.bash_profile
5단계: X 세션 설정 (.xinitrc)
# .xinitrc 파일 생성
cat > /home/rdpuser/.xinitrc << 'EOF'
#!/bin/bash
# 화면 절전 모드 비활성화
xset -dpms
xset s off
xset s noblank
# 마우스 커서 숨기기
unclutter -idle 0.1 -root &
# Openbox 윈도우 매니저 시작
openbox-session &
# 잠시 대기 (X 완전 초기화)
sleep 2
# FreeRDP3를 사용한 직접 RDP 연결 (풀스크린)
xfreerdp3 \
/v:ysleadersos.com:6642 \
/u:doctor-03 \
/p:"@flejtm301" \
+f \
/cert:ignore \
+dynamic-resolution \
/sound:sys:alsa \
+clipboard
# RDP 종료 시 X 세션도 종료
pkill -SIGTERM Xorg
EOF
# 실행 권한 및 소유권 설정
chmod +x /home/rdpuser/.xinitrc
chown rdpuser:rdpuser /home/rdpuser/.xinitrc
6단계: Openbox 설정 (풀스크린 최적화)
# Openbox 설정 디렉토리 생성
mkdir -p /home/rdpuser/.config/openbox
# rc.xml 설정 파일 생성 (윈도우 장식 제거, 풀스크린 강제)
cat > /home/rdpuser/.config/openbox/rc.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<openbox_config xmlns="http://openbox.org/3.4/rc">
<applications>
<application class="*">
<decor>no</decor>
<maximized>yes</maximized>
</application>
</applications>
</openbox_config>
EOF
# 디렉토리 및 파일 소유권 설정
chown -R rdpuser:rdpuser /home/rdpuser/.config
주요 문제 해결 과정
문제 1: 초기 Remmina 사용 시 연결 실패
- 증상: 부팅 후 화면 깜빡임, RDP 연결되지 않음
- 원인: Remmina가 자동 실행 환경에서 불안정
- 해결: Remmina를 FreeRDP3로 교체
문제 2: .bash_profile의 exec startx 문제
- 증상: 로그인/로그아웃 반복 루프
- 원인:
exec startx로 인한 세션 교체 문제 - 해결:
exec startx를startx로 변경하고logout추가
문제 3: FreeRDP3 명령어 문법 오류
- 증상: "Unexpected keyword" 오류
- 해결: 올바른 FreeRDP3 문법 적용
/cert-ignore→/cert:ignore/f→+f/dynamic-resolution→+dynamic-resolution/clipboard→+clipboard
설정 파일 요약
핵심 설정 파일들:
/etc/systemd/system/getty@tty1.service.d/override.conf- 자동 로그인/home/rdpuser/.bash_profile- X 자동 시작/home/rdpuser/.xinitrc- RDP 연결 실행/home/rdpuser/.config/openbox/rc.xml- 풀스크린 최적화
동작 흐름
- 부팅 완료 → systemd가 tty1에서 rdpuser 자동 로그인
- 로그인 → .bash_profile이 tty1에서 startx 실행
- X 시작 → .xinitrc가 실행됨
- Openbox 실행 → 윈도우 매니저 시작
- FreeRDP3 실행 → 풀스크린 RDP 연결
- RDP 종료시 → X 세션도 함께 종료
테스트 및 확인
설정 확인 명령어:
# 자동 로그인 서비스 상태 확인
systemctl status getty@tty1.service
# X 서버 실행 확인
ps aux | grep Xorg
# RDP 연결 테스트 (수동)
su - rdpuser -c "DISPLAY=:0 xfreerdp3 /v:ysleadersos.com:6642 /u:doctor-03 /p:'@flejtm301' +f /cert:ignore"
로그 확인:
# systemd 로그 확인
journalctl -u getty@tty1.service -f
# X 서버 로그 확인
cat /home/rdpuser/.local/share/xorg/Xorg.0.log
최종 결과
설정 완료 후 Proxmox 호스트를 재부팅하면:
- ✅ CLI 화면을 보지 않고 바로 RDP 화면이 표시됨
- ✅ 풀스크린 모드로 Windows VM에 자동 연결
- ✅ 사용자 개입 없이 완전 자동화된 부팅-RDP 연결
주의사항
- 보안: 패스워드가 설정 파일에 평문으로 저장됨 (운영 환경에서는 보안 강화 필요)
- 네트워크: RDP 대상 서버가 접근 가능한 상태여야 함
- 백업: 설정 변경 전 기존 설정 백업 권장
- 권한: 모든 설정 파일의 소유권이 rdpuser로 설정되어야 함
생성일: 2025-08-24 작성자: Claude Code Assistant