✅ Linux Debain 12 安装PVE 8 并配置网络映射

🧩 适用场景

  • 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 pve

3️⃣ 编辑 hosts 文件

nano /etc/hosts

4️⃣ 改成这样(照抄,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.list

2️⃣ 添加 Proxmox GPG 密钥(防报错)

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg \
-O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

3️⃣ 再次更新 apt

apt update

如果这里没有红色 error ,说明仓库 OK。

4️⃣ 安装 PVE(这一步会比较久)

apt install proxmox-ve postfix open-iscsi chrony -y

5️⃣ 👉 postfix:选 Local only

6️⃣ 删除 Debian 默认内核(避免冲突)

apt remove linux-image-amd64 -y

🟢 第 1 步:配置 正确的网络结构(最关键)

1️⃣ 备份原配置

cp /etc/network/interfaces /etc/network/interfaces.bak

2️⃣ 编辑(把内容里面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 eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 108.163.152.211/26
        gateway 108.163.152.254
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        dns-search dedi.leaseweb.net
        dns-nameservers 23.19.53.53 23.19.52.52

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 ACCEPT
````
又或者可以下面这样

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE
iptables -A FORWARD -i vmbr1 -o vmbr0 -j ACCEPT
iptables -A FORWARD -i vmbr0 -o vmbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT


2️⃣ 安装规则持久化工具(如果没装)

apt update
apt install iptables-persistent -y


3️⃣ 保存当前规则并重启

iptables-save > /etc/iptables/rules.v4
reboot


4️⃣ 验证保存成功,重启机器后执行:

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.list


2️⃣ 添加免费源(如果你之前没加过)

echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \

/etc/apt/sources.list.d/pve-no-subscription.list

3️⃣ 更新一次

apt update


4️⃣ 去除 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 ACCEPT

3️⃣保存规则

iptables-save > /etc/iptables.rules


4️⃣ 永久保存端口映射规则(防止重启失效)

nano /etc/network/interfaces


🔹文件最底部添加这一行(如果没有的话):

pre-up iptables-restore < /etc/iptables.rules


✅ 保存退出:

Ctrl + O(保存)再 Enter
Ctrl + X(退出)

1️⃣ 检查规则是否已生效

运行:

iptables -t nat -L -n --line-numbers

2️⃣ 你应该看到类似:

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25701 to:192.168.100.10:3389


🎉 表示完全正确


----------

删除NAT规则

1、先带行号查看

iptables -t nat -L PREROUTING --line-numbers -n -v

2、按行号删除,假设是第 2 条:

iptables -t nat -D PREROUTING 2