物理服务器虚拟化:一台物理机变多台 VPS 完整教程

UID:3 一级用户组

买一台服务器,自己做成多个 VPS,资源自己掌控,想分几个分几个

一、这样做划算吗?先算笔账

很多人在问:“自己买服务器做 VPS 卖,能赚钱吗?” 答案是:用对方法,成本比从云厂商买低 40%-60%

5 年成本对比(以 64G/8 核配置为例)

方案 5 年总成本 说明
买物理服务器自建 约 1.2 万元 硬件一次性投入 + 电费 + 带宽
租用同等性能云 VPS × 8 台 约 3-5 万元 每月付租金

适合自己做的场景

  • 手头有闲置的高配电脑/服务器

  • 需要完全控制数据(私有云)

  • 想学习虚拟化技术

  • 做开发测试环境,需要随时创建/销毁虚拟机

不建议自己做的场景

  • 只有 1-2 个小网站 → 直接买现成 VPS 更省事

  • 没有固定公网 IP → 很难让外部访问

二、准备工作:硬件要求和选购指南

2.1 服务器硬件要求

把物理机变成多台 VPS,关键是 CPU 必须支持虚拟化

硬件 最低要求 推荐配置(8 台 VPS) 说明
CPU 4 核 + VT-x/AMD-V 16-32 核(如 Intel Xeon) 必须开启虚拟化指令集
内存 16GB ECC 64-128GB ECC 每台 VPS 预留 4-8GB
硬盘 256GB SSD 1-2TB NVMe SSD + RAID 10 I/O 影响虚拟机响应速度
网络 千兆网卡 双千兆/万兆网卡 建议双网卡做冗余
主板 普通主板 服务器主板 ECC 内存需要服务器主板支持

选购建议

  • 预算有限:去闲鱼淘二手服务器,比如 Dell R720、R730(约 2000-4000 元)

  • 正经使用:买 Dell PowerEdge、HPE ProLiant、浪潮等品牌服务器

  • 练手学习:用家里的旧电脑就行,只要 CPU 支持虚拟化

2.2 检查你的 CPU 是否支持虚拟化

在 Linux 下执行:

bash

egrep -c '(svm|vmx)' /proc/cpuinfo 
  • 输出 大于 0 → 支持虚拟化

  • 输出 0 → 不支持,需要换 CPU

在 Windows 下:打开任务管理器 → 性能 → CPU,看"虚拟化"是否显示"已启用"。

2.3 到底选哪种虚拟化方案?

方案 难度 性能 管理界面 适合谁
Proxmox VE :star::star: :white_check_mark: Web 界面 强烈推荐,最适合新手
KVM 命令行 :star::star::star::star: 极高 :cross_mark: 熟悉 Linux 的老手
VMware ESXi :star::star::star: :white_check_mark: vSphere 愿意折腾、想学企业技术
VirtualBox :star: :white_check_mark: 图形界面 在 Windows 上练手,不适合生产

新手首选 Proxmox VE:基于 Debian + KVM,装完就能用浏览器管理,创建 VPS 点几下鼠标就行。

三、方案一:新手推荐 ------ Proxmox VE(Web 界面管理)

3.1 下载和安装 Proxmox VE

第一步:下载 ISO

去官网下载 Proxmox VE ISO 镜像:https://www.proxmox.com/downloads

第二步:制作启动盘并安装

  1. 用 Rufus(Windows)或 dd 命令(Linux/Mac)把 ISO 写入 U 盘

  2. 服务器从 U 盘启动,进入安装界面

  3. 按提示选择:硬盘、国家、时区、密码、邮箱

  4. 关键步骤:配置网络时,记住系统显示的访问地址,例如 https://192.168.1.100:8006

第三步:登录 Web 管理面板

安装完成后,在浏览器输入 https://服务器的IP:8006,用刚才设置的 root 密码登录。

3.2 上传系统镜像(ISO)

在创建 VPS 之前,先把要安装的操作系统 ISO 文件传上去。

  1. 左侧菜单点击 local (pve)ISO Images

  2. 点击 Upload 按钮

  3. 选择你的 ISO 文件(Ubuntu、Debian、CentOS、Windows 等)

  4. 等待上传完成

如果没有 ISO 文件:可以在创建虚拟机时选择"从网络下载",填入 ISO 直链。

3.3 创建第一台 VPS(虚拟机)

登录 Proxmox Web 界面后:

  1. 点击右上角 Create VM

  2. General:填写 VM ID(自动生成)和名称(如 vps-web-01

  3. OS:选择你上传的 ISO 镜像,操作系统类型选 Linux

  4. System:保持默认(BIOS 选 SeaBIOS)

  5. Disks:硬盘大小,建议 20-50GB,存储选 local-lvm

  6. CPU:核心数,每台 VPS 建议 2-4 核

  7. Memory:内存,建议 2-4GB(最低 1GB)

  8. Network:网卡模型选 VirtIO(性能最好),防火墙暂时不开

  9. 确认信息,点击 Finish

创建完成后,在左侧列表会看到新 VPS,点击它进入管理页面。

3.4 启动 VPS 并安装系统

  1. 选中 VPS,点击右上角 Start

  2. 启动后,点击 Console 进入 VNC 控制台

  3. 按照正常的系统安装流程操作

  4. 安装完成后,VPS 就做好了

3.5 配置网络:让 VPS 能被外网访问

这是最关键的一步------让你的 VPS 能被互联网访问。

方案 A:桥接模式(推荐)

VPS 直接获得和宿主机同网段的 IP,就像一台独立服务器。

配置步骤:

  1. 在 Proxmox 节点上,编辑 /etc/network/interfaces

  2. 确保有类似这样的配置:

text

auto vmbr0 iface vmbr0 inet static     address 你的公网IP     netmask 255.255.255.0     gateway 你的网关     bridge_ports eno1     bridge_stp off     bridge_fd 0 
  1. 创建 VPS 时,Network 选择 vmbr0

  2. VPS 内部配置同网段的 IP 地址

方案 B:NAT 模式(没有多余公网 IP 时用)

如果只有一个公网 IP,需要做端口转发。VPS 使用内网 IP(如 10.0.0.x),宿主机把端口映射过去。

例如:把宿主机的 10022 端口转发到 VPS 的 22 端口(SSH):

bash

iptables -t nat -A PREROUTING -p tcp --dport 10022 -j DNAT --to-destination 10.0.0.2:22 

3.6 重复创建多台 VPS

按照 3.3-3.5 的步骤,重复创建你需要的 VPS 数量。每个 VPS 都可以选择不同的操作系统和配置。

四、方案二:进阶玩家 ------ KVM 命令行(极致性能)

如果你追求极致性能,或者想深入理解虚拟化原理,可以用 KVM 命令行。KVM 性能接近物理机,资源开销比 Proxmox 小约 12%。

4.1 安装 KVM

Ubuntu/Debian 系统

bash

sudo apt update sudo apt install qemu-kvm libvirt-daemon-system virt-manager bridge-utils sudo systemctl enable --now libvirtd sudo usermod -aG libvirt $USER 

CentOS/RHEL 系统

bash

sudo yum install qemu-kvm libvirt virt-install bridge-utils sudo systemctl enable --now libvirtd 

4.2 创建网桥(让 VPS 能被外网访问)

编辑网络配置 /etc/netplan/01-netcfg.yaml

yaml

network:   version: 2   renderer: networkd   bridges:     br0:       dhcp4: no       addresses: [你的公网IP/24]       gateway4: 你的网关       nameservers:         addresses: [8.8.8.8, 8.8.4.4]       interfaces: [eth0]  # 替换成你的物理网卡名   ethernets:     eth0:       dhcp4: no 

应用配置:

bash

sudo netplan apply 

4.3 用命令行创建 VPS

bash

sudo virt-install \   --name=vps-01 \   --ram=4096 \   --vcpus=2 \   --disk path=/var/lib/libvirt/images/vps-01.qcow2,size=40 \   --os-type=linux \   --os-variant=ubuntu22.04 \   --network bridge=br0 \   --graphics vnc,listen=0.0.0.0 \   --cdrom /path/to/ubuntu-22.04.iso 

参数说明

  • --name:VPS 名称

  • --ram:内存大小(MB)

  • --vcpus:CPU 核心数

  • --disk path:虚拟硬盘存放路径和大小(GB)

  • --os-variant:操作系统类型

  • --network bridge:使用哪个网桥

  • --cdrom:安装 ISO 路径

4.4 管理 VPS 常用命令

bash

# 查看所有 VPS 状态 virsh list --all # 启动 VPS virsh start vps-01 # 关闭 VPS virsh shutdown vps-01 # 强制关闭 virsh destroy vps-01 # 删除 VPS virsh undefine vps-01 virsh destroy vps-01  # 先关机 rm -f /var/lib/libvirt/images/vps-01.qcow2  # 删除硬盘文件 # 进入 VPS 控制台 virsh console vps-01 

五、两种方案对比与选择建议

对比项 Proxmox VE KVM 命令行
管理方式 Web 界面,点鼠标 命令行操作
学习曲线 平缓 陡峭
创建一台 VPS 时间 3 分钟 10 分钟(熟悉后 2 分钟)
性能开销 约 5-8% 约 3-5%
是否需要记命令 不需要 需要
快照/备份 界面一键操作 需手动执行
适合人群 绝大多数人 运维老手

建议

  • 个人/小团队自用想省事 → 选 Proxmox VE

  • 想做 IDC 卖 VPS追求极致性能 → 选 KVM 命令行,或者用 Proxmox + 调优

六、网络配置补充:只有一个公网 IP 怎么办?

如果电信/联通只给了你一个公网 IP,所有 VPS 需要共享这个 IP。

解决方法:NAT + 端口转发

服务 宿主机端口 转发到 VPS
SSH 10022 VPS1:22
SSH 10023 VPS2:22
Web 80/443 负载均衡器(Nginx)

用 iptables 做转发

bash

# 启用 IP 转发 echo 1 > /proc/sys/net/ipv4/ip_forward # 转发 SSH(宿主机 10022 → VPS1 的 22) iptables -t nat -A PREROUTING -p tcp --dport 10022 -j DNAT --to-destination 192.168.100.2:22 iptables -A FORWARD -p tcp -d 192.168.100.2 --dport 22 -j ACCEPT # 保存规则 iptables-save > /etc/iptables/rules.v4 

七、运维与监控(一定要做)

7.1 硬盘满了怎么办?

Proxmox 支持在线扩容:

  1. 在 Web 界面选中 VPS → Hardware → 硬盘 → Resize

  2. 输入要增加的大小

  3. 进入 VPS 内部扩展文件系统:

bash

# 如果是 ext4 文件系统 sudo resize2fs /dev/sda1 # 如果是 xfs 文件系统 sudo xfs_growfs / 

7.2 监控资源使用

Proxmox 自带监控:Web 界面直接看 CPU、内存、磁盘、网络图表。

统一监控多台 VPS:安装 Prometheus + Node Exporter。

在每台 VPS 上安装 Node Exporter:

bash

wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz tar xvf node_exporter-*.tar.gz sudo ./node_exporter & 

7.3 定期备份

Proxmox 自带备份功能:

  1. 选中 VPS → Backup → 添加备份任务

  2. 选择备份时间(如每天凌晨 3 点)

  3. 选择保留备份份数

手动备份命令

bash

vzdump 101 --compress gzip --mode snapshot --storage local 

八、常见问题与排错

Q1:VPS 启动不了,报错 “KVM not available”

原因:CPU 虚拟化未开启或 BIOS 没打开。

解决:

  1. 重启服务器进 BIOS

  2. 找到 Intel VT-x 或 AMD SVM,设为 Enabled

  3. 宿主机执行 egrep -c '(svm|vmx)' /proc/cpuinfo 确认有输出

Q2:VPS 网络不通,宿主机能上网但 VPS 不行

排查步骤:

  1. 检查网桥配置:brctl show 看有没有 br0

  2. 检查 VPS 网卡:virsh domiflist 你的VPS名

  3. 进 VPS 内部检查 IP 配置是否正确

  4. 测试连通性:ping 网关IP

Q3:VPS 很慢,I/O 延迟高

原因:可能是硬盘 I/O 瓶颈。典型症状是 iostat -x 1 显示 await 超过 50ms。

解决:

  1. 换 SSD(机械硬盘是真不行)

  2. 检查是不是多个 VPS 同时在做大量磁盘读写

  3. 考虑加 RAID 10 提升 I/O 性能

Q4:可以用 Windows 做 VPS 吗?

可以。在 Proxmox 里安装 Windows Server 或 Windows 10/11 都行。

需要做的调整:

  • 安装 VirtIO 驱动(网卡和硬盘驱动)

  • 内存建议给 4GB 以上

  • 可以在 Proxmox 下载 VirtIO ISO:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/

九、总结:从零到 VPS 的最小行动方案

如果你是新手,做这一套就能跑起来

步骤 操作 耗时
1 搞一台支持虚拟化的电脑(检查 CPU) 1 天
2 下载 Proxmox VE ISO,制作 U 盘 10 分钟
3 安装 Proxmox(一路下一步) 15 分钟
4 登录 Web 界面 https://IP:8006 1 分钟
5 上传 Ubuntu ISO,创建第一台 VPS 5 分钟
6 启动 VPS,安装系统 10 分钟
7 配置网络桥接让 VPS 能被访问 5 分钟

你得到的结果:一台物理服务器上成功跑起来了第一个 VPS,可以像用云服务器一样 SSH 登录、部署网站、跑程序。

最新回复
  • 游客 UID:20 游客组

    PVE不错 效率杠杠的 直通也方便

    1月前

请先登录后再回复 登录

uid:3 一级用户组
关注
发帖 25
评论 25
粉丝 0
关注 0
发新帖
目录
物理服务器虚拟化:一台物理机变多台 VPS 完整教程