🧩 适用场景
- Linux debian 12
- 1 个公网 IPv4
- 虚拟机自动获取内网 IP
- 宿主机做 NAT 出口
用途:学习 / 测试 / 生产均可
🟢 安装前准备(必须做)
1️⃣ 确认系统是 Debian 12
cat /etc/os-release你应该看到类似:
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"2️⃣ 设置正确主机名(很关键)
PVE 强烈要求 主机名能被解析,否则会出各种奇怪问题。
设置一个主机名(示例:pve)
hostnamectl set-hostname pve3️⃣ 编辑 hosts 文件
nano /etc/hosts4️⃣ 改成这样(照抄,IP 用你自己的):
127.0.0.1 localhost
103.254.63.80 pve
::1 localhost ip6-localhost ip6-loopback这一条非常重要,90% 出问题都在这里
保存退出:Ctrl + O → 回车 → Ctrl + X
5️⃣ 更新系统(必须)
apt update && apt full-upgrade -y
reboot重启后重新 SSH 进来。
✅ 正式开始安装 PVE(核心步骤)
1️⃣ 添加 Proxmox 官方仓库
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
> /etc/apt/sources.list.d/pve-install-repo.list2️⃣ 添加 Proxmox GPG 密钥(防报错)
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg \
-O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg3️⃣ 再次更新 apt
apt update如果这里没有红色 error ,说明仓库 OK。
4️⃣ 安装 PVE(这一步会比较久)
apt install proxmox-ve postfix open-iscsi chrony -y5️⃣ 中途会问你 postfix
- 选择:
Internet Site - System mail name:
默认回车即可。或者随便填一个,例如:pve.local
🟢 第 1 步:配置 正确的网络结构(最关键)
1️⃣ 备份原配置
cp /etc/network/interfaces /etc/network/interfaces.bak2️⃣ 编辑(把内容里面IP、网关、网卡信息记录后,然后全部清空)
nano /etc/network/interfaces示例:
- address 91.134.241.223/32
- gateway 91.134.240.1
- 网卡:ens3 或者 eth0
📌 复制以下整份内容粘贴:(把IP、网关和网卡替换以下对应位置)
auto lo
iface lo inet loopback
iface eth0 inet manual
# ===== 公网桥 vmbr0(必须存在)=====
auto vmbr0
iface vmbr0 inet static
address 5.175.220.71/24
gateway 5.175.220.1
bridge-ports eth0
bridge-stp off
bridge-fd 0
dns-nameservers 8.8.8.8 1.1.1.1
# ===== 内网桥 vmbr1(给虚拟机)=====
auto vmbr1
iface vmbr1 inet static
address 192.168.100.1/24
bridge-ports none
bridge-stp off
bridge-fd 0保存退出:
Ctrl + O → 回车
Ctrl + X
3️⃣ 应用网络(最稳妥)
reboot✅ 检查点 A(必须通过)
重连 SSH 后:
ip a | grep vmbr📌 你应该看到:
- vmbr0 → 5.175.220.71
- vmbr1 → 192.168.100.1
🟢 第 2 步:开启 IPv4 转发(一次即可)
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p📌 验证:
sysctl net.ipv4.ip_forward🟢 第 3 步:配置 NAT(内网 → 公网)
1️⃣ 直接执行规则
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE
iptables -A FORWARD -s 192.168.100.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.100.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT2️⃣ 安装规则持久化工具(如果没装)
apt update
apt install iptables-persistent -y3️⃣ 保存当前规则并重启
iptables-save > /etc/iptables/rules.v4
reboot4️⃣ 验证保存成功,重启机器后执行:
iptables -t nat -L -n -v能看到最后一行0 0 MASQUERADE 0 -- * vmbr0 192.168.100.0/24 0.0.0.0/0,表示保存成功。
🟢 第 4 步:安装 DHCP(虚拟机自动拿 IP)
apt install dnsmasq -y⚠️ 配置 DHCP:
nano /etc/dnsmasq.d/vmbr1.conf📌 写入:
interface=vmbr1
bind-interfaces
dhcp-range=192.168.100.50,192.168.100.200,12h
dhcp-option=3,192.168.100.1
dhcp-option=6,8.8.8.8,1.1.1.1📌 启动:
systemctl restart dnsmasq
systemctl enable dnsmasq✅ 检查点 B(宿主机)
- ping 8.8.8.8
必须能通!
🟢 第 5 步:访问 PVE 管理界面
🎉 在浏览器打开:
https://103.254.63.80:8006🌐 登录信息:
用户:root
密码:服务器的 root 密码
🟢 第 6 步:去除「企业订阅」弹窗
1️⃣ 禁用企业源(官方付费源)
sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/pve-enterprise.list2️⃣ 添加免费源(如果你之前没加过)
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
> /etc/apt/sources.list.d/pve-no-subscription.list3️⃣ 更新一次
apt update4️⃣ 去除 WebUI 弹窗(前端)
sed -i.bak "s/data.status !== 'Active'/false/g" \
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js🔹 重启 Web 服务:
systemctl restart pveproxy✅ 刷新网页后,订阅弹窗消失
🟢 第 7 步:创建虚拟机(PVE 面板)
- Network → Bridge:
vmbr1 - Model:
VirtIO - VM 内网卡设置为 DHCP
✅ 检查点 C(虚拟机内)
ip a
ip route
ping 192.168.100.1
ping 8.8.8.8全部能通 = 成功 🎉
🟢 第 8 步(可选):端口映射
1️⃣ 虚拟机(Windows-示例):
- 192.168.100.10
- 你要映射:公网 25701 → 虚拟机 3389
2️⃣ 添加端口映射(宿主机执行)
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 25701 -j DNAT --to 192.168.100.10:3389
iptables -A FORWARD -p tcp -d 192.168.100.10 --dport 3389 -j ACCEPT3️⃣保存规则
iptables-save > /etc/iptables.rules4️⃣ 永久保存端口映射规则(防止重启失效)
nano /etc/network/interfaces🔹文件最底部添加这一行(如果没有的话):
pre-up iptables-restore < /etc/iptables.rules✅ 保存退出:
Ctrl + O(保存)再 Enter
Ctrl + X(退出)
1️⃣ 检查规则是否已生效
运行:
iptables -t nat -L -n --line-numbers2️⃣ 你应该看到类似:
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25701 to:192.168.100.10:3389🎉 表示完全正确