인터넷
↓
공인IP (Proxmox 호스트, vmbr0)
↓ iptables DNAT (80, 443)
NPM LXC 컨테이너 (10.0.0.2)
↓ 리버스 프록시
┌─────────────────────────────────────┐
VM1 (10.0.0.10) VM2 (10.0.0.11) VM3 (10.0.0.12)Datacenter → 노드(pve) → local 스토리지 → CT Templates 탭 → Templates 버튼 → Debian/Ubuntu 선택 → Downloadpveam update
pveam available
pveam download local debian-12-standard_12.7-1_amd64.tar.zst
pveam list local항목 | 권장값 |
OS | Debian 12 (권장) 또는 Ubuntu 22.04 |
CPU | 1 core |
RAM | 512MB |
Disk | 8GB |
Network | vmbr0, Static IP |
IPv4/CIDR: 10.0.0.2/24 ← /24 필수!
Gateway: 10.0.0.1ID: root
PW: 컨테이너 생성 시 설정한 비밀번호# Proxmox GUI: 컨테이너 선택 → Console 클릭
# Proxmox 호스트에서:
pct enter 100 # 100은 컨테이너 ID
# SSH:
ssh root@10.0.0.2apt update && apt install docker.io docker-compose -ymkdir ~/npm && cd ~/npm
nano docker-compose.ymlversion: '3'
services:
npm:
image: jc21/nginx-proxy-manager:latest
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencryptdocker-compose up -d
docker ps # 실행 확인URL: http://10.0.0.2:81
Email: admin@example.com
Password: changemenano /etc/network/interfacesauto vmbr0
iface vmbr0 inet static
address 공인IP/24
gateway 게이트웨이IP
bridge-ports eno1
bridge-stp off
bridge-fd 0
# IP 포워딩 활성화
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
# NPM으로 포워딩 (80, 443)
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.0.0.2:80
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 10.0.0.2:443
post-up iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.0.0.2:80
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 10.0.0.2:443
post-down iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j MASQUERADEecho "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
# 네트워크 재시작
ifreload -aiptables -t nat -L -n -v
cat /proc/sys/net/ipv4/ip_forward # 1이면 OK# 저장된 규칙 확인
cat /etc/iptables/rules.v4
# 불필요한 규칙 삭제
iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 잘못된IP:80
# 현재 상태를 파일에 저장 (덮어쓰기)
netfilter-persistent save
# 최종 확인
iptables -t nat -L -n -v | grep 80# DNS 확인
nslookup 도메인명
# 외부 접근 테스트 (다른 기기에서)
curl http://도메인명Datacenter → Storage → local → Content에 "CT Templates" 체크 확인netfilter-persistent save# 저장된 규칙 파일 직접 확인 및 수정
cat /etc/iptables/rules.v4
netfilter-persistent save # 현재 상태로 덮어쓰기# 잘못된 규칙 삭제
iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 잘못된IP:80
# 저장
netfilter-persistent save외부 접속: http(s)://도메인
↓
Proxmox 공인IP (iptables: 80, 443 → 10.0.0.2)
↓
NPM LXC (10.0.0.2) - SSL 관리, 도메인 라우팅
↓
각 VM 서비스들 (10.0.0.x)
NPM 관리자: http://10.0.0.2:81 (내부에서만 접속)