安装 PvE
注:
EMMC存储器版本前往教程: https://www.yuque.com/taizhourenjia/r86s/kxvqlp- 使用
VM方式运行OpenWRT有玄学软重启问题:https://www.v2ex.com/t/879368
创建模板
以下假设
PvE机器地址为10.0.0.254,假设OpenWRT固件名称为openwrt-xxx。
格式 *.tar.gz 固件
*.tar.gz 格式的固件可直接上传至 PvE 模板文件夹:
scp openwrt-xxx.tar.gz root@10.0.0.254:/var/lib/vz/template/cache
格式 *.img 固件
-
*.img镜像需要进行转格式寻找一台 Linux 机器,或者直接使用
PvE机器进行下列操作如果固件带有
squashfs字样,直接解压:apt install squashfs-tools unsquashfs openwrt-xxx.img如果固件不带有
squashfs字样,需要挂载镜像:mkdir /root/op mount -t ext4 -o loop openwrt-xxx.img /root/op cd /root/op -
打包模板文件,在上一步所在文件夹执行:
tar zcf /var/lib/vz/template/cache/openwrt-xxx.tar.gz ./* - 完成后可删除前几步产生的临时文件。
创建容器
pct create 101 local:vztmpl/openwrt-x86-64-generic-squashfs-rootfs.tar.gz \
--rootfs local-lvm:1 \
--ostype unmanaged \
--hostname openwrt \
--arch amd64 \
--cores 2 \
--memory 1024 \
--swap 0 \
-net0 name=eth0,bridge=vmbr999,firewall=1 \
-net1 name=eth1,bridge=vmbr0 \
-net2 name=eth2,bridge=vmbr900
修改容器配置
主要目的是通过映射宿主机 /dev 下的设备,向容器提供 PPPoE 拨号能力。
vim /etc/pve/lxc/101.conf
arch: amd64
cores: 2
hookscript: local:snippets/hookscript.pl
hostname: openwrt
memory: 1024
net0: name=eth0,bridge=vmbr999,firewall=1,type=veth
net1: name=eth1,bridge=vmbr0,type=veth
net2: name=eth2,bridge=vmbr900,type=veth
ostype: unmanaged
rootfs: local-lvm:vm-101-disk-0,size=1G
swap: 0
lxc.include: /usr/share/lxc/config/openwrt.common.conf
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
lxc.mount.entry: /dev/ppp dev/ppp none bind,create=file
lxc.cgroup2.devices.allow: c 108:0 rwm
lxc.cgroup2.devices.allow: c 10:200 rwm
注:
- 其中 cgroup 权限数据来自宿主机
ls -al /dev/net/tun、ls -al /dev/ppp返回。 - 其中
eth0为WAN 口、eth1为LAN 口、eth2为VLAN01 WiFi 口。
启动
正常启动容器,按照常规方式配置 OpenWRT 即可。
注:
- 实测
OpenClash有兼容性问题,ShellClash正常使用。
测试
已连续运行21天,一切正常。

版权属于:一名宅。
本文链接:https://zhaiyiming.com/archives/openwrt-lxc-on-r86s.html
转载时须注明出处及本声明
请问以这种方式运行 OpenClash 遇到了什么兼容性问题呢, 最近也计划将 Openwrt 迁移到 LXC 容器
CPU 占满,一段时间后 OpenClash 崩溃,原因不明
请问你设置的是主路由还是旁路由模式呢
主路由