安装 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 崩溃,原因不明
请问你设置的是主路由还是旁路由模式呢
主路由