CHR: Proxmox VE Installation

本页概述在 Proxmox VE 虚拟环境中部署 MikroTik Cloud Hosted Router(CHR)的方法,并给出详细安装步骤,涵盖虚拟机创建、镜像处理和配置方式。

CHR:Proxmox VE 安装

概述

Cloud Hosted Router(CHR)是 MikroTik RouterOS 面向 x86_64 虚拟化环境设计的版本。它提供完整的路由、防火墙、VPN 和管理功能,适用于本地部署以及 Proxmox VE 等云端虚拟化基础设施。

Proxmox VE(KVM/QEMU)支持使用 raw 或 qcow2 磁盘镜像灵活部署 CHR,并提供多种存储后端和网络适配器选项。

安装步骤

步骤 1:创建虚拟机

  • 在 Proxmox VE 的 Web 界面中新建一台虚拟机。
  • 按需分配 CPU、内存和网络接口。
  • 不要安装操作系统(CHR 磁盘将手动挂载)。

步骤 2:下载并解压 CHR 镜像

从 MikroTik 下载页面 https://mikrotik.com/download 下载最新 CHR 镜像到 Proxmox 主机:

wget https://download.mikrotik.com/routeros/7.21.4/chr-7.21.4.img.zip

警告

请把 URL 替换为 MikroTik 下载页面上最新的 CHR 版本。 解压镜像:

unzip chr-7.21.4.img.zip

这会生成用于安装的 .img 文件。

步骤 3:把镜像移动到虚拟机存储

Proxmox 本地存储的默认位置:

/var/lib/vz/images/<VM_ID>/

需要时创建目录:

mkdir -p /var/lib/vz/images/<VM_ID>

移动镜像:

mv chr-7.21.4.img /var/lib/vz/images/<VM_ID>/

步骤 4:把镜像转换为 QCOW2

把 raw CHR 镜像转换为 qcow2 格式:

qemu-img convert -f raw -O qcow2 /var/lib/vz/images/<VM_ID>/chr-7.21.4.img /var/lib/vz/images/<VM_ID>/vm-<VM_ID>-disk-1.qcow2

步骤 5:把磁盘挂载到虚拟机

虚拟机配置文件位置:

/etc/pve/qemu-server/<VM_ID>.conf

通过虚拟机配置文件或 Proxmox Web 界面手动挂载磁盘。

提示

先用一台测试虚拟机验证配置语法是否正确。

备用的图形界面方式

  1. 通过 Proxmox Web 界面创建一台基础虚拟机。
  2. 确保存储设置为本地存储。
  3. 把 CHR 镜像上传到:/var/lib/vz/images/<VM_ID>/
  4. 把镜像转换为 qcow2:
qemu-img convert -f raw -O qcow2 chr.img vm-<VM_ID>-disk-1.qcow2
  1. 通过 Proxmox GUI 或 .conf 文件挂载磁盘。

自动化安装脚本

也可以在 Proxmox 主机上使用 Bash 脚本部署 CHR。

脚本执行的操作:

  • 创建临时目录(/root/temp)。
  • 下载 CHR 镜像。
  • 解压并转换镜像。
  • 创建虚拟机并挂载磁盘。
#!/bin/bash

version="nil"
vmID="nil"

echo "############## Start of Script ##############"

if [ ! -d /root/temp ]; then
    mkdir /root/temp
fi

read -p "Enter CHR version (e.g. 7.21.4): " version

cd /root/temp

wget https://download.mikrotik.com/routeros/$version/chr-$version.img.zip
unzip chr-$version.img.zip

read -p "Enter VM ID: " vmID

mkdir -p /var/lib/vz/images/$vmID

qemu-img convert -f raw -O qcow2 \
chr-$version.img \
/var/lib/vz/images/$vmID/vm-$vmID-disk-1.qcow2

qm create $vmID \
  --name chr-$version \
  --net0 virtio,bridge=vmbr0 \
  --bootdisk virtio0 \
  --ostype l26 \
  --memory 512 \
  --sockets 1 \
  --cores 1 \
  --virtio0 local:$vmID/vm-$vmID-disk-1.qcow2

echo "############## End of Script ##############"

实用小技巧

修复脚本中的 Windows 换行符:

sed -i -e 's/\r$//' *.sh

支持的网络与磁盘接口

Proxmox VE (KVM/QEMU)

网络适配器:

  • Virtio(paravirtual,半虚拟化)
  • E1000

磁盘控制器:

  • IDE
  • SATA
  • Virtio(paravirtual,半虚拟化)