ProxmoxVE 7.0 LXC下搭建openwrt软路由

📅 2026/7/23 17:42:25
ProxmoxVE 7.0 LXC下搭建openwrt软路由
目录前言一、创建容器1. 下载模版2. 上传模板到PVE3. 新建LXC容器二、修改容器设置1. 修改容器配置文件2. 创建钩子脚本三、启动容器四、OpenWrt基本设置1.修改root密码2.网络设置五、安装常用软件(根据个人需要选择安装)1. oh-my-zsh安装2. 阿里云ddns安装设置3. zerotier安装设置4. Server酱安装设置5. docker安装设置6. vlmcsd安装7. 安装nginx替代默认的uhttpd利用nginx搭建简单文件服务添加nginx的php支持六、其他1. 更新到openwrt-21.02.0前言本文探讨在赛扬J1900双网卡系统上使用ProxmoxVE 7.0 LXC环境下搭建OpenWrt软路由。整体网络结构如下:+----------------------------------------------------------------+ | LXC | | +------------------------------------------------+ | | | OpenWrt | | | | +--------+ +--------+ +--------+ | | | | | br-lan |←---→| eth0 | | enp4s0 | | | | | +--------+ +--------+ +--------+ | | | | 192.168.1.1 ↑ ↑ | | | +------------------------|-------------|---------+ | | veth phys | |................................|.............|.................| | ProxmoxVE 7.0 | | | | | | | | ↓ ↓ | | +------+ +--------+ +------+ | | |enp3s0|←---→| vmbr0 | |enp4s0| | | +------+ +--------+ +------+ | | ↑ 192.168.1.2 ↑ | | | | | | | | | +-------------------|--------------------------|-----------------+ ↓ ↓ +----+ +--------+ +----+ +-------+ | PC |←---→ | switch |←---→| TV | | modem | +----+ +--------+ +----+ +-------+一、创建容器1. 下载模版这里选择使用openwrt-21.02.0-rc3版本,rootfs包官方下载地址2021.09.14修改:目前稳定版openwrt-21.02.0已发布,rootfs包官方下载地址下面步骤涉及的文件名称做了相应修改如果之前已经安装了旧版本想更新到稳定版openwrt-21.02.0,看这里2. 上传模板到PVE3. 新建LXC容器通过SSH或者是网页端打开PVE终端,执行以下命令创建新容器pct create100\local:vztmpl/openwrt-21.02.0-rc3-x86-64-rootfs.tar.gz\--rootfs local-lvm:4\--ostype unmanaged\--hostname OpenWrt\--arch amd64\--cores2\--memory2048\--swap0\-net0bridge=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接口。二、修改容器设置1. 修改容器配置文件vim/etc/pve/lxc/100.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/hookscript.pl # 将主机的网卡enp4s0分配给容器使用,根据自己的实际情况更改 lxc.net.1.type: phys lxc.net.1.link: enp4s0 lxc.net.1.flags: upTips:不管有没有设置,容器都会加载/usr/share/lxc/config/common.conf配置文件2. 创建钩子脚本这里在官方示例guest-example-hookscript.pl的基础上进行修改,大家可以根据需要自行修改mkdir/var/lib/vz/snippetscp/usr/share/pve-docs/examples/guest-example-hookscript.pl /var/lib/vz/snippets/hookscript.plvim