PVE安装
Proxmox VE(简称 PVE)是目前家用 AIO 首选的虚拟化平台,性能稳定、操作简单、资源占用低,也是整套服务的底层地基。本篇从零开始,手把手教大家完成镜像制作、系统安装、基础初始化、国内源替换与安全优化,为后续虚拟机部署打好基础。
1. 准备工作
系统环境
- PVE 9.x 官方镜像:官网下载最新 ISO(当前稳定版 9.2,基于 Debian13)。
- 启动盘制作工具:BalenaEtcher。
制作启动 U 盘
- 插入 U 盘到电脑,备份所有数据(制作会全盘清空)。
- 打开 balenaEtcher,左侧选镜像:proxmox-ve_9.2-1.iso;中间选对应 U 盘;右侧点击现在烧录,即可烧录 PVE 9.x ISO 镜像到 U 盘。
- 点击「开始」,确认警告后等待 5-10 分钟,写入完成后安全弹出 U 盘。
主板 BIOS 设置
- 插入 PVE 启动 U 盘到主机,连接显示器和键盘,开机按快捷键(常见F12/F11/DEL/ESC)进 BIOS。
- 必改 3 项:(不同的设备界面设置有所不同请自行搜索)。
- 关闭Secure Boot(安全启动)(否则拦截 PVE 引导)。
- 开启CPU 虚拟化(Intel VT-x/AMD-V)(虚拟机必备)。
- 启动模式设为 UEFI 优先,USB 启动项设为第一。
- 按 F10 保存设置,主机重启后自动进入 PVE 安装界面。
2. PVE 系统安装
2.1 引导与协议
重启后进入 PVE 菜单,选择 Install Proxmox VE (Graphical)。

同意用户许可协议,点击「Next」。

2.2 磁盘分区
「Target Harddisk」选择安装 PVE 的本地 SSD(别选 U 盘!),点击「Options」,文件系统默认EXT4(家用稳定),自动分区(系统区 + 数据区),新手直接点「Next」。

2.3 区域与账户设置
国家选China,时区选Asia/Shanghai,键盘布局默认US English。

设置 root 密码(大小写 + 数字,牢记!),邮箱随意填(格式正确即可,用于告警通知)。

2.4 网络配置
- 「Management Interface」选有线网卡(别选无线,PVE 不兼容)。
- 主机名:自定义(如 pve-aio)。
- IP 地址:设静态 IP(如 192.168.31.200/24,和路由器同网段)。
- 网关:路由器 IP(如 192.168.31.1)。
- DNS:填公共 DNS(223.5.5.5 或 114.114.114.114)。
- 下方 Pin network interface names 默认勾选。

2.5 开始安装
核对所有配置,点击「Install」开始安装,取消勾选 Automatically reboot after successful installation,为了防止安装完自动重启。

等待进度条走完(约 10 分钟,期间别断电)。

安装完成后,拔出 U 盘,点击「Reboot」重启主机。
注意!记住上面的网址 https://192.168.31.200:8006 后续 Web 端要用,这里不要动,等待进入系统。

3. PVE 初始登录与基础优化
3.1 网页后台登录
重启后显示器显示 PVE 地址:https:// 静态 IP:8006(必须 https,端口 8006),另一台电脑连接同一网段网络,浏览器输入地址,回车 → 点击高级。


在登录页可切换中文界面,然后使用账号:root,密码:为安装时设置的密码,登录。

OK,登录成功。

登录后点击左侧「数据中心」——「pve」——「Shell」,后续使用命令窗口操作或者使用远程工具 SSH 连接。

3.2 界面显示色彩优化
# 先备份文件,便于修改错误后用于恢复
cp ~/.bashrc ~/.bashrc.bak.$(date +%Y%m%d)修改 .bashrc 文件,下面是修改后的完整的 .bashrc 内容,照着修改即可,或者将下面所有的内容复制后替换原内容。
# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 is set in /etc/profile, and the default umask is defined
# in /etc/login.defs. You should not need this unless you want different
# defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# 如果您希望 `ls` 命令显示颜色,可以取消注释以下几行。
export LS_OPTIONS='--color=auto'
eval "$(dircolors)"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# -i 参数作用:删除 / 覆盖文件前弹出确认提示,输入 y 才执行,输入 n 取消。
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
# 增加如下代码,兼容256色完整渲染
export TERM=xterm-256color
# 彩色提示符(绿色用户名、蓝色路径,和Moba一样)
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '记得最后 source ~/.bashrc 更新一下 .bashrc,效果图如下。

3.3 解决「无有效订阅」登录弹窗

# 先备份文件,便于修改错误后用于恢复,proxmoxlib.js.bak.20260620_111245
cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak.$(date +%Y%m%d_%H%M%S)直接在 PVE shell/SSH 运行 命令即可:
# 查看要修改的文件内容(先执行这个)
grep -n "res.data.status.toLowerCase() !== 'active'" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# 正常情况会有如下输出显示(不带开头#) :
# 614: res.data.status.toLowerCase() !== 'active'
# 20806: res.data.status.toLowerCase() !== 'active'# 自动查找行号并替换(核心命令)
line_num=$(grep -n "res.data.status.toLowerCase() !== 'active'" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js | head -1 | cut -d: -f1)
if [ -n "$line_num" ]; then
sed -i "${line_num}s/!==/===/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
echo "修改成功,行号: $line_num"
else
echo "错误:未找到目标代码行,请检查文件版本"
fi
# 重启 PVE Web 服务
systemctl restart pveproxy执行重启 PVE Web 服务命令前会出现如下提示,即为修改成功。
修改成功,行号: 614如果需要还原,这个方法不会破坏任何功能,另外如果您日后仍想完全还原到官方原始状态。
# 方法一:用之前备份的文件还原
cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# 方法二:如果没有备份,重新安装原始包
apt install --reinstall proxmox-widget-toolkit -y
# 重启服务
systemctl restart pveproxy升级影响:日后通过 apt upgrade 升级 proxmox-widget-toolkit 包时,修改会被官方文件覆盖,弹窗会恢复。届时重新执行上述“⚠️处理此服务器无有效订阅”命令即可。
3.4 替换源为国内源
查看编辑系统源文件,先查询一下有哪些文件:
ls -l /etc/apt/sources.list.d/原版安装之后应该只有如下几个文件:
total 12
-rw-r--r-- 1 root root 163 May 21 19:32 ceph.sources
-rw-r--r-- 1 root root 365 May 21 19:32 debian.sources
-rw-r--r-- 1 root root 160 May 21 19:20 pve-enterprise.sources处理 ceph.sources(家用无需 Ceph),备份再删除:
cp /etc/apt/sources.list.d/ceph.sources /etc/apt/sources.list.d/ceph.sources.bak
rm -f /etc/apt/sources.list.d/ceph.sourcesDebian 13 软件源 debian.sources,先备份后修改:
cp /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/debian.sources.bak修改为国内源,下面列出两个镜像源,二选一执行对应的命令块即可。
1). 使用清华大学源(TUNA)
cat > /etc/apt/sources.list.d/debian.sources << 'EOF'
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF2). 使用中科大源(USTC)
cat > /etc/apt/sources.list.d/debian.sources << 'EOF'
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://mirrors.ustc.edu.cn/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF处理企业源:备份 pve-enterprise.sources 后修改为国内源,然后禁用它。
cp /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/pve-enterprise.sources.bak修改内容:替换 URIs 地址和 Components 名称。
sed -i 's|https://enterprise.proxmox.com/debian/pve|https://mirrors.ustc.edu.cn/proxmox/debian/pve|g' /etc/apt/sources.list.d/pve-enterprise.sources
sed -i 's/Components: pve-enterprise/Components: pve-no-subscription/g' /etc/apt/sources.list.d/pve-enterprise.sources采用标准禁用方式(不要删除原文件):重命名禁用,保留原始企业源配置,方便以后恢复订阅。
mv /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/pve-enterprise.sources.disabled新建并写入配置文件 pve-no-subscription.sources,下面列出两个镜像源,二选一执行对应的命令块即可。
1). 使用清华大学源(TUNA)
cat > /etc/apt/sources.list.d/pve-no-subscription.sources << 'EOF'
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF2). 使用中科大源(USTC)
cat > /etc/apt/sources.list.d/pve-no-subscription.sources << 'EOF'
Types: deb
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF验证配置:文件创建后,执行以下命令检查内容是否正确,然后更新软件源。查看创建的文件内容:
cat /etc/apt/sources.list.d/pve-no-subscription.sources最后更新配置信息并重启 PVE 主机:
update-grub
update-initramfs -u -k all
reboot更新软件源列表:
apt update如果 apt update 输出中没有报错,说明 PVE 免费源配置成功。你选择哪个镜像都可以,两者在国内都非常快。
如果进度一直卡在 0%,那么你应该查看 DNS 和网关(gateway),确认外网是否通畅。
更新源并重新开始升级:
apt update
apt dist-upgrade -y3.5 DNS 配置
PVE 的系统网络配置主要在/etc/network/interfaces文件中。我们需要将DNS配置固化到你的管理网桥vmbr0上。
# 修改vmbr0的配置段,在末尾添加dns-nameservers行:
auto vmbr0
iface vmbr0 inet static
address 192.168.31.200/24
gateway 192.168.31.1
bridge-ports enp1s0
bridge-stp off
bridge-fd 0
dns-nameservers 223.5.5.5 114.114.114.114 # 添加这一行
# 重启网络服务使配置生效:
systemctl restart networking
# 验证DNS是否已永久配置:
cat /etc/resolv.conf参考资料,内容转载整合来自以下资料