William
发布于 2023-03-05 / 0 阅读 / 0 评论 / 0 点赞

LXC重新打包并安装Openwrt

首先下载带有squashfs字样的openwrt固件:

解压得到img文件,为了省事直接改名为openwrt.img,上传到PVE的 /root 目录

安装binwalk

apt install binwalk

cd到root目录,binwalk预览openwrt.img同时会解压到目录下。

binwalk -e openwrt.img

此时同目录下有个_openwrt.img.extracted文件,cd _openwrt.img.extracted/squashfs-root目录下

重新打包,注意最后有*号。

cd _openwrt.img.extracted/squashfs-root
tar zcf openwrt.rootfs.tar.gz *

上传或复制到PVE对应目录,一般为/var/lib/vz/template/cache

开始创建lxc容器

pct create 112 local:vztmpl/openwrt.rootfs.tar.gz --rootfs local-lvm:1 --ostype unmanaged --hostname OpenWrt --arch amd64 --cores 2 --memory 1024 --swap 0 --onboot yes -net0 bridge=vmbr0,name=eth0

各参数说明:

vmid:100		

	容器编号,可以根据需要自行设置,这里设为100,后面的相关设置会用到该编号。
local:vztmpl/openwrt-21.02.0-rc3-x86-64-rootfs.tar.gz	
	容器模板, local:vztmpl/ 指向 /var/lib/vz/template/cache/目录,是pve的默认模板存放目录,webUI上传的模板就存在该位置,可根据需要改为其他目录,openwrt-21.02.0-rc3-x86-64-rootfs.tar.gz为模板文件名。
--rootfs local-lvm:4
	根磁盘位置,local-lvm可以根据实际情况修改为其他存储位置,4表示空间大小为4G。
--ostype unmanaged
	系统类型,之后可在设置文件中修改。
--hostname OpenWrt
	容器名称,之后可在设置文件中修改。
--arch amd64
	系统架构,amd64 | arm64 | armhf | i386。
--cores 2
	分配给容器的核心数。
--memory 2048
	分配给容器的内存大小,这里是2G。
--swap 0
	分配给容器的交换区大小,这里是0。
-net0 bridge=vmbr0,name=eth0
	容器网络设置,这里设置网络0为容器中增加网卡eth0,桥接到主机的vmbr0接口。

设置网络

uci set network.lan.ipaddr=192.168.7.2
uci set network.lan.gateway=192.168.7.1
uci set network.lan.dns=192.168.7.1
uci commit

重启一下

/etc/init.d/network restart

就可以愉快的玩耍openwrt了。

安装好后发现几个小问题:

第一:活动连接显示4096。

nano /usr/lib/lua/luci/view/admin_status/index.htm


找到  local conn_max  = 、、、
以下修改最大连接数
修改为下面


local conn_max = tonumber(luci.sys.exec(  "sysctl -n -e net.netfilter.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max"            ):match("%d+")) or 4096


4096改为需要的数值即可。

根据/proc/sys/net/netfilter/nf_conntrack_max的数值为262144。


评论