pct create 119 local:vztmpl/openwrt-22.03.2-x86-64-rootfs.tar.gz --rootfs local-lvm:1 --ostype unmanaged --hostname opRoute2 --arch amd64 --cores 2 --memory 512 --swap 0 --onboot yes -net0 bridge=vmbr0,name=eth0
openwrt-22.03.2-x86-64-rootfs.tar.gz文件在官网下,119是容器ID,可修改。创建完毕后,可以通过UI界面操作添加网卡,注意添加网卡后在UI界面配置的IP无效。
然后修改/etc/pve/lxc/{id}.conf文件,在后面添加一下配置,否则创建虚拟tun口或者拨号都不行。
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
最后是开机。开机完毕后,可以得到一个运行只占用10M内存,存储也只占10M左右的mini软路由,网卡也差不多接近直通,是很多主板无法直通的福利。
由于是lxc容器里面,总是会有一些bug,比如我遇到dhcp无法启动,且dns也没用,修改/etc/init.d/dnsmasq文件,根据下面的文本注释相应行
#procd_add_jail dnsmasq ubus log
#procd_add_jail_mount $CONFIGFILE $DHCPBOGUSHOSTNAMEFILE $DHCPSCRIPT $DH
#procd_add_jail_mount $EXTRA_MOUNT $RFC6761FILE $TRUSTANCHORSFILE
#procd_add_jail_mount $dnsmasqconffile $dnsmasqconfdir $resolvdir $user_
#procd_add_jail_mount /etc/passwd /etc/group /etc/TZ /etc/hosts /etc/eth
#procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile
case "$logfacility" in */*)
[ ! -e "$logfacility" ] && touch "$logfacility"
# procd_add_jail_mount_rw "$logfacility"
esac