恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 迅雷TV版在当贝应用市场独家首发恩山
查看: 12532|回复: 411

[openwrt(x86)] 最简单可行的pve LXC下搭建openwrt软路由,完全可以做主路由

    [复制链接]
发表于 2022-4-2 19:08 | 显示全部楼层 |阅读模式
本帖最后由 vsamlee 于 2022-4-5 19:24 编辑

4月5日摸索后所得


1、感觉pve的lxc对openwrt的支持会越来越完善,在lxc中运行openwrt后,该容器的概要备注栏会出现如下提示:
openwrt.common.conf是PVE自带的openwrt配置文件示例,内含一些基本设置 /dev/ppp pppoe拨号等功能需要用到 钩子脚本,用于添加 /dev/ppp等设备 将主机的网卡enp4s0分配给容器使用,根据自己的实际情况更改
同时观看了其自带的CT模板,基本上基于linux流行的开源软件都囊括了,openwrt我觉得应该很快会在官方的“CT模板”中出现,或者说会越来越完善。
2、就发帖提出群晖的lxc模板制作我觉得会很难出现,因为其结构变动太大了,且docker中也没有发现有群晖。

重点参考:
ProxmoxVE 7.0 LXC下搭建openwrt软路由_kangzeru的博客-CSDN博客_lxc安装openwrt
特点:
        1、安全,因为无需网卡直通,所以把pve弄塌的几率很小。
        2、按理应该不限制pve和openwrt的版本。        
        3、工具简单,只需要winscp即可,命令也很少

前言
1、硬件环境
        HP GEN8
        CPU更换为E3-1265L V2
        内存16G
        新添加X540-T2网卡
        
2、软件环境
        pve版本号:7.1-12
        openwrt用的l大截止2022年3月30日源码,
        OpenWrt R22.3.13
        内核:5.15.32
        因为主板上的两个网口分组一直不成功,所以没有开通直通功能

3、实现效果
        A、拨号正常,能获取IPV4、IPV6地址
        B、IPV4、IPV6动态域名正常
        C、AdGuard Home使用正常
        其他没测,我也不需要。但从成品效果来说,应该和实体机安装、虚拟机安装代入效果一样。

因为我的绝大多数功能都是使用黑裙实现的,所以我用的固件是用L大源码自己编译的,我只编译进去了“TTYD终端、AdGuard Home、socat、上网时间控制、动态DNS、网络唤醒(应该用不着)、KMS服务器、UPNP、IPV6“

一、模板取得

要点、必须是***-rootfs.img、***-rootfs.img.gz或者***-rootfs.tar.gz的文件
        ***-rootfs.img、***-rootfs.img.gz需要解包后打包
        ***-rootfs.tar.gz可以直接使用

1、***-rootfs.tar.gz取的
        A、可以到官网或者别人直接索取
        官网地址:https://downloads.openwrt.org/re ... 86-64-rootfs.tar.gz

        B、自己编译
        编译时选中Target Images --->*.tar.gz

2、用下载的***-rootfs.img、***-rootfs.img.gz文件解包、打包
        A、将***-rootfs.img、***-rootfs.img.gz文件用ssh登陆并上传到PVE根目录/root目录下

        B、ssh里解压(***-rootfs.img无需此步骤)
        gzip -d ***-rootfs.img.gz
        
        C、安装解包软件
        apt install squashfs-tools

        D、对得到的img进行解包
        unsquashfs ***-rootfs.img

        E、进入目录,重新打包为pve的CT模板
        cd squashfs-root
        tar zcf ../***-rootfs.tar.gz ./*

        F、上传或复制到PVE的CT模板目录,/var/lib/vz/template/cache。


二、新建LXC容器
1、通过SSH或者是网页端打开PVE终端,执行以下命令创建新容器
pct create *** \                        #“***”是容器编号
        local:vztmpl/***-rootfs.tar.gz \        #“***-rootfs.tar.gz”时CT模板
        --rootfs local-lvm:1 \                        #“1”为虚拟磁盘大小,这里是1G
        --ostype unmanaged \                        #系统类型,之后可在设置文件中修改
        --hostname OpenWrt \                        #容器名称,之后可在设置文件中修改
        --arch amd64 \                                #系统架构,amd64 | arm64 | armhf | i386
        --cores 8 \                                #分配给容器的核心数,我这里分配的是8个,我测试CT模版不需要对某一个容器分配多少,pve会自己调度,所以我通过CT模板建立的虚拟机都是把cpu资源全部分配的。
        --memory 1024 \                                #分配给容器的内存大小,这里是1G。
        --swap 0 \                                #分配给容器的交换区大小,这里是0
        -net0 bridge=vmbr0,name=eth0 -net1 bridge=vmbr1,name=eth1        #我这里分配了两个网卡,bridge=vmbr1对应的是pve网络您创建的虚拟网卡;name=eth1对应的是openwrt中的网卡。

        要点:创建虚拟网卡不要使用您的wan端口,创建虚拟网卡不要使用您的wan端口、创建虚拟网卡不要使用您的wan端口。
三、修改容器设置

1、修改容器配置文件
  vi /etc/pve/lxc/***.conf        #“***:是容器编号

添加以下内容(要点:倒数第二行“lxc.net.1.link: eno2”,“eno2”修改为您的wan端口,端口名称是pve---网络---名称栏物理网卡的名字,不要填成了创建的虚拟网卡名字)

        # 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: eno2
        lxc.net.1.flags: up

2、创建钩子脚本

        A、这里在官方示例guest-example-hookscript.pl的基础上进行修改,大家可以根据需要自行修改

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

        B、在第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";

三、pve防火墙设置

要点:1个端口的防火墙是由“in”和“out”两条规则组成的。
        A、规则“in”
        方向:in
        操作:ACCEPT
        接口:***                #在这里,openwrt中使用的wan口填物理网卡名称,lan口填写虚拟网卡的名称(端口名称在pve---网络---名称栏中查找)
        选中“启用”

        B、规则“out”
        方向:out
        操作:ACCEPT
        接口:***                #这个接口与上条规则的接口相同
        选中“启用”

        举例,如果您有两个端口,一个是“wan”,一个是“lan”,则就是4条规则,“wan”的接口是物理接口名称,“lan”接口是创建的虚拟网卡接口名称。以此类推。

四、启动容器(踩了最多的坑)

执行以下指令
        pct start ***#“***”是容器编号

我启动容器后没有发现任何不正常的现象和提示。
最大的坑就是我设置openwrt过程中(也有SSh进去备份的hosts、ddns、dhcp等配置文件)如果软启动,不是进不去网页界面就是拨号不成功,无意中用冷启动才解决问题,然后一切就变得好通畅了。
同时强烈呼吁大神研究做一个群晖的lxc模板出来。pve安装黑裙cpu必须选“KVM64”,效能损失比较大啊。我的群晖因为要异地文件同步、异地播放视频、迅雷下载等,使用频率很高,以前不觉得,现在感觉就是根刺。







评分

参与人数 2恩山币 +2 收起 理由
killer123 + 1 LXC容器太牛了,跑满千兆CPU 1%,同环境虚.
kangtao022 + 1 感谢你的分享,无论怎样,你都是最无私的人.

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-2 19:51 | 显示全部楼层
我用的软路由cpu1260L,前段时间也是安装LXC版op,PVE是6.4.4的,不知道怎么回事会出现各种奇怪的问题,比如宽带下载速度40M/S,过个2到3天就变20M/S了,更奇怪的是帕斯沃的负载均衡启动不了,自动拨号到时没发现问题,有时候明明软路由联网都正常的,我用向日葵远程连接电脑就是连接不了,测试别家的都可以,最后还是放弃了LXC,安装OP时候选HOST算了懒得搞了CPU占用高点也无所谓了

点评

我刚做好没有测试,刚才测试了一下,群晖迅雷下载最高可以到56M/S,我是300m带宽  详情 回复 发表于 2022-4-2 20:04
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-4-2 20:04 | 显示全部楼层
yang1992 发表于 2022-4-2 19:51
我用的软路由cpu1260L,前段时间也是安装LXC版op,PVE是6.4.4的,不知道怎么回事会出现各种奇怪的问题,比如 ...

我刚做好没有测试,刚才测试了一下,群晖迅雷下载最高可以到56M/S,我是300m带宽

点评

你可以过个几天或者个把星期再试下 也有可能是我这LXC有问题,还有你试下你的OP里面帕斯沃能不能开启负载均衡?开启成功后可以进入节点测速界面 我判断下是不是我用的OP有问题  详情 回复 发表于 2022-4-2 20:42
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-2 20:40 | 显示全部楼层
学习一下,自己折腾了一阵子没搞明白
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-2 20:42 | 显示全部楼层
vsamlee 发表于 2022-4-2 20:04
我刚做好没有测试,刚才测试了一下,群晖迅雷下载最高可以到56M/S,我是300m带宽

你可以过个几天或者个把星期再试下  也有可能是我这LXC有问题,还有你试下你的OP里面帕斯沃能不能开启负载均衡?开启成功后可以进入节点测速界面   我判断下是不是我用的OP有问题
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-2 20:42 来自手机 | 显示全部楼层
正需要,学习一下,多谢
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-2 21:04 | 显示全部楼层
E、进入目录,重新打包为pve的CT模板
        cd squashfs-root
        tar zcf ../***-rootfs.tar.gz ./*
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-2 21:27 | 显示全部楼层

学习一下
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-3 00:44 | 显示全部楼层
正需要,学习一下,多谢
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-3 09:41 | 显示全部楼层
感谢分享
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-3 09:58 | 显示全部楼层
感谢分享
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-3 10:11 | 显示全部楼层
感谢分享,学习学习
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-3 10:34 | 显示全部楼层
或复制到PVE的CT模板目录,
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-3 10:36 | 显示全部楼层
感谢分享, 学习一下
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-4-3 10:52 | 显示全部楼层
感谢分享,学习学习
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2022-10-1 03:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

| 江苏省互联网有害信息举报中心 举报信箱:js12377@jschina.com.cn 举报电话:025-88802724 | 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797
快速回复 返回顶部 返回列表