PVE8.3.1 LXC下安装 OpenWRT 记录
前提条件
确保PVE系统已经安装了以下工具:
apt install squashfs-tools
下载 OpenWRT 镜像
从 OpenWRT 的官方网站 或者Immortalwrt(推荐)下载squashfs格式的rootfs镜像,也可以自行编译。
选择与硬件架构匹配的镜像,文中以 openwrt-x86-64-generic-squashfs-rootfs.img
为例。
解压镜像
下载完成后,使用以下命令解压镜像文件:
unsquashfs openwrt-x86-64-generic-squashfs-rootfs.img
进入解压后的目录:
cd squashfs-root
将文件打包为 tar.gz 格式,作为LXC模版:
tar zcf /var/lib/vz/template/cache/openwrt-x86-64-generic-rootfs.tar.gz ./*
创建 LXC 容器
使用以下命令创建一个新的 LXC 容器:
pct create 100 /var/lib/vz/template/cache/openwrt-x86-64-generic-rootfs.tar.gz --rootfs local:0.5 --ostype unmanaged --hostname openwrt --arch amd64 --cores 2 --memory 512 --swap 256 -net0 bridge=vmbr0,name=eth0 --features keyctl=1,nesting=1
参数说明
-
pct create 100
: 创建一个 ID 为100
的容器。 -
/var/lib/vz/template/cache/openwrt-x86-64-generic-rootfs.tar.gz
: 指定要使用的根文件系统模板的路径。这里是 OpenWRT 的根文件系统。 -
--rootfs local:0.5
: 设置容器的根文件系统存储位置。local
表示使用本地 LVM 存储,0.5
表示分配0.5
GB 的存储空间。 -
--ostype unmanaged
: 指定操作系统类型为"unmanaged",表示 Proxmox 不会对已知操作系统进行特定优化。 -
--hostname openwrt
: 将容器的主机名设置为openwrt
。 -
--arch amd64
: 指定容器的架构为 64 位(amd64)。 -
--cores 2
: 分配2
个 CPU 核心给容器。 -
--memory 512
: 分配512
MB 的内存给容器。 -
--swap 256
: 分配256
MB 的交换空间给容器。 -
-net0 bridge=vmbr0,name=eth0
: 配置第一个网络接口,连接到vmbr0
桥接,并将接口命名为eth0
。 -
--features keyctl=1,nesting=1
: 启用特定功能。keyctl=1
允许使用内核密钥管理,nesting=1
允许嵌套虚拟化。
这些参数可以根据需要进行调整,以满足特定的性能和网络需求。 根据需要调整容器的 ID、CPU 核心数、内存和交换空间大小。
配置容器
编辑容器的配置文件:
nano /etc/pve/lxc/100.conf
在文件末尾添加以下内容:
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.mount.auto: proc:mixed sys:ro cgroup:mixed
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
参数说明
-
lxc.cgroup2.devices.allow: a
:- 允许容器访问所有设备。
a
表示所有设备权限。
- 允许容器访问所有设备。
-
lxc.cap.drop:
:- 该参数用于指定要从容器中删除的 Linux 功能(capabilities)。如果没有指定任何功能,表示不删除任何功能。此项通常用于限制容器的特权。
-
lxc.mount.auto: proc:mixed sys:ro cgroup:mixed
:lxc.mount.auto
用于自动挂载文件系统。proc:mixed
表示以混合模式挂载/proc
文件系统,允许容器访问进程信息。sys:ro
表示以只读模式挂载/sys
文件系统,容器可以读取系统信息但不能修改。cgroup:mixed
表示以混合模式挂载 cgroup 文件系统,用于管理资源限制。
-
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
:- 该参数用于手动挂载设备。
/dev/net/tun
是 TUN/TAP 虚拟网络设备的路径。dev/net/tun
是容器内的挂载点。none
表示不指定文件系统类型。bind
表示将主机的设备绑定到容器中。create=file
表示如果挂载点不存在则创建它。
这些配置项主要用于确保容器能够正常访问网络设备,并设置适当的权限和挂载点,以便 OpenWRT 能够正常工作。
启动容器
配置完成后,启动容器:
pct start 100
通过以上步骤,成功在 Proxmox VE 上安装并配置了 OpenWRT。
记得到Openwrt Shell中修改 lan口的IP地址
vi /etc/config/network
修改完成后,重启网络服务生效
/etc/init.d/network restart
或
service network restart
本文参考链接:https://asvow.com/pve-lxc-openwrt/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)