生信喵 发表于 2024-8-15 13:43:57

PVE 安装 OpenWrt 作为旁路网关

本帖最后由 生信喵 于 2024-8-15 16:40 编辑

# 背景

已经有了ALL IN ONE,上面安装了PVE。这是安装 OpenWrt 作为旁路网关的记录。

题外话
为什么选择 All-in-One 这样的方案?知乎上面有很多 AIO 的劝退贴1,主要的观点例如:部署稳定的AIO需要比较高的技术门槛,并且一旦出现故障会影响家庭网路,数据安全很难保证云云,这些对于小白来说确实是不小的问题。然而,作为一个相关领域的从业人员,并且有玩过 VPS 和虚拟机经验的我来说,还是要体验一次。

我的主要需求一个是旁路网关,使用旁路网关的方式可以避免一出问题全屋上不了网的情况了。

# 组网

目前计划的网路连接
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/7d2be3875ea31612b224262fdc012bda_1723700672_7406.png)

开始部署

# 准备

1. 安装好的 PVE 系统
2. OpenWrt 系统镜像。为了扩容方便,选择使用 Ext4 分区的 generic-ext4-combined-efi.img.gz 文件。下载页面`https://archive.openwrt.org/releases/23.05.4/targets/x86/64/`,在 root 首页找最新版本
3. GParted Live CD 镜像,用来修改系统分区大小。下载页面`https://gparted.org/download.php`

# 创建虚拟机

Openwrt 需要的资源并不多,可以根据自己需要划分内存和 CPU。选择的镜像是 efi 的,所以 BIOS 要选择 UEFI 的,不需要勾选添加 EFI 磁盘。在磁盘页面也不需要添加磁盘,稍后会从镜像导入。

1. 选中数据中心,点击“创建虚拟机”按钮,勾上“高级”,勾上“开机自启动”(软路由一般情况下开机自启动较好),名称填入虚拟机名称openwrt,点击“下一步”
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/e066e5ae41bf3f54b2a5ef3773f61d4a_1723700672_9193.png)
2. 操作系统选择“Linux”,版本选择“6.X-2.6 Kernel”即可,先不选择介质,点击“下一步”
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/0f5586d93bae4f01c9a87aa6725aefee_1723700672_5982.png)
3. 系统选择默认seabios即可,不选择存储,稍后会从镜像导入。点击“下一步”,磁盘删除掉。
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/3e033a2ef00aa07781619c7deee9a79e_1723700672_4530.png)
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/574a682c922a787c81a1f642b380bff1_1723700672_7847.png)
   cpu默认1,至少改成2核,最多和物理线程一样(我是2核心4线程,可以改到4,先用的2)
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/2e4dd1156bcf0d122b084c79ac2b117e_1723700672_5772.png)
   下一步内存修改2048到1024,即为1GB
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/562854df817f3626c10976b73f072524_1723700673_9727.png)
   网络默认半虚拟化。目前就1个网卡。
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/9974c5980ae89929fe951ae5bdb8e2de_1723700673_2832.png)
4. 登录 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>
qm disk import 100 openwrt-23.05.4-x86-64-generic-ext4-combined-efi.img local-lvm
```

然后回到 PVE 管理网页,选中新的磁盘双击,添加。
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/a88cafe66a2bc4277d61c50dde7c16fa_1723700673_8709.png)
现在可以开机进入系统了。但是不急,默认磁盘的剩余空间很小,放不了很多东西。为了以后考虑,还要给磁盘扩容。

# 磁盘扩容

选中硬盘 > 磁盘操作 > 调整磁盘大小,扩大虚拟磁盘的大小为2G。
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/ec9967c81a32902d481d72dbe5a8f641_1723700673_7578.png)
接下来是调整分区大小。这一步是可以用命令做的,我偷了一点懒,懒得学分区操作的命令,用了图形化分区工具 GParted,操作起来比较简单。

先在 PVE 的 ISO 镜像储存界面上传 GParted 镜像,然后给 OpenWrt 的虚拟机的 CD/DVD 添加上。在 选项 > 引导顺序 中调整到光盘最高。
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/5d0f03a237f345a47712c55dd881758c_1723700673_1126.png)
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/09d70b37fa02c0791431f35520f0e321_1723700673_7919.png)
进入系统之后,操作很方便了。根据提示修复错误,然后右键 rootfs 分区调整大小,拖动箭头,把剩余空间拉满就可以了。
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/d65ac4481027f7ae3b5b7b64d834345a_1723700674_9469.png)
点击修复/fix
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/18f799fd0e0c16c9428335aa42e74ae8_1723700674_1787.png)
最后点击打勾保存关机。

然后我们在左上角的添加,网络设备中,添加第二块网卡,依旧默认选择半虚拟化就行。
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/8e6fd08a3cc2db9e5c34af17f8ec4f91_1723700674_6859.png)

2个虚拟网卡接入了一个网桥,实际是一个物理网口。

移除光盘,调整启动顺序,
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/c2fc9893a6833033f5b21e1d06b61b43_1723700674_3173.png)
重新启动,就能够进入系统了。

# 修改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是否正确配置:
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/45292c847cd5f7fe6bdd8e6f9bbd7044_1723700674_6964.png)
现在已经正确获取了 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 服务。
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/78d780fc9f026e1ed117d8ae18f8883b_1723700674_7182.png)

# 终端配置

有两种办法,一种是在设备上手动设置网关为软路由的IP地址,另一种是在主路由上面把 DHCP 默认网关设置为软路由的 IP。为了稳定,我用手动配置的办法。

1. 先测试没有修改,自动dhcp
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/2ea2905f0cc694cceabbec5a00c92919_1723700675_3771.png)
   可以看到,直接回到主路由31.1访问
2. 修改网关和dns给旁路网关
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/a98a7d54f138191ea6869d50a6bf2566_1723700675_2811.png)
3. 测试效果
   !(data/attachment/forum/plugin_zhanmishu_markdown/202408/75c6464dfeb18de2cfc3d46fd2401f74_1723700676_7067.png)
   可以看到第一跳、第二跳、第三跳分别是旁路网关、我的硬路由和光猫,然后是联通的网络,最后到达目标地址。
页: [1]
查看完整版本: PVE 安装 OpenWrt 作为旁路网关