Loading... # 背景 已经有了ALL IN ONE,上面安装了PVE。这是安装 OpenWrt 作为旁路网关的记录。 题外话 为什么选择 All-in-One 这样的方案?知乎上面有很多 AIO 的劝退贴1,主要的观点例如:部署稳定的AIO需要比较高的技术门槛,并且一旦出现故障会影响家庭网路,数据安全很难保证云云,这些对于小白来说确实是不小的问题。然而,作为一个相关领域的从业人员,并且有玩过 VPS 和虚拟机经验的我来说,还是要体验一次。 我的主要需求一个是旁路网关,使用旁路网关的方式可以避免一出问题全屋上不了网的情况了。 ## 组网 目前计划的网路连接  开始部署 ## 准备 1. 安装好的 PVE 系统 2. OpenWrt 系统镜像。为了扩容方便,选择使用 Ext4 分区的 generic-ext4-combined-efi.img.gz 文件。[下载页面](https://www.nodeseek.com/jump?to=https%3A%2F%2Farchive.openwrt.org%2Freleases%2F23.05.4%2Ftargets%2Fx86%2F64%2F),在 root 首页找最新版本 3. GParted Live CD 镜像,用来修改系统分区大小。[下载页面](https://www.nodeseek.com/jump?to=https%3A%2F%2Fgparted.org%2Fdownload.php) ## 创建虚拟机 Openwrt 需要的资源并不多,可以根据自己需要划分内存和 CPU。选择的镜像是 efi 的,所以 BIOS 要选择 UEFI 的,不需要勾选添加 EFI 磁盘。在磁盘页面也不需要添加磁盘,稍后会从镜像导入。 1. 选中数据中心,点击“创建虚拟机”按钮,勾上“高级”,勾上“开机自启动”(软路由一般情况下开机自启动较好),名称填入虚拟机名称openwrt,点击“下一步”  2. 操作系统选择“Linux”,版本选择“6.X-2.6 Kernel”即可,先不选择介质,点击“下一步”  3. 系统选择默认seabios即可,不选择存储,稍后会从镜像导入。点击“下一步”,磁盘删除掉。   cpu默认1,至少改成2核,最多和物理线程一样(我是2核心4线程,可以改到4,先用的2)  下一步内存修改2048到1024,即为1GB  网络默认半虚拟化。目前就1个网卡。  4. 登录 PVE,下载镜像文件,并解压: ```bash cd /var/lib/vz/template/iso 本地下载后上传 gunzip openwrt-23.05.4-x86-64-generic-ext4-combined-efi.img.gz ``` 将磁盘镜像文件导入到刚刚创建的虚拟机: ```cpp # qm disk import <vmid> <source> <storage> [OPTIONS] qm disk import 100 openwrt-23.05.4-x86-64-generic-ext4-combined-efi.img local-lvm ``` 然后回到 PVE 管理网页,选中新的磁盘双击,添加。  现在可以开机进入系统了。但是不急,默认磁盘的剩余空间很小,放不了很多东西。为了以后考虑,还要给磁盘扩容。 ## 磁盘扩容 选中硬盘 > 磁盘操作 > 调整磁盘大小,扩大虚拟磁盘的大小为2G。  接下来是调整分区大小。这一步是可以用命令做的,我偷了一点懒,懒得学分区操作的命令,用了图形化分区工具 GParted,操作起来比较简单。 先在 PVE 的 ISO 镜像储存界面上传 GParted 镜像,然后给 OpenWrt 的虚拟机的 CD/DVD 添加上。在 选项 > 引导顺序 中调整到光盘最高。   进入系统之后,操作很方便了。根据提示修复错误,然后右键 rootfs 分区调整大小,拖动箭头,把剩余空间拉满就可以了。  点击修复/fix  最后点击打勾保存关机。 然后我们在左上角的添加,网络设备中,添加第二块网卡,依旧默认选择半虚拟化就行。  2个虚拟网卡接入了一个网桥,实际是一个物理网口。 移除光盘,调整启动顺序,  重新启动,就能够进入系统了。 ## 修改ip 进入openwrt的shell页面, vi /etc/config/network 找到config interface lan这一段代码 在option ipaddr 这里把原来的'192.168.1.1' 改成你需要的ip,比如我这里改成192.168.31.2 保存退出 在shell页面输入reboot,重启openwrt, 查看ip是否正确配置:  现在已经正确获取了 IP 地址,可以用 SSH 连接或者浏览器访问管理页面了。 一些基础配置: ```bash # 软件源换成清华镜像源 sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf # 更新软件包索引 opkg update # 中文包 opkg install luci-i18n-base-zh-cn opkg install luci-i18n-firewall-zh-cn # mDNS 支持,安装后可以用 http://openwrt.local 打开管理页面 # opkg install avahi-daemon-service-http # 未测试,笔者依旧直接ip浏览器打开 ``` 在浏览器中输入你刚才改好的ip地址,访问openwrt的管理页面。 在 OpenWrt 网页管理页面,网络 > 接口 里面,把 DHCP 相关的设置关掉,因为旁路由不需要提供 DHCP 服务。  ## 终端配置 有两种办法,一种是在设备上手动设置网关为软路由的IP地址,另一种是在主路由上面把 DHCP 默认网关设置为软路由的 IP。为了稳定,我用手动配置的办法。 1. 先测试没有修改,自动dhcp  可以看到,直接回到主路由31.1访问 2. 修改网关和dns给旁路网关  3. 测试效果  可以看到第一跳、第二跳、第三跳分别是旁路网关、我的硬路由和光猫,然后是联通的网络,最后到达目标地址。  Last modification:October 9, 2024 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏