记录用

在LXC中安装openwrt

2022.09.23

记录下,在LXC中安装openwrt

1、上传模板到PVE:

img

2、新建LXC容器

执行以下命令创建新容器

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

3、修改容器配置文件

nano /etc/pve/lxc/101.conf

添加以下内容

# openwrt.common.conf是PVE自带的openwrt配置文件示例,内含一些基本设置
lxc.include: /usr/share/lxc/config/openwrt.common.conf
# /dev/ppp  pppoe拨号等功能需要用到
lxc.cgroup.devices.allow: c 108:0 rwm
# 钩子脚本,用于添加 /dev/ppp等设备
hookscript: local:snippets/101-hookscript.pl

Tips:不管有没有设置,容器都会加载/usr/share/lxc/config/common.conf配置文件

4、创建钩子脚本

mkdir -p /var/lib/vz/snippets
cp /usr/share/pve-docs/examples/guest-example-hookscript.pl /var/lib/vz/snippets/101-hookscript.pl
nano /var/lib/vz/snippets/101-hookscript.pl

在第36行可以找到以下内容

    # Second phase 'post-start' will be executed after the guest
    # successfully started.
   
    print "$vmid started successfully.\n";

修改为

    # Second phase 'post-start' will be executed after the guest
    # successfully started.
    system("lxc-device add -n $vmid /dev/ppp");
    system("lxc-device add -n $vmid /dev/net/tun");
    print "$vmid started successfully.\n";

5、启动容器

pct start 101

6、openwrt设置

容器启动后,进入容器终端

lxc-attach 101

修改root密码

passwd

网络设置

vi /etc/config/network

重启网络和防火墙,之后测试是否可以打开openwrt页面

/etc/init.d/network restart
/etc/init.d/firewall restart

7、设置openwrt网卡

openwrt关机后,修改/etc/pve/lxc/101.conf,删除桥接网卡。即这行 “net0: name=eth0,bridge=vmbr0,hwaddr=….",并追加以下配置

lxc.net.0.type: phys
lxc.net.0.link: enp1s0f3
lxc.net.0.name: eth0
lxc.net.0.ipv4.address: 192.168.1.3/24
lxc.net.0.ipv4.gateway: 192.168.1.1
lxc.net.0.flags: up

7、禁用/etc/init.d/wsdd2

wsdd2会报错,所以禁用掉

/etc/init.d/wsdd2 disable

8、gost安装

安装gost_2.11.1-1_x86_64.ipk

修改脚本/etc/init.d/gost

赋权

chmod +x gost

开机自启动

/etc/init.d/gost enable