Proxmox는 자체적인 보안 메커니즘과 티켓 기반의 pveproxy 를 거치도록 QEMU VNC 소켓을 격리해 둡니다. 기본적으로 로컬호스트(127.0.0.1)에만 바인딩되거나 외부 다이렉트 접근을 엄격하게 차단하기 때문에, 현재 직접 구현하신 중계 서버 아키텍처와 충돌이 발생했을 확률이 매우 높습니다. Proxmox의 복잡한 래퍼(Wrapper)를 걷어내고, 터미널(SSH) 접속만으로 순정 KVM/QEMU 환경을 구축하여 완벽한 제어권을 확보하는 전체 스크립트를 제공해 드립니다. 호스트 OS 및 생성할 VM은 주로 다루시는 Arch Linux와 FreeBSD를 기준으로 구성했습니다. 아래 명령어를 SSH 터미널에 순차적으로 입력하여 복사/붙여넣기 하시면 패키지 설치부터 VM 생성까지 한 번에 완료됩니다. 1. KVM 및 필수 패키지 설치, 데몬 구동 (Arch Linux 호스트 기준) Bash # 1. KVM, QEMU, libvirt 및 네트워크 관리를 위한 필수 패키지 설치 sudo pacman -Syu --noconfirm qemu-full libvirt virt-install dnsmasq bridge-utils vde2 # 2. libvirtd 서비스 활성화 및 시작 sudo systemctl enable --now libvirtd # 3. 기본 NAT 네트워크(virbr0) 활성화 및 자동 시작 설정 sudo virsh net-start default sudo virsh net-autostart default # 4. 사용자 계정을 libvirt 그룹에 추가 (sudo 없이 virsh 명령 사용을 위함) sudo usermod -aG libvirt $(whoami) # 5. ISO 파일 및 VM 디스크 이미지가 저장될 디렉토리 소유권 조정 sudo chown -R $(whoami):libvirt /var/lib/libvirt/images sudo chmod -R 775 /var/lib/libvirt/images (그룹 권한 적용을 위해 SSH 세션을 닫고 다시 로그인해 주십시오.) 2. ISO 이미지 다운로드 Bash cd /var/lib/libvirt/images # Arch Linux 최신 ISO 다운로드 wget -O archlinux.iso https://mirrors.kernel.org/archlinux/iso/latest/archlinux-x86_64.iso # FreeBSD 14.1-RELEASE ISO 다운로드 wget -O freebsd.iso https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.1/FreeBSD-14.1-RELEASE-amd64-disc1.iso 3. Linux (Arch Linux) VM 생성 스크립트 --graphics vnc,listen=0.0.0.0 옵션을 통해 VNC 포트를 외부망으로 개방합니다. 이 포트에 앞서 만드신 server.js 릴레이를 붙이시면 Proxmox의 방해 없이 다이렉트로 화면이 출력됩니다. Bash virt-install \ --name arch-vm \ --os-variant archlinux \ --vcpus 2 \ --memory 2048 \ --disk size=20,format=qcow2,path=/var/lib/libvirt/images/arch-vm.qcow2 \ --cdrom /var/lib/libvirt/images/archlinux.iso \ --network network=default,model=virtio \ --graphics vnc,listen=0.0.0.0,password=12345678 \ --video virtio \ --noautoconsole 4. FreeBSD VM 생성 스크립트 FreeBSD의 특성에 맞게 디스크 버스를 virtio 로 지정하여 I/O 성능을 최적화한 스크립트입니다. Bash virt-install \ --name freebsd-vm \ --os-variant freebsd14.0 \ --vcpus 2 \ --memory 2048 \ --disk size=20,format=qcow2,bus=virtio,path=/var/lib/libvirt/images/freebsd-vm.qcow2 \ --cdrom /var/lib/libvirt/images/freebsd.iso \ --network network=default,model=virtio \ --graphics vnc,listen=0.0.0.0,password=12345678 \ --video virtio \ --noautoconsole 5. 생성된 VM 관리 및 VNC 포트 확인 방법 VM 생성이 완료되면 아래 명령어를 통해 할당된 VNC 포트를 즉시 확인할 수 있습니다. Bash # 실행 중인 VM 목록 확인 virsh list # 할당된 VNC 포트 확인 (예: 127.0.0.1:5900 -> 0.0.0.0:5900) virsh vncdisplay arch-vm virsh vncdisplay freebsd-vm 출력된 포트(예: :0 은 5900번, :1 은 5901번 포트를 의미)를 대상으로 선생님의 중계 서버를 연결하시면 됩니다. VNC 암호는 스크립트에 기재된 12345678 로 고정되어 있으니 터널링 설정 시 이 값을 그대로 넘겨주시면 됩니다.