本文是旁路路由模式,主路由模式 请浏览 : https://dev.leiyanhui.com/openwrt/lxc-mian-op/
pve 没有默认docker,需要单独安装。通常不推荐这样做。原因是那个尽量不动pve自身的原则
。一般在大量使用容器的情况下,采用lxc 开启一个debian11,然后在里面安装docker。 或者干脆开一个 alpine虚拟机。
那么openwrt 因为要接管我们网络的网关,最好在一个独立的容器里面运行。 用虚拟机方式跑openwrt ,在内网没人下载东西的时候,它依旧会吃相当一部分cpu,所以还是用lxc方式合适,其性能就是你物理机的性能
另外lxc 没有docker的层概念,所以非常适合运行这种独立的服务!
获取openwrt的 rootfs
我这里是自己编译的,如果你有这个需求,可以联系我编译。也可以用官网版本(新手不建议,坑多)
代编译说明 直接拿到tar.gz包
https://dev.leiyanhui.com/openwrt/diy
原有镜像转lxc
转换为img
qcow2/vmdk
如果原来镜像是 qcow2 vmdk
|
|
img.gz
|
|
正在运行的虚拟机openwrt转lxc
直接在pve web控制台点备份,选择 gzip格式 ,得到文件 /var/lib/vz/dump/vzdump-qemu-100-2023_02_03-12_29_56.vma.gz
在 local 备份里面 找到这个文件 点恢复 导入到一个新虚拟机 102
|
|
挂载和打包
|
|
如果img是正在运行的系统且使用的Overlay模式,会丢失Overlay内容(恢复默认了)。你需要在原来系统里面 导出 后覆盖过来。
上传lxc
上传到 local节点 ct模板 op.tar.gz 后面操作都基于local和这个文件名。
创建CT容器
直接在pve里面创建 会提示 unknown ID 'openwrt' in /etc/os-release file, trying fallback detection TASK ERROR: unable to create CT 2000 - unable to detect OS distribution
这样的错误,我们需要修改ostype,这在pve的webui里面是无法是实现的。
登录 pve shell 命令 创建 2000 使用上面的rootfs 磁盘和内存 cpu 也配置一下
|
|
--rootfs local:2
代表放到 local 2g大小
你需要根据你的情况修改上面命令的部分内容,btrfs 的话路径是
/var/lib/pve/local-btrfs/template/cache/
网络配置
创建 添加网卡
我这里是做旁路由使用,如果你做主路由用,还需要把映射 /dev/ppp 以及分配额外的网卡过来。 一般不建议 aio平台跑主路由哈。
启动
|
|
其他操作
如果你是用的别人编译的 或者官网的,还需要去容器里面 修改一下ip,如果是定制版本的 直接就可以开始用了。
|
|
其他常见问题
luci-static 错误
部分固件提示:
|
|
固件本身的问题 换固件。
ssh无法登录
固件问题
ipsec无法链接的问题
问题不明,最佳方案,单独一个lxc/docker 运行 ipsec 详情: https://dev.leiyanhui.com/pve/ipsec