每台服务器 不限流量、DDoS 防护和 IPMI 全部包含。无开通费,无长期合约。 每台服务器均不限流量 查看价格

指南 · 虚拟化

在独立服务器上安装 Proxmox VE

通过一键镜像或 ISO 在独立服务器上安装 Proxmox VE 9,然后配置软件源、ZFS 或 LVM-thin、网络、防火墙与备份。

  • 阅读 9 分钟
  • 更新于
  • FlexDedi 工程团队

本指南推荐配置

Pro 64

  • AMD EPYC 9555P · 64 核
  • 768 GB DDR5-6000 ECC
  • 4 × 3.84 TB NVMe Gen5
  • 2 × 25 Gbps,不限流量

$1,349/月

本页内容

Proxmox VE 能把一台独立服务器变成 KVM 虚拟机和 LXC 容器的宿主机,可通过 Web 界面或命令行进行管理。本指南介绍如何在 FlexDedi 服务器上安装 Proxmox VE,以及在拥有公网 IP 的机器上需要重点关注的配置:软件源、更新、存储、网络、防火墙和备份。

文中命令以基于 Debian 13「Trixie」的 Proxmox VE 9 为准。凡是 Proxmox VE 8(Debian 12「Bookworm」)有所不同的地方,也会一并给出 8.x 的写法。所有命令均以 root 身份在宿主机上执行。

选择安装方式

一键镜像。 Proxmox VE 与 Ubuntu、Debian、AlmaLinux、Rocky Linux 和 Windows Server 一样,都在系统镜像库中。下单或在控制面板中重装系统时选择它,服务器启动后即已装好 Proxmox VE。在创建客户机(虚拟机和容器)之前,请先确认它采用的是哪种存储布局,具体方法见下文的存储部分。

通过 KVM 控制台使用官方 ISO。 如果你想自行选择文件系统、磁盘布局或具体版本,就选这种方式。HTML5 KVM 控制台可以引导任意 ISO,挂载虚拟介质的方法见 IPMI 与 KVM 文档。

第三种方式是先安装 Debian,再添加 Proxmox 软件包。这同样可行,但步骤更多,只有在磁盘布局比较特殊时才值得采用。

通过 ISO 安装

  1. 从 Proxmox 官网下载最新的 Proxmox VE 9 ISO,并将其 SHA-256 校验和与官方公布的值进行比对。
  2. 在控制面板中打开 KVM 控制台,将 ISO 挂载为虚拟介质,然后从该介质重启服务器。
  3. 在目标磁盘界面中打开 Options,选择 zfs (RAID1) 并勾选两块 NVMe 硬盘。在 Pro 64 等配备四块硬盘的服务器上,选择 zfs (RAID10) 即可用上全部四块。
  4. 设置国家、时区和键盘布局,然后设置一个强 root 密码,并填写用于接收告警的电子邮件地址。
  5. 在网络界面中选择承载公网的网卡,并按照控制面板中显示的信息,填写服务器的 IPv4 地址及前缀长度、网关和 DNS 服务器。主机名请使用完全限定域名,例如 pve1.example.com。
  6. 确认摘要信息后开始安装,完成后卸载 ISO 并重启。

然后在浏览器中访问 https://YOUR_SERVER_IP:8006,以 root 身份、选择 Linux PAM 认证域登录。在你替换证书之前,浏览器会对自签名证书发出警告;内置的 ACME 客户端可以申请 Let's Encrypt 证书(Datacenter → ACME,然后在节点的 Certificates 面板中操作)。

切换到无订阅软件源

全新安装的系统会让 APT 指向企业版软件源,而企业版源需要订阅密钥;没有密钥时,apt update 会报授权错误。没有订阅的主机应改用 pve-no-subscription 软件源。Proxmox 建议生产环境使用企业版软件源,因为无订阅源的软件包在发布前经过的测试较少。

在 Proxmox VE 9 上,软件源采用 deb822 的 .sources 格式。在 /etc/apt/sources.list.d/pve-enterprise.sources 的条目中添加 Enabled: no;如果 /etc/apt/sources.list.d/ceph.sources 指向 enterprise.proxmox.com,也做同样的修改。修改后的企业版源文件如下:

text
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: no

然后添加无订阅软件源:

bash
cat > /etc/apt/sources.list.d/proxmox.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

在 Proxmox VE 8 上,软件源是单行格式的 .list 文件:

bash
sed -i 's/^deb/# deb/' /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
  > /etc/apt/sources.list.d/pve-no-subscription.list

如果 /etc/apt/sources.list.d/ceph.list 使用的是企业版地址,也用同样的方法将其注释掉。以上所有修改也可以在 Web 界面中节点的 Updates → Repositories 面板中完成。没有订阅时,登录时还会弹出「No valid subscription」提示。该提示仅供参考,如果通过修改界面文件来隐藏它,每次更新后都会失效。

更新宿主机

bash
apt update
apt full-upgrade
pveversion
reboot   # when a new kernel was installed

更新 Proxmox VE 时,请始终使用 apt full-upgrade(或 apt dist-upgrade),切勿只用 apt upgrade。Proxmox 的新版本经常会新增或替换依赖,不完整的升级可能让宿主机处于不一致的状态。

存储:在 NVMe 上使用 ZFS 还是 LVM-thin

安装程序会生成以下两种布局之一。使用 ZFS 时,系统位于 rpool 存储池中,客户机磁盘存放在 local-zfs 存储中。使用 ext4 或 XFS 时,名为 pve 的卷组中包含一个名为 data 的精简池(thin pool),以 local-lvm 的形式提供。用以下命令查看当前布局:

bash
pvesm status
zpool status   # ZFS installs
lvs pve        # LVM-thin installs
ZFS 镜像LVM-thin
两块 NVMe 硬盘之间的冗余内置(镜像或 RAID10)本身不提供
校验和与自我修复支持不支持
快照与精简配置支持支持
Proxmox 节点间存储复制支持不支持
内存占用ARC 缓存,默认设有上限极少
开销较高(写时复制、校验和)低

在配备两块 NVMe 硬盘的服务器上,ZFS 镜像是理所当然的默认选择。它是 Proxmox 唯一支持的本地软 RAID,还能检测出静默数据损坏,而普通镜像只会把这类损坏原样复制过去。单盘上的 LVM-thin 简单、快速,但没有冗余;而且 Proxmox 不支持将它运行在 Linux mdadm RAID 之上。

从 Proxmox VE 8.1 起,安装程序会把 ZFS ARC 限制为内存的 10%,且最多 16 GiB。在内存为 384 GB 的 Pro 32 上,这一上限就是 16 GiB,其余内存都留给客户机。如需修改,例如改为 32 GiB:

bash
echo "options zfs zfs_arc_max=34359738368" > /etc/modprobe.d/zfs.conf
update-initramfs -u -k all                                 # required when root is on ZFS
echo 34359738368 > /sys/module/zfs/parameters/zfs_arc_max  # apply without a reboot

在四块硬盘的服务器上,除了 RAID10,还可以把系统安装在由两块硬盘组成的镜像上,再用另外两块硬盘为客户机单独组建一个镜像。创建该存储池时,请使用持久化的磁盘 ID,而不是 /dev/nvme 设备名,因为后者在每次启动后可能发生变化:

bash
ls -l /dev/disk/by-id/ | grep nvme
zpool create -o ashift=12 tank mirror /dev/disk/by-id/nvme-DISK_C /dev/disk/by-id/nvme-DISK_D
pvesm add zfspool tank-vm --pool tank --content images,rootdir --sparse 1

网络:公网 IP 与私有 VLAN

安装完成后,/etc/network/interfaces 中会有一个网桥 vmbr0,它在物理端口上承载宿主机的公网 IP。接入 vmbr0 的客户机直接位于公网上,只有当它们拥有网络所接受的公网地址时才能正常工作。服务器自带的那一个 IPv4 地址,通常由客户机通过 NAT 共享;而服务器的 /64 地址块可以提供公网 IPv6,配置方法见 IPv6 网络。

为客户机配置 NAT

创建一个不绑定物理端口的网桥,并将其子网伪装(masquerade)到公网网桥之后。把以下内容追加到 /etc/network/interfaces:

text
auto vmbr1
iface vmbr1 inet static
    address 10.10.10.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
    post-up   iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
    post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1

为客户机启用 Proxmox 防火墙时,这两行 CT --zone 配置可确保连接跟踪正常工作。用 ifreload -a 应用更改,然后为每台客户机分配 10.10.10.0/24 网段内的静态地址,网关设为 10.10.10.1。如需对外发布服务,在同一配置段中添加一对相应的规则,把端口转发到客户机:

text
    post-up   iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8443 -j DNAT --to-destination 10.10.10.20:443
    post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 8443 -j DNAT --to-destination 10.10.10.20:443

如果客户机需要独立的公网 IPv4 地址,可以申请额外的 IPv4。请向技术支持确认这些地址是路由到你的主 IP,还是以直连(on-link)方式分配,因为这决定了客户机是直接接入 vmbr0,还是位于路由网桥之后。

服务器之间的私有 VLAN

免费的内网可以把你在同一机房的 FlexDedi 服务器连接起来,内部流量不计费。集群通信、热迁移、备份和复制都应走内网,完全不经过公网接口。以下示例假设 VLAN 100 位于端口 eno1 上;请根据内网文档替换为实际的网卡和 VLAN ID:

text
auto eno1.100
iface eno1.100 inet manual

auto vmbr2
iface vmbr2 inet static
    address 10.0.0.11/24
    bridge-ports eno1.100
    bridge-stp off
    bridge-fd 0

如果内网以不带标签(untagged)的方式接入第二个端口,就改为把该端口填入 bridge-ports。接入 vmbr2 的客户机可以通过内网访问你的其他服务器;Proxmox 集群的 corosync 通信也应走这个网络,而不是公网。集群对延迟要求很高,因此每个集群都应部署在同一机房内。

防火墙

Proxmox 防火墙分为数据中心、节点和客户机三个层级,默认处于禁用状态。启用之前,请保持一个到宿主机的 SSH 会话,并随时准备好 KVM 控制台,以免操作失误把自己锁在外面。

在拥有公网地址的主机上,有两项默认设置需要特别注意。local_network 别名是根据宿主机自身所在的子网自动检测的,因此在公网 IP 上,它可能包含不受你控制的地址,Proxmox 建议在这类主机上覆盖它。management IP 集合列出了允许访问 Web 界面和 SSH 的地址。一个最简的 /etc/pve/firewall/cluster.fw 如下:

text
[OPTIONS]
enable: 1
policy_in: DROP

[ALIASES]
local_network 10.0.0.0/24 # private VLAN, not the public subnet

[IPSET management]
203.0.113.10 # admin workstation or VPN exit

[RULES]
IN Ping(ACCEPT)
bash
pve-firewall localnet   # shows the local network the firewall uses
pve-firewall status

然后在每台客户机的 Firewall → Options 中启用防火墙,只放行该客户机对外提供服务的端口。Proxmox 防火墙和 FlexDedi 始终开启的 DDoS 防护各司其职:前者决定哪些服务可以被访问,后者在上游过滤流量型攻击。两者缺一不可。

备份到另一台服务器

RAID 和 ZFS 镜像能防范硬盘故障,但防不了虚拟机被误删、升级出错或宿主机被入侵。请备份到另一台机器上。

Proxmox Backup Server(PBS)是最自然的备份目标:它支持虚拟机和容器的增量、去重备份,以及客户端加密、校验任务和快速恢复。在同一机房的另一台服务器上,通过 KVM 控制台用 ISO 安装 PBS,这样备份流量就会走私有 VLAN。Storage 264 可为它提供 264 TB 裸磁盘容量;规模较小的环境用一台 Core 16 就够了。Proxmox 建议数据存储(datastore)使用 SSD;如果使用机械硬盘存储池,通常的折中方案是用镜像的 NVMe 作为存放元数据的特殊设备(special device)。

在 Proxmox VE 中,通过 Datacenter → Storage → Add → Proxmox Backup Server 添加备份服务器,填写它的内网地址、数据存储名称、专用的备份用户以及服务器证书指纹。在 Datacenter → Backup 中设置定时备份任务。在命令行中执行一次性备份:

bash
vzdump 100 --storage pbs1 --mode snapshot

如需异地副本,可以在另一个机房的第二台 PBS 上运行同步任务。内网无法跨机房,因此这份副本会通过 TLS 加密穿越公网;如果不希望异地站点能读取备份内容,请启用客户端加密。流量不限量,所以在地域之间复制备份不会产生任何传输费用。最后,一定要测试恢复:从未恢复过的备份,只是一种假设。

在 FlexDedi 上运行

Pro 32($749/月)非常适合作为第一台 Proxmox 宿主机:32 个核心,12 通道共 384 GB DDR5-6000 ECC 内存,以及可组建 ZFS 镜像的 2 × 3.84 TB NVMe Gen5。Pro 64($1,349/月)核心数翻倍,配备 768 GB 内存、四块可组建 ZFS RAID10 的 NVMe 硬盘和 2 × 25 Gbps 端口。Core 16($299/月)可用于实验环境或运行少量虚拟机。无论选择哪一款,都可以搭配 Storage 264($699/月)作为备份服务器;多节点架构请参阅私有云。

更多指南

你的下一台服务器,几分钟后就能上线。

以 $299/月 部署一台 Core 16,或请我们的工程师为你量身规划服务器集群。

  • 无开通费
  • 不限流量
  • 随时取消