榨干 ARM 小主机性能: PVE ARM 搭建指南

得益于佛西大佬的项目,让 PVE ARM 的搭建如此简单

榨干 ARM 小主机性能: PVE ARM 搭建指南

一、前言

  • 设备:Radxa Rock 5b+ (16GB)
  • 系统:Armbian 25.2.2 Bookworm Minimal
  • 网络环境:校园网,会讲到校园网环境多设备问题的解决方案,如果你希望在 PVE ARM 中部署 OpenWRT 并开启无线网卡,可以参考这篇文章

二、环境搭建

以下内容默认你基本熟悉 Linux 系统,并且已经安装 Debian 或 Debian 类系统:

sudo nano /etc/hosts

将文件内容修改为类似以下格式:

127.0.0.1   localhost.localdomain localhost
192.168.7.7   rock-5b-plus.proxmox.com rock-5b-plus
::1         localhost ip6-localhost ip6-loopback
fe00::0     ip6-localnet
ff00::0     ip6-mcastprefix
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

其中,192.168.7.7 是你的主机的内网 IP 地址,可以通过 ip a 命令来获取:

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
3: enP4p65s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000
    link/ether 00:e0:4c:0b:03:04 brd ff:ff:ff:ff:ff:ff
6: enx6c1ff721bebe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr1 state UP group default qlen 1000
    link/ether 6c:1f:f7:21:be:be brd ff:ff:ff:ff:ff:ff
7: wlP2p33s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether a8:e2:91:43:83:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.249/24 metric 600 brd 192.168.0.255 scope global dynamic wlP2p33s0
       valid_lft 81722sec preferred_lft 81722sec
    inet6 240e:469:208:2dfb:aae2:91ff:fe43:83a2/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86114sec preferred_lft 14114sec
    inet6 fe80::aae2:91ff:fe43:83a2/64 scope link
       valid_lft forever preferred_lft forever
8: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:e0:4c:0b:03:04 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2e0:4cff:fe0b:304/64 scope link
       valid_lft forever preferred_lft forever
9: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 6c:1f:f7:21:be:be brd ff:ff:ff:ff:ff:ff
    inet 192.168.7.7/24 scope global vmbr1
       valid_lft forever preferred_lft forever
    inet6 fe80::6e1f:f7ff:fe21:bebe/64 scope link
       valid_lft forever preferred_lft forever

例如我的无线网卡 wlP2p33s0 的 IP 地址为 192.168.0.249 ,由于后续要配置 OpenWrt,我将 OpenWrt 的地址设置为 192.168.7.1 ,所以我将我的 IP 设置为 OpenWrt 同一网段下的 192.168.7.7 ,你可以根据自己的实际情况进行设置

rock-5b-plus 和 rock-5b-plus.proxmox.com 为你的主机名和自定义域名,主机名请根据自己的实际情况配置,自定义域名请随意

三、安装 PVE ARM

1. 切换为 root 账号

sudo -i

2. 添加 PVE ARM 仓库

echo 'deb [arch=arm64] https://mirrors.apqa.cn/proxmox/debian/pve bookworm port'>/etc/apt/sources.list.d/pveport.list
curl -L https://mirrors.apqa.cn/proxmox/debian/pveport.gpg -o/etc/apt/trusted.gpg.d/pveport.gpg

3. 更新仓库和系统

apt update && apt full-upgrade -y

4. 安装 PVE ARM 软件包

apt install proxmox-ve postfix open-iscsi ifupdown2

执行完毕后,请重启主机,然后访问你的主机内网 IP 地址的 8006 端口即可进入管理界面

对于 Rockchip(瑞芯微)的芯片要进行一些额外操作:

apt download pve-edk2-firmware-aarch64=3.20220526-rockchip
dpkg -i pve-edk2-firmware-aarch64_3.20220526-rockchip_all.deb

四、安装 OpenWrt 路由

1. 构建自定义镜像

我使用的是 ImmortalWrt 镜像,在 ImmortalWrt Firmware Selector 构建自定义镜像,也可以在 /targets/armsr/armv8 目录下下载 qcow2 格式的预构建镜像

2. 配置 PVE 网络

将你的所有有线网卡添加到网桥(Proxmox VE 不支持无线网卡桥接):

在 数据中心 -> rock-5b-plus -> 系统 -> 网络 中点击 创建 -> Linux Bridge 来进行桥接:

注意:图片中的 CIDR 和 网关可以不配置,配置后你就可以通过有线连接到管理界面

3. 在 PVE 中配置 OpenWrt 虚拟机

  1. 点击右上角创建虚拟机 ,勾选打开高级模式
  2. 名称随意,其余保持默认,点击下一步
  1. 操作系统选择 不使用任何介质,点击下一步
  2. BIOS 选择 OVMF (UEFI) ,其余保持默认,点击下一步
  3. 磁盘直接删掉,不需要使用,点击下一步
  4. CPU 数量根据实际情况进行设定,要科学上网的话建议配置为 2 核心,其余的设置为 1 核心即可
注意要将 CPU 绑定到物理核心上,因为 PVE 不支持大小核调度,例如我希望将 OpenWrt 的CPU 绑定到物理核心的 CPU 6 和 CPU 7 上,则填写 6-7 ,如果你需要将 CPU 绑定到 5 和 7 上,则填写 5,7 即可
  1. 内存填写 2048 就绰绰有余了
  2. 网络选择你之前配置的 WAN 口
  3. 点击创建,注意不要勾选创建后启动
  4. 创建后点击刚刚创建好的虚拟机 -> 硬件 ,添加一个网络设备,将之前桥接好的 LAN 口全部接入到 OpenWrt 中
  5. 添加一个串行端口,配置保持默认
  6. 删除一些不必要的硬件,比如说 CD 驱动器,完整的硬件配置类似以下图片:
  1. 点击启动虚拟机,控制台选择 xterm.js ,这样你就可以实现复制粘贴命令了

4. OpenWrt 路由设置

此时,理论上你已经可以通过访问之前设置好的网关地址来访问 OpenWrt 的 Web 管理界面了,默认的网关地址是 192.168.1.1,如果访问不了,大概率是你的网口绑定错误,可以通过修改配置文件来修复:

请先登录 OpenWrt 的终端,然后输入以下命令:

vi /etc/config/network

你的配置文件类似以下内容:

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
config globals 'globals'
        option ula_prefix 'fdbf:4cc:823a::/48'
        option packet_steering '1'
config device
        option name 'br-lan'          # LAN 口网桥,用于聚合多个 LAN 口
        option type 'bridge'
        list ports 'eth1'             # 修改为电脑连接到小主机的网口
config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.7.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        list dns '223.5.5.5'
config interface 'wan'
        option device 'eth0'          # 修改为连接上级路由的网口
        option proto 'dhcp'
config interface 'wan6'
        option device 'eth0'          # 修改为连接上级路由的网口
        option proto 'dhcpv6'
        option reqaddress 'force'
        option reqprefix 'auto'
        option norelease '1'

请修改 wan 和 wan6 的 device,将它修改为你的 WAN 口,我这里是 eth0

请修改 br-lan 的 ports,将它修改为你的 LAN 口,我这里是 eth1LAN 口建议暂时只设置为目前电脑连接到小主机的那个网口,后续其它网口通过 Luci 界面添加避免错误

进入 Web 界面后,可以下载 luci-app-openclash 来使用代理,相较于 ShellCrash 来说,有图形化界面、可以多个订阅一键切换且有更多界面可以自定义,但是稳定性不如 ShellCrash 好

关于校园网部分,可以参考这篇文章,大家可以根据自己学校的情况进行调整,例如我们学校只进行了 TTL 检测和时间戳检测。另外,依靠修改 UA 的方式会大大增加网络延迟,同时可能导致游戏进不去,若是迫不得已,建议不要使用

关于 OpenWrt 的配置,网络上的教程已经铺天盖地了,再次就不再赘述了

五、结语

Proxmox VE 提供了各种各样的玩法,接下来我会教大家如何在 Proxmox VE 中配置一些硬件的直通,例如 RK3588 的编解码器直通虚拟机,以及 Proxmox VE 与 Docker 兼容的配置方案,大家敬请期待!