惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
I
InfoQ
博客园_首页
G
Google Developers Blog
爱范儿
爱范儿
Last Week in AI
Last Week in AI
量子位
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
月光博客
月光博客
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - airoot

用得顺手的软件记录 关闭win11开始菜单中的“全部” Aircrack-ng抓握手包 Chrome浏览器升级到138后不支持MV2插件 BGP 在线工具全景:从路由监控到策略验证 Chrome历史版本下载 Hyper Server 2019安装I226-V网卡驱动 FortiGate连接中国联通SDWAN Pve安装Win10 解决zabbix7.0图形中文乱码 openwrt squashfs镜像扩容 Redmi AX3000免拆开启SSH刷入OpenWrt vRealize Operations Manager 报告和大屏配置 使用 Cloudflare Tunnel 作为反向代理访问内网服务 PVE8.3.1创建LXC部署Docker PVE的local和local-lvm PVE8.3.1安装注意事项 Openwrt作为旁路由的必要设置 PVE8.3.1 直通硬盘 PVE8.3.1开启核显虚拟化SR-IOV PVE 8.3.1安装后的优化 ESXi 直通 7840HS 核显 Esxi intel iGPU SR-IOV
PVE8.3.1 LXC下安装 OpenWRT 记录
airoot · 2025-02-14 · via 博客园 - airoot

前提条件

确保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

进入解压后的目录:

将文件打包为 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 能够正常工作。

启动容器

配置完成后,启动容器:

通过以上步骤,成功在 Proxmox VE 上安装并配置了 OpenWRT。

记得到Openwrt Shell中修改 lan口的IP地址

修改完成后,重启网络服务生效

/etc/init.d/network restart
或
service network restart

本文参考链接:https://asvow.com/pve-lxc-openwrt/