[i=s] 本帖最后由 生信喵 于 2024-8-15 16:40 编辑 [/i]<br />
<br />
背景
已经有了ALL IN ONE,上面安装了PVE。这是安装 OpenWrt 作为旁路网关的记录。
题外话
为什么选择 All-in-One 这样的方案?知乎上面有很多 AIO 的劝退贴1,主要的观点例如:部署稳定的AIO需要比较高的技术门槛,并且一旦出现故障会影响家庭网路,数据安全很难保证云云,这些对于小白来说确实是不小的问题。然而,作为一个相关领域的从业人员,并且有玩过 VPS 和虚拟机经验的我来说,还是要体验一次。
我的主要需求一个是旁路网关,使用旁路网关的方式可以避免一出问题全屋上不了网的情况了。
组网
目前计划的网路连接
开始部署
准备
- 安装好的 PVE 系统
- OpenWrt 系统镜像。为了扩容方便,选择使用 Ext4 分区的 generic-ext4-combined-efi.img.gz 文件。下载页面
https://archive.openwrt.org/releases/23.05.4/targets/x86/64/
,在 root 首页找最新版本
- GParted Live CD 镜像,用来修改系统分区大小。下载页面
https://gparted.org/download.php
创建虚拟机
Openwrt 需要的资源并不多,可以根据自己需要划分内存和 CPU。选择的镜像是 efi 的,所以 BIOS 要选择 UEFI 的,不需要勾选添加 EFI 磁盘。在磁盘页面也不需要添加磁盘,稍后会从镜像导入。
- 选中数据中心,点击“创建虚拟机”按钮,勾上“高级”,勾上“开机自启动”(软路由一般情况下开机自启动较好),名称填入虚拟机名称openwrt,点击“下一步”
- 操作系统选择“Linux”,版本选择“6.X-2.6 Kernel”即可,先不选择介质,点击“下一步”
- 系统选择默认seabios即可,不选择存储,稍后会从镜像导入。点击“下一步”,磁盘删除掉。
cpu默认1,至少改成2核,最多和物理线程一样(我是2核心4线程,可以改到4,先用的2)
下一步内存修改2048到1024,即为1GB
网络默认半虚拟化。目前就1个网卡。
- 登录 PVE,下载镜像文件,并解压:
cd /var/lib/vz/template/iso
本地下载后上传
gunzip openwrt-23.05.4-x86-64-generic-ext4-combined-efi.img.gz
将磁盘镜像文件导入到刚刚创建的虚拟机:
# 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 连接或者浏览器访问管理页面了。
一些基础配置:
# 软件源换成清华镜像源
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。为了稳定,我用手动配置的办法。
- 先测试没有修改,自动dhcp
可以看到,直接回到主路由31.1访问
- 修改网关和dns给旁路网关
- 测试效果
可以看到第一跳、第二跳、第三跳分别是旁路网关、我的硬路由和光猫,然后是联通的网络,最后到达目标地址。