Pxvirt (Arm64) 网络配置、内存优化、LXC 安装OpenWrt、AdGuardHome、Docker

一、配置网络

适用于手动安装的场景。若使用 308 一键安装,默认已完成网桥配置,无需额外操作。

1、配置网桥

#清空原配置,勿点击应用配置

#点击创建—Linux Bridge,按需配置后应用配置,标记 2 要对应网口名称

2、vmbr0 配置 IPV6

nano /etc/sysctl.conf
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.all.autoconf=1
net.ipv6.conf.default.autoconf=1
net.ipv6.conf.vmbr0.autoconf=1

二、内存优化

1、禁用非必要的服务

systemctl stop pve-ha-lrm.service
systemctl disable pve-ha-lrm.service
systemctl stop pve-ha-crm.service
systemctl disable pve-ha-crm.service
systemctl stop pve-firewall.service
systemctl disable pve-firewall.service
systemctl stop pvescheduler.service
systemctl disable pvescheduler.service
systemctl stop spiceproxy.service
systemctl disable spiceproxy.service
systemctl disable postfix.service

重启设备后有些服务会自动启动,写几行命令延迟启动执行来关闭服务

nano /usr/sbin/pve-optimize.sh
#!/bin/bash
systemctl stop pve-ha-lrm.service
systemctl stop pve-ha-crm.service
systemctl stop pve-firewall.service
systemctl stop pvefw-logger.service
systemctl stop pvescheduler.service
systemctl stop spiceproxy.service
echo "All down!!!"
chmod +x /usr/sbin/pve-optimize.sh
nano /etc/rc.local

添加到 exit 0 上一行 系统启动后 300 秒会自动执行

sleep 300 && /usr/sbin/pve-optimize.sh

2、减少 worker 数量

修改目录 /usr/share/perl5/PVE/Service 下三个文件,将 max_workers 后面 3 改为 1
pvedaemon.pm、 pveproxy.pm、spiceproxy.pm

sed -i 's|max_workers => 3|max_workers => 1|' /usr/share/perl5/PVE/Service/pvedaemon.pm
sed -i 's|max_workers => 3|max_workers => 1|' /usr/share/perl5/PVE/Service/pveproxy.pm
# sed -i 's|max_workers => 3|max_workers => 1|' /usr/share/perl5/PVE/Service/spiceproxy.pm

上面两步操作完重启设备,六分钟后内存占用会降至约 600M

三、LXC安装OpenWrt

1、下载适合的CT模板
例1:https://github.com/breakings/OpenWrt/releases/download/ARMv8Docker/openwrt-armvirt-64-default-rootfs.tar.gz(暴躁老哥模板)
例2:https://downloads.openwrt.org/releases/24.10.2/targets/armsr/armv8/openwrt-24.10.2-armsr-armv8-rootfs.tar.gz(官方最新模板)
例3:https://github.com/Zane-E/ROOTFS/releases/download/ROOTFS.bak/N1-rootfs-wifi-new.tar.gz(自用N1精简模板——开启wifi见PS)
例4:https://github.com/Zane-E/ROOTFS/releases/download/ROOTFS.bak/openwrt-s905d-n1-R23.09.29-flippy-rootfs.tar.gz(基于F大N1固件转换模板——开启wifi见PS)
例5:https://github.com/Zane-E/ROOTFS/releases/download/ROOTFS.bak/jp-tvbox-rootfs.tar.gz(自用荐片盒子精简模板——开启wifi见PS)

2、上传模板

3、创建 OpenWrt (删除\后面空格及内容)

pct create 117 \ #序号不能与现有重复
local:vztmpl/openwrt-armvirt-64-generic-rootfs.tar.gz \  #对应上图1及文件名
--rootfs local:0.5 \ #分配硬盘空间 单位G
--ostype unmanaged \
--hostname OpenWrt \  #名称
--arch arm64 \  #架构
--cores 4 \  #核心数
--memory 256 \ #分配内存 单位M
--swap 0 \
-net0 bridge=vmbr0,name=eth0

4、勾选嵌套并启动OpenWrt

5、修改IP

lxc-attach 117 #在步骤3 shell 输入
vi /etc/config/network
/etc/init.d/network restart

浏览器输入IP进入 OpenWrt (默认账户 root 密码 password )。之后和设置旁路网关(旁路由)一样步骤,不赘述。

PS:

1、编辑配置文件

nano /etc/pve/lxc/117.conf  #117换成创建例3的CT ID

2、末尾添加后重启,按需添加

# 挂载 wlan0
lxc.net.1.type: phys
lxc.net.1.link: wlan0
lxc.net.1.flags: up
lxc.net.1.name: wlan0
# 挂载 ppp
lxc.cgroup2.devices.allow: c 108:0 rwm
lxc.mount.entry: /dev/ppp dev/ppp none bind,create=file
# 挂载 tun
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file

四、LXC 安装 AdGuardHome(Alpine)

1、下载并上传模板
https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/alpine/3.22/arm64/default/
https://mirrors.bfsu.edu.cn/lxc-images/images/alpine/3.22/arm64/default/
ps:alpine比较节省硬盘空间,亦可通过Debian等创建(https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images)

2、创建 CT

3、安装AdGuardHome

换源 #非必须

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
apk update
apk add curl
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

按引导进行设置

五、LXC安装Docker(Alpine)

部署 lxc Alpine(安装AdGuardHome步骤的1、2)

nano /etc/pve/lxc/118.conf  #118换成创建例CT ID

末尾处添加后重启 CT

lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:

lxc.apparmor.profile: unconfined:该配置指定了 AppArmor(应用程序安全性配置框架)的配置文件名称,这里设置为 “unconfined”,用于允许容器内的进程具有更高的系统权限。

lxc.cgroup.devices.allow: a: 允许容器内的进程访问所有的 cgroup 设备。

lxc.cap.drop: 此配置项为空,容器内的进程将继承主机系统的默认能力设置。

换源#非必须

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
apk update
apk add docker
apk add docker-compose
rc-update add docker boot
service docker start
上一篇