一、先确认环境要求
1. 云服务器必须开启 嵌套虚拟化(Nested Virtualization),否则无法创建虚拟机。
- 不同云厂商操作不同,一般在控制台“实例设置/硬件配置”里开启。
- 检查是否开启:
cat /sys/module/kvm_intel/parameters/nested
s# 或 AMD 平台:cat /sys/module/kvm_amd/parameters/nested- 输出为 Y 或 1 表示已开启。
- 2. 确保系统是 纯净的 Debian 11 (Bullseye),没有安装过其他虚拟化软件。 二、安装步骤
- 配置主机名和 hosts
1. 查看当前主机名:hostname
2. 编辑 /etc/hosts ,确保格式为:
127.0.0.1 localhost
你的公网IP 你的主机名.yourdomain 你的主机名
::1 localhost ip6-localhost ip6-loopback
小步骤1. 在终端输入以下命令,用 nano 编辑器打开文件:nano /etc/hosts

改完之后,

正确修改步骤
1
1. 先获取你的公网 IP
在终端输入:curl -4 ip.sb
记下输出的公网 IP,比如 203.0.113.10 。
2. 修改 /etc/hosts
在 nano 编辑器里,把那一行改成:
你的公网IP ser50063816733245.local ser50063816733245
例如
203.0.113.10 ser50063816733245.local ser50063816733245
3. 保存并退出
- 按 Ctrl+O → 回车确认保存
- 按 Ctrl+X 退出 nano
4. 验证修改
执行:hostname --ip-address
应该输出你刚才填写的公网 IP,而不是 127.0.0.1
————————————————————
你需要在文件末尾添加一行,格式为: 你的公网IP 你的主机名.域名 你的主机名 。
例如,如果你的公网IP是 1.2.3.4 ,主机名是 pve-node ,就添加:
1.2.3.4 pve-node.example.com pve-node
- 编辑 /etc/apt/sources.list.d/pve-install-repo.list 文件
这个文件用来添加Proxmox的软件源。
1. 在终端输入以下命令,创建并打开文件
nano /etc/apt/sources.list.d/pve-install-repo.list
2. 在打开的空文件中,粘贴以下内容(针对Debian 11 Bullseye):
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
嗯,然后接下来就是导入公钥。
- 先导入缺失的 GPG 公钥
在终端执行这两条命令,下载并安装 Proxmox 官方密钥:
wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
chmod 644 /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
- 检查并修正软件源(一定要修正。)
确保你的 /etc/apt/sources.list.d/pve-install-repo.list 文件内容是正确的(针对 Debian 11 Bullseye):
cat /etc/apt/sources.list.d/pve-install-repo.list
如果内容不对,用 nano 重新编辑:nano /etc/apt/sources.list.d/pve-install-repo.list
写入:
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
保存退出( Ctrl+O → 回车 → Ctrl+X )。
- 再次尝试更新
( 不用尝试了,绝对有问题。)
apt update
如果这次没有 GPG 错误,就可以继续安装 PVE 了:
apt install proxmox-ve postfix open-iscsi -y
如果还有问题
如果 apt update 仍然报错,可能是云服务器自带的源有问题,可以先备份并替换默认的 Debian 源:
mv /etc/apt/sources.list /etc/apt/sources.list.bak
nano /etc/apt/sources.list
写入国内 Debian 11 源(如阿里云):
deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb http://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main
deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
保存后再执行 apt update 。

精确表复制粘贴上去的是这种格式。
如果在终端中复制进去不是这种格式,请将文本下载下来。在本地编辑,然后再上传上去。就是图片中这种格式了
。
保存后再执行 apt update
然后注释掉两个仓库。
- 编辑源文件,注释掉 backports
- 找到这两行:
deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib 在前面加上 # 注释掉,变成: deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

保存退出: Ctrl+O → 回车 → Ctrl+X
- 再次更新源apt update
这次应该就不会再报 bullseye-backports 的 404 错误了。
- 继续安装 PVE
如果 apt update 顺利,就可以继续执行安装命令:
apt install proxmox-ve postfix open-iscsi -y
安装完成之后,
在终端输入。pveversion
提示出现版本号,就是安装好了。
输入这个指令
echo -e "\n✅ Proxmox VE 登录信息:\n" && \
IP=$(hostname -I | awk '{print $1}') && \
PORT=$(grep -oP '^\s*listen\s+\K\d+' /etc/pveproxy.cfg 2>/dev/null || echo "8006") && \
echo "管理地址:https://$IP:$PORT" && \
echo -e "\n💡 如果是云服务器,请使用公网 IP 访问,端口默认 8006。\n"
就可以看端口号和地址是多少?
如果IP地址显示内网地址。那就将
呃,图中所圈的地方改成服务器公网IP即可
从你的日志来看,这次连接断开的核心原因是系统在升级过程中移除了 ifupdown 包,而 cloud-init 又依赖它,导致网络管理组件被破坏,最终让你的远程连接(SSH)中断了。
🔍 具体原因分析
1. 依赖冲突导致网络组件被移除
日志中明确提示:
plaintext
dpkg: ifupdown: dependency problems, but removing anyway as you requested:
cloud-init depends on ifupdown.
ifupdown 是 Debian/Ubuntu 系统中管理网络接口的核心工具, cloud-init (云初始化工具)依赖它。当系统升级时, ifupdown 被意外移除,直接导致网络服务中断,你的远程连接也就断开了。
2. 网络服务重启或中断
在升级 perl-base 等关键系统包时,系统可能会重启相关服务。如果你的网络管理服务(如 networking 、 NetworkManager )在这个过程中被重启或配置被破坏,就会导致连接断开。
3. 远程连接的特性
你是通过远程终端(如 SSH)连接到服务器的。一旦服务器端的网络配置或服务出现问题,客户端的连接就会立即中断,表现为“连接断开”。
🛠️ 解决步骤
1. 重新连接服务器
尝试重新通过 SSH 或控制台连接到服务器。如果是云服务器,可以使用云厂商提供的 VNC 控制台直接登录,绕过网络问题。
2. 修复依赖关系
登录后,执行以下命令修复损坏的依赖:
bash
sudo apt --fix-broken install
如果 ifupdown 被移除了,重新安装它:
bash
sudo apt install ifupdown
3. 恢复网络配置
检查并恢复网络接口配置:
bash
sudo systemctl restart networking
或者使用 NetworkManager :
bash
sudo systemctl restart NetworkManager
4. 完成升级
网络恢复后,继续完成未完成的升级:
bash
sudo apt upgrade
5. 预防措施
为了避免下次升级时再次破坏网络,可以锁定 ifupdown 包,防止它被意外移除:
bash
sudo apt-mark hold ifupdown
💡 关键提示
- 下次在执行系统升级前,尤其是在远程服务器上,优先锁定网络相关的核心包(如 ifupdown 、 network-manager ),可以有效避免因依赖问题导致的网络中断。
- 如果服务器是云主机,强烈建议使用云厂商的控制台(VNC)作为备用登录方式,以防 SSH 连接断开后无法操作。
要不要我帮你整理一份服务器升级前的安全检查清单,包含锁定关键包、备份配置、使用控制台登录等步骤,避免下次再遇到类似问题?从你的日志来看,这次连接断开的核心原因是系统在升级过程中移除了 ifupdown 包,而 cloud-init 又依赖它,导致网络管理组件被破坏,最终让你的远程连接(SSH)中断了。
🔍 具体原因分析
1. 依赖冲突导致网络组件被移除
日志中明确提示:
plaintext
dpkg: ifupdown: dependency problems, but removing anyway as you requested:
cloud-init depends on ifupdown.
ifupdown 是 Debian/Ubuntu 系统中管理网络接口的核心工具, cloud-init (云初始化工具)依赖它。当系统升级时, ifupdown 被意外移除,直接导致网络服务中断,你的远程连接也就断开了。
2. 网络服务重启或中断
在升级 perl-base 等关键系统包时,系统可能会重启相关服务。如果你的网络管理服务(如 networking 、 NetworkManager )在这个过程中被重启或配置被破坏,就会导致连接断开。
3. 远程连接的特性
你是通过远程终端(如 SSH)连接到服务器的。一旦服务器端的网络配置或服务出现问题,客户端的连接就会立即中断,表现为“连接断开”。
🛠️ 解决步骤
1. 重新连接服务器
尝试重新通过 SSH 或控制台连接到服务器。如果是云服务器,可以使用云厂商提供的 VNC 控制台直接登录,绕过网络问题。
2. 修复依赖关系
登录后,执行以下命令修复损坏的依赖:
bash
sudo apt –fix-broken install
如果 ifupdown 被移除了,重新安装它:
bash
sudo apt install ifupdown
3. 恢复网络配置
检查并恢复网络接口配置:
bash
sudo systemctl restart networking
或者使用 NetworkManager :
bash
sudo systemctl restart NetworkManager
4. 完成升级
网络恢复后,继续完成未完成的升级:
bash
sudo apt upgrade
5. 预防措施
为了避免下次升级时再次破坏网络,可以锁定 ifupdown 包,防止它被意外移除:
bash
sudo apt-mark hold ifupdown