pve9-repo-fix/RDP/proxmox_auto_rdp_setup_korean.md
thug0bin c6919abf1c Add RDP Toggle API with venv support
RDP 관련 파일들을 RDP 폴더로 정리하고 API 시스템 추가

주요 변경사항:
- FastAPI 기반 RDP/Shell 모드 전환 API 서버 추가
- venv 환경을 사용하는 자동 설치 스크립트
- requirements.txt로 패키지 의존성 관리
- systemd 서비스로 자동 시작 설정
- CORS 지원으로 외부 프론트엔드 연동 가능
- 실시간 상태 모니터링 API
- 웹 기반 컨트롤 패널 포함

파일 구성:
- rdp-toggle-api.py: FastAPI REST API 서버
- install-rdp-api.sh: venv 환경 자동 설치
- requirements.txt: Python 패키지 의존성
- rdp-toggle-web.html: 웹 컨트롤 패널
- README.md: 사용 가이드

API 기능:
- GET /status: 현재 모드 확인
- POST /toggle: RDP/Shell 모드 전환
- GET /config: 설정 확인
- PUT /config: 설정 업데이트

리액트 프론트엔드에서 토글로 화면 모드 제어 가능

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:14:41 +09:00

212 lines
5.6 KiB
Markdown

# 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단계: 필수 패키지 설치
```bash
# X 윈도우 시스템 및 관련 패키지 설치
apt update
apt install -y xorg openbox unclutter freerdp3-x11
# 설치된 패키지 확인
dpkg -l | grep -E "(xorg|openbox|freerdp)"
```
### 2단계: 사용자 계정 생성 및 설정
```bash
# rdpuser 계정 생성 (이미 존재한다면 건너뛰기)
useradd -m -s /bin/bash rdpuser
passwd rdpuser
# 사용자 홈 디렉토리 권한 설정
chown -R rdpuser:rdpuser /home/rdpuser
```
### 3단계: systemd 자동 로그인 설정
```bash
# 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 시작 설정
```bash
# 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)
```bash
# .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 설정 (풀스크린 최적화)
```bash
# 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`
## 설정 파일 요약
### 핵심 설정 파일들:
1. `/etc/systemd/system/getty@tty1.service.d/override.conf` - 자동 로그인
2. `/home/rdpuser/.bash_profile` - X 자동 시작
3. `/home/rdpuser/.xinitrc` - RDP 연결 실행
4. `/home/rdpuser/.config/openbox/rc.xml` - 풀스크린 최적화
## 동작 흐름
1. **부팅 완료** → systemd가 tty1에서 rdpuser 자동 로그인
2. **로그인** → .bash_profile이 tty1에서 startx 실행
3. **X 시작** → .xinitrc가 실행됨
4. **Openbox 실행** → 윈도우 매니저 시작
5. **FreeRDP3 실행** → 풀스크린 RDP 연결
6. **RDP 종료시** → X 세션도 함께 종료
## 테스트 및 확인
### 설정 확인 명령어:
```bash
# 자동 로그인 서비스 상태 확인
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"
```
### 로그 확인:
```bash
# systemd 로그 확인
journalctl -u getty@tty1.service -f
# X 서버 로그 확인
cat /home/rdpuser/.local/share/xorg/Xorg.0.log
```
## 최종 결과
설정 완료 후 Proxmox 호스트를 재부팅하면:
- ✅ CLI 화면을 보지 않고 바로 RDP 화면이 표시됨
- ✅ 풀스크린 모드로 Windows VM에 자동 연결
- ✅ 사용자 개입 없이 완전 자동화된 부팅-RDP 연결
## 주의사항
1. **보안**: 패스워드가 설정 파일에 평문으로 저장됨 (운영 환경에서는 보안 강화 필요)
2. **네트워크**: RDP 대상 서버가 접근 가능한 상태여야 함
3. **백업**: 설정 변경 전 기존 설정 백업 권장
4. **권한**: 모든 설정 파일의 소유권이 rdpuser로 설정되어야 함
---
*생성일: 2025-08-24*
*작성자: Claude Code Assistant*