前言
PVE全称Proxmox Virtual Environment,是由德国Proxmox公司开发的一个基于Debian Linux的开源虚拟化管理平台。它的底层使用KVM实现硬件虚拟化,同时也支持LXC容器技术,意味着用户既可以在上面运行完整的虚拟机,也可以跑轻量级的Linux容器。PVE自带一个Web管理界面,支持多节点集群部署,可以通过一个控制台管理多台物理服务器,还内置了在线迁移、高可用自动漂移、VZDump备份恢复、防火墙等企业级功能。存储方面支持ZFS、Ceph、NFS、iSCSI等多种方案,网络层面支持Linux Bridge、Open vSwitch和VLAN配置。与VMware vSphere相比,PVE完全免费且功能覆盖面广,虽然在企业生态和支持体系上有差距,但对于Homelab玩家、中小企业以及开发测试环境来说,是一个性价比极高的选择,也是目前自建私有云领域最主流的开源虚拟化方案之一。
官网:https://pve.proxmox.com/wiki/Main_Page
下载地址:https://enterprise.proxmox.com/iso
安装步骤
进入安装界面。默认选择图形化安装即可。
按回车确定。
随后进入安装,等待即可。
短暂的等待后进入图形化安装界面,选择同意协议。
点击同意。
选择安装系统的硬盘,这里确认无误后默认即可。
点击下一步。
城市选择美国,时区选择美国。(这里是为了方便,后续可随时更改)
点击下一步。
输入密码和邮箱。
点击下一步。
选择管理网口,按默认即可。
Hostname可按图填写。
IP地址默认会DHCP一个,这里选择了手动指定。
网关和DNS Server默认DHCP即可,这里选择了旁路由地址。
点击下一步。
确认汇总信息,无误后点击安装即可。
等待安装结束。
点击重启即可。
重启完成后,进入系统。
至此完成了所有安装。
控制台访问
按提示在浏览器输入url即可访问控制台。(注意这里的IP是自己设置的IP,端口默认是8006)
https://192.168.8.4:8006/
输入链接后,点击:高级。
点击:继续前往192.168.8.4(不安全)。
至此,即可进入Web控制台。
用户名默认为:root。
密码是前面图形化界面设置的。
其余部分如图所示,点击登录即可。
提示软件源有问题,无需理会,点击确认即可。
切换语言为中文。
如图所示,点击头像,选择语言。
选择中文,点击应用即可。
优化项
前置
如图所示,依次点击pve和shell,以下内容按需复制即可。
换源
Step 1:禁用企业源(装机默认启用,无订阅时 apt update 报 401 的元凶)
mv /etc/apt/sources.list.d/pve-enterprise.sources{,.bak}
Step 2:建立 no-subscription 源
cat > /etc/apt/sources.list.d/pve-no-subscription.sources << 'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
Step 3:核对 Debian 基础源(装机自带,通常无需改;确认存在即可)
cat /etc/apt/sources.list.d/debian.sources
# 应包含 deb.debian.org(trixie + trixie-updates)与 security.debian.org(trixie-security)两段
grep -q 'trixie' /etc/apt/sources.list.d/debian.sources && echo 'OK' || echo '异常:基础源缺失'
Step 4:处理 Ceph 源(存在则检查指向,企业版覆写)
if [ -f /etc/apt/sources.list.d/ceph.sources ]; then
grep -q 'enterprise' /etc/apt/sources.list.d/ceph.sources && echo '发现企业版 Ceph 源,覆写' || echo 'Ceph 源已非企业版,跳过'
fi
cat > /etc/apt/sources.list.d/ceph.sources << 'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
去除登录弹窗
Step 5:创建弹窗补丁脚本
cat > /usr/local/bin/pve-nag-fix.sh << 'SCRIPT'
#!/bin/sh
FILE=/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
[ -f "$FILE" ] || exit 0
grep -q 'No valid subscription' "$FILE" || exit 0
python3 << 'PYEOF'
import re
path = '/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js'
with open(path, 'r', encoding='utf-8') as f:
lines = f.readlines()
changed = False
for i, line in enumerate(lines):
stripped = line.lstrip()
if stripped.startswith('Ext.Msg.show({'):
window = ''.join(lines[i:i+12])
if 'No valid subscription' in window:
lines[i] = line.replace('Ext.Msg.show({', 'void({ //Ext.Msg.show({', 1)
changed = True
if changed:
with open(path, 'w', encoding='utf-8') as f:
f.writelines(lines)
PYEOF
exit 0
SCRIPT
chmod +x /usr/local/bin/pve-nag-fix.sh
⚠️ 嵌套 heredoc 要点:外层用
'SCRIPT'作定界符,内层用'PYEOF',两者都带引号确保内容原样写入,不被 shell 展开。
避免更新系统后被覆盖
Step 6:创建 dpkg 触发钩子
cat > /etc/apt/apt.conf.d/99pve-nag-buster << 'EOF'
DPkg::Post-Invoke { "/usr/local/bin/pve-nag-fix.sh"; };
EOF
Step 7:首次触发补丁 + 验收
# 手动跑一次脚本,给当前版本打补丁(钩子要等下次 apt 操作才触发)
/usr/local/bin/pve-nag-fix.sh
# 全量验收:源健康 + 钩子语法健康 + 补丁生效 + 文件对账
cat /etc/apt/sources.list.d/pve-enterprise.sources.bak > /dev/null && echo '1. 企业源已禁用 ✅'
apt update 2>&1 | grep -qE '401|Err.*enterprise' && echo '2. apt update 异常 🔴' || echo '2. apt update 无 401 ✅'
apt-get check > /dev/null 2>&1 && echo '3. apt 配置语法健康 ✅' || echo '3. apt 配置语法异常 🔴'
[ "$(grep -c 'void({ //Ext.Msg.show' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js)" = "1" ] && echo '4. 弹窗补丁生效 ✅' || echo '4. 补丁未生效 🔴'
ls -la /etc/apt/sources.list.d/ && echo '5. 目录清单(对照附录 A.1)'