跳转到内容

OPNsense 部署:赛博门神的唤醒仪式

🌱 创建: 2026/03/30 ⏱️ 更新: 2026/05/22

在咱们 PVE 地基打好、硬件直通完毕之后,现在的 N100 就像是一个四肢发达但没有大脑的肌肉莽汉。今天,我们要给它注入真正的灵魂。

OPNsense 是一个集成了路由和尖端网络保护技术的防火墙平台。它致力于让数字安全变得触手可及。通过这个免费的平台,你可以获得那些昂贵的商业级防火墙所具备的所有功能,甚至更多。最重要的是,它的代码完全开源且透明可验证,背后有一个庞大且活跃的社区在共同开发和维护。 —— 摘自官方文档

官方的介绍非常严谨专业,包工头用咱们工地的大白话给大家稍微翻译一下:

如果说咱们平时用的普通家用路由器,就像是小区门口帮忙开门、看大门的热心大爷,主打一个省心管用;那 OPNsense,就是咱们为了保护核心数据,专门给机房部署的一套专业级安保系统

在软路由界,大家最熟悉的可能是 OpenWrt(擅长插件和科学折腾)或者 iKuai(擅长流控)。那大家可能会问,现在好用的软路由系统这么多,包工头为啥偏偏挑了 OPNsense 这块稍微有点硬的骨头来啃?

其实原因很简单,还是咱们工地那句老话:折腾即正义! 既然咱们硬件都上了 PVE 虚拟机了,那就不能只满足于“能连上 Wi-Fi 就行”。

因为它极其安全、极其稳定、且极其专业。作为企业级防火墙 pfSense 的孪生兄弟,OPNsense 拥有更现代的 WebGUI 和极其严苛的规则匹配引擎。在咱们的 V2.0 赛博神经网络中,它不仅是网关,更是整个 10.0.0.x 独立战区的“安保大队长”。没有它的允许,任何数据包都别想跨过雷池一步。

OPNsense 是一个极其纯粹的防火墙,我其实就是想把它当成咱们进阶学习底层网络架构的实战靶场。在接下来的系列里,我要带着大家一步步在里面划分 VLAN 隔离区、配置严谨的防火墙拦截规则。虽然它门槛稍微高一点,配错一步可能就会导致全家断网翻车,但这恰恰是学习的最好方式。把它的网络逻辑彻底摸透了,以后不管面对什么样的网络架构,咱们都能心里有底。咱们主打一个在废墟里边拆边学!


在召唤门神之前,请确保你已经准备好了以下祭品:

  • 完好的地基: 已经成功安装 PVE,并且开启了 IOMMU 直通(参考上一篇 PVE 部署)。
  • 下载镜像: 从 OPNsense 官网下载最新的安装镜像。
  • 理清网口: 明确你的 N100 哪个物理网口是连光猫的(我们将直通它作为 WAN),哪个虚拟网桥是连内网的(vmbr0 作为 LAN)。
  • 耐心与速效救心丸: FreeBSD 的黑底白字安装界面可能会让你感到不适。
  • 科学上网环境: 能避免各种奇怪的问题。

📋 赛博工地勘测表 (Network Blueprint)

Section titled “📋 赛博工地勘测表 (Network Blueprint)”

在正式抡大锤之前,请你找张纸、或者打开记事本,把下面这张表里的参数替换成你自己家里的实际情况

  • 安装前的PVE网络图
上传 ISO
root@pve-studio:~# cat /etc/network/blueprint.yaml
物理实体 / 逻辑标识规划参数 (名称/IP)角色剧本 & 包工头备注
🔌 物理网口 A
nic0 (如 enp1s0)
桥接至 vmbr0🟢 PVE 默认生命线
PVE 安装时默认使用的物理网口。目前插着网线,连着你的主交换机/管理电脑。
🌁 虚拟交换机
vmbr0
192.168.100.50🌉 赛博金桥
绑定在物理 A 口上的虚拟网桥。它身上挂着咱们 PVE 宿主机的管理后台 IP。
🔌 物理网口 B
nic1 (如 enp2s0)
准备 PCIe 直通🛑 吃灰待命
目前闲置的另一个物理网口。即将被我们无情剥夺,直通给 OPNsense 作为 WAN 口连光猫。
🛡️ OPNsense
WAN 口 (对外)
192.168.100.110
DHCP / 静态
🌐 海关总署
OPNsense 霸占物理 B 口后,向老村长(光猫)讨要的上网身份证。
🛡️ OPNsense
LAN 口 (对内)
10.0.0.1
VLAN 1
👑 战区总司令
OPNsense 挂在 vmbr0 上的内网网关地址。未来咱们 10 段私有后院的绝对掌权者。
💻 指挥中心
Mac / Win 电脑
192.168.100.4
静态 IP
👷‍♂️ 包工头专座
你现在正敲着键盘的这台管理电脑的 IP。施工期间必须和 PVE 在同一网段,防止失联。

玩转企业级防火墙,不看官方文档等于盲人摸象:


🎬 施工演示录像 (Video Walk-through)

Section titled “🎬 施工演示录像 (Video Walk-through)”
正在嗅探浏览器语言并加载赛博录像...

🔨 核心施工流程 (Installation Steps)

Section titled “🔨 核心施工流程 (Installation Steps)”

接下来,我们要在这个废墟上一步步浇筑赛博堡垒的核心。为了防止大家脑供血不足,包工头把整个浩大的工程拆分成了多个极其明确的施工阶段。请一步一动,严格按图纸施工。

1. 获取“安保大队长”的灵魂 (下载与解压)

Section titled “1. 获取“安保大队长”的灵魂 (下载与解压)”

第一步,去 OPNsense 官网把这扇“赛博防盗门”买回来。

  1. 精准提货 (下载) 打开官网的 Download 下载页面,按照以下参数选择:

    • 架构 (Architecture): 选择 amd64
    • 镜像类型 (Image Type): 选择 dvd(敲黑板!这是包含完整安装向导的 ISO 文件,千万别下成 nano 或 serial)。
    • 镜像位置 (Mirror Location): 随便挑个离你近的节点。
  2. 底层解压 (Mac 用户防坑指南) 下载下来的通常是一个 .bz2 高强度压缩包。PVE 不认识压缩包,你必须提取出里面的 .iso 原文件。Mac 系统自带的归档实用工具解压它会直接报错,咱们用底层黑魔法解决:

    • 打开 Mac 的 终端 (Terminal)
    • 输入 bunzip2 (注意:bunzip2 后面必须敲一个空格!)。
    • 把下载的那个 OPNsense-XX.X-dvd-amd64.iso.bz2 文件直接拖进终端窗口,路径会自动生成。命令看起来像这样:
      Terminal window
      bunzip2 <你的bz2文件路径>
    • 按下回车。等待几秒,你会发现原位置的压缩包消失了,取而代之的是极其纯净的 .iso 砖头。
  3. 运砖入库 (上传至 PVE) 登录 PVE 的 Web 后台,点击左侧数据中心里的 local (pve-studio) 存储,选择 ISO Images,点击 Upload,将你解压好的 ISO 文件传进 PVE 的肚子里。

上传 ISO

2. 捏一个极其讲究的躯壳 (创建虚拟机)

Section titled “2. 捏一个极其讲究的躯壳 (创建虚拟机)”

在 PVE 右上角点击 Create VM (创建虚拟机),接下来我们要严格按照防爆指南进行参数配置。

  1. General (常规基础设置):划分地皮与申领门牌

    咱们挨个核对这块“赛博地皮”和“门牌”的信息。

    • 节点 (Node):这就相当于这栋楼打算盖在工地的哪块地皮上。咱们这台 N100 小主机是单打独斗,所以这里默认就是你当前的主机名(比如 pve),直接略过。
    • VM ID (虚拟机唯一标识符)
      • 包工头强推:老老实实用默认的 100
      • 详细解读:这是 PVE 宿主机用来标记每一个虚拟机的唯一数字编号。就像是赛博工地的“门牌号”。PVE 的规矩是从 100 开始往上递增。
      • 为什么要用 100?:这是咱们整个Homelab堡垒的第一道防盗门(入口网关)。包工头的习惯是把最基础、最核心的网络设备放在 ID 列表的最顶端。不仅看着整齐利落,日后如果需要敲命令行去备份、迁移、排障,100 这个数字极其好记,绝对不会搞混。图吉利改个 101110 都行,只要别跟以后的机器冲突。
    • 名称 (Name):也就是给这台机器挂个门匾。建议老老实实敲上 OPNsense 或者 Router。听包工头一句劝,千万别在这里用中文。哪怕你拼音没学好也别写中文。不然后期排查日志、接入 Prometheus 监控或者敲命令行的时候,乱码和报错绝对会教你做人。

    激活赛博保命符 (高级选项设置)

    刚才让你勾选“高级”就是为了这两项,它们直接决定了你以后是能半夜安稳睡觉,还是在老婆无情的“网络瘫痪Gank”中绝望起床重装。

    • 开机自启动 (Start at boot)
      • 操作指导:打死也要勾上。
      • 详细解读:OPNsense 可是咱们全村的希望,是整个工地的网络大动脉。大家想想,Homelab 哪有不偶尔停电、重启的?万一哪天深夜自动更新重启了,或者意外跳闸又来电了,如果这台软路由不跟着自动开机,那你全家的所有网络(Wi-Fi、NAS、影音)依然是瘫痪的。到时候老婆发现连不上 Wi-Fi,绝对顺手就把你这台破机器的电源给拔了!
    • 启动/关机顺序 (Start/Shutdown order)
      • 操作指导:在这里填上数字 1
      • 详细解读:这就叫“赛博世界的绝对阶级”。还记得咱们架构图里那个致命的“死锁警告”吗?“先有鸡还是先有蛋”。在 All-in-One 环境下,Proxmox 的全局网络甚至都指望它的网关和 DHCP 服务。
      • 为什么是 1?:这个数字的意思是,只要 PVE 一通电,它必须是全工地第一个起床干活的,没有任何商量余地!只有它先起来把网络打通了、IP 发下去了,后面的 NAS、Docker、K8s 集群才能顺利拿到网。它要是不起,后面那帮小弟全得原地抓瞎,整个系统就会Boom掉。
    上传 ISO
  2. OS (操作系统镜像注入)

    这一步要把咱们准备好的防盗门搬进框架里。

    • ISO 镜像 (ISO Image):在下拉菜单的存储盘里,选中你刚才上传的 OPNsense 安装包。
    • 类别 (Type):**选 Other。**PNsense 的底层是 FreeBSD,OS (操作系统)选择Other更好。
    上传 ISO
  3. System (系统底层架构)

    进入系统界面,这里隐藏着决定你能否榨干硬件性能的几个大坑。

    • 机型 (Machine)直接换成 q35
      • 包工头原理解析:下拉菜单默认是 i440fx,这是一套上世纪 90 年代的老古董主板架构,兼容性是好,但性能极其拉胯。别忘了咱们那张 V2.0 终极图纸,咱们等下是要把物理网卡 B 口硬件直通 (PCIe Passthrough) 给 OPNsense 的!q35 是现代化的主板架构,对 PCIe 直通支持极其完美。想跑满 N100 的千兆甚至 2.5G,必须选它。
    • QEMU 代理 (QEMU Agent)务必打勾。 它能让 PVE 和虚拟机互通有无,日后在 PVE 后台就能直接看到路由器的 IP 并且实现极其优雅的关机操作。
    • BIOS:将其改成现代的 OVMF (UEFI)
    • EFI 存储 (EFI Storage):因为选了 UEFI,必须给它配个引导盘,下拉选择你的本地存储(比如 local-lvm)。
    • 预注册密钥 (Pre-Enrolled keys)极其重要,必须取消勾选! 不然开机会卡极其恶心的安全启动验证。其他全部保持默认即可。
    上传 ISO
  4. Disks (磁盘阵列与性能调优)

    这一步我们要给大队长分配一个“赛博储物间”,重点在于底层总线的选择和固态硬盘的优化。

    • 总线/设备 (Bus/Device)快住手!把默认的 IDE 换成 SCSI
      • 包工头排雷:下拉菜单默认是 IDE,这是几十年前老物理硬盘用的总线。因为 PVE 底层默认使用极其高效的 VirtIO SCSI 存储控制器,咱们在这里必须配套改成 SCSI,这样磁盘读写才能跑在底层专线上,效率直接拉满。后面的设备号 0 保持默认。
    • 存储 (Storage):选择你用来存放虚拟机的硬盘仓库,通常是 local-lvmlocal
    • 磁盘大小 (Disk size)建议填写 3240
      • 包工头容量指南:OPNsense 官方给出的最小“生存标准”是 8GB,豪华“舒适标准”是 120GB。如果你以后想装各类网络插件、存几天的防火墙拦截日志或者搞流量深度审计,8GB 绝对捉襟见肘。填 32GB 就像是在户型里隔出一个正合适的小储物间,既不浪费 N100 宝贵的硬盘空间,也绝对够用。
    • 丢弃 (Discard)必须勾选。 相当于在 PVE 底层开启了 TRIM 垃圾自动回收,能大幅延长你真实物理 SSD 的寿命。
    • SSD 仿真 (SSD simulation)必须勾选。 让虚拟机内部系统明确知道自己跑在固态硬盘上,从而激活系统的底层读写优化。
    • 其他内容保持默认即可。
    上传 ISO
  5. CPU (干活的工人与算力透传)

    现在咱们给这台防火墙分配“干活的工人”。算力分配得好不好,直接决定了以后家里的网速能不能起飞。

    • 插槽 (Sockets):保持 1 就行。咱们 N100 物理上也只有一个插座。
    • 核心 (Cores):结合咱们的“健身房超售”理论,包工头强烈建议填 2 虽然官方说 1 核也能跑,但咱们后续要跑满千兆宽带、还要直通网卡,给 2 个核心能让它在处理高频数据包时更加游刃有余。剩下的核心 PVE 会自动调度给其他小弟,不用担心不够分。
    • 类别 (Type)极其重要,直接拉到最上面选 host
      • 包工头硬核解析:这是最容易被新手忽略的一个致命选项。默认选的通用型号(如 x86-64-v2-AES)会隐藏掉 N100 的很多高级特性。OPNsense 极其依赖一项叫 AES-NI 的硬件加速技术。选了 host,就是告诉虚拟机:“别装了,直接把宿主机 N100 的所有指令集全盘透传进去!”有了它,以后跑加密流量、做 VPN 时 CPU 占用会大幅下降,网速直接起飞。这就是咱们 N100 的原生战力。
    • 启用 NUMA保持关闭。 咱们 N100 这种单路处理器,这个勾不用打。
    • Extra CPU Flags:通通保持默认。在 PVE 的世界里,“少即是多”,默认的配置往往是最稳的。
    上传 ISO
  6. Memory (脑容量分配与专款专用)

    内存分得好不好,直接关系到防火墙会不会在流量高峰期“脑梗死”。在 PVE 里,内存是用 MiB 做单位的(口诀:1024 MiB = 1 GB)。

    填数字之前,咱们必须先解决底下那个极其致命的底层大坑:Ballooning 设备 (气球内存)

    • 气球内存是干啥的? 简单来说,勾上它,PVE 就可以在宿主机内存告急的时候,像抽气球一样动态把虚拟机的内存强制“借”走去救急。
    • 为什么 OPNsense 绝对不能用? 气球驱动是给 Linux 量身定制的,但 OPNsense 的底层是极其倔强的 FreeBSD。FreeBSD 对气球内存的支持非常差,如果在处理大流量时被 PVE 强行“抽血”,内核极容易反应不过来直接崩溃,导致全家网络瞬间断流,且无法自我恢复。

    💡 包工头内存分配铁律:断其后路,专款专用。

    1. 第一步:必须取消勾选 Ballooning! 彻底断掉 PVE 动态抽血的念想。
    2. 第二步:填写内存大小。 * 包工头强烈建议:如果你的物理机内存家底富裕,大家最好是给到 4096 (4GB) 或者 4GB 以上!这样能保证未来加装各种高阶网络审计插件时绝对丝滑。
      • N100 工地实操(妥协版):由于咱们这台 N100 总共只有 12GB 内存,扣掉 PVE 自身,后面还要跑极其吃内存的 K3s 和 Docker 集群。为了顾全大局,包工头这里演示只填 2048 (2GB)。只要不开企业级重度入侵检测,对于基础路由来说也绝对够用。
      • 核心逻辑:在防火墙这种保命设备上,“给得少但固定”远比“给得多但随时会被抢走”要稳定一万倍。关掉气球,死死锁住,主打一个稳如老狗。
    上传 ISO
  7. Network (网络桥接与赛博套娃警告)

    好,现在咱们给这扇防盗门插上第一根网线。

    • 桥接 (Bridge)保持默认的 vmbr0
      • 包工头图纸复习:大家还记得咱们 V2.0 的架构图吗?vmbr0 对应的是 N100 插着管理网线的物理网口 A。这一步,咱们实际上是在给 OPNsense 创建它对内的 LAN 口。通过这个口,它才能和你的管理电脑、底下的集群通信。
    • 模型 (Model)快喊停!务必改选为 VirtIO (半虚拟化)
      • 包工头排雷:下拉菜单默认可能会选 Intel E1000,那是给上个世纪老机器模拟用的。VirtIO 是 PVE 和虚拟机之间的数据快车道。选了它,网速损耗最小,CPU 占用最低。想跑满千兆甚至 2.5G,必须选它。
    • 防火墙 (Firewall)极其关键,把这个勾点掉!
      • 拒绝赛博套娃:咱们现在装的 OPNsense 本身就是企业级防火墙。如果你在 PVE 层面再给它勾上一个防火墙,那就成了“防火墙里的防火墙”。这种“赛博套娃”会导致底层规则互相打架,引发极其诡异的断网故障。把安全交给专业团队,PVE 这边的过滤直接关掉。
    上传 ISO
  8. Confirm (竣工确认与点火警告)

    网络设置完成后,会来到最后的确认界面。把咱们刚才填写的核心参数最后扫一眼。

    • 创建后启动 (Start after created)极其重要,千万不要打勾!
      • 包工头警告:咱们的这扇“赛博防盗门”现在只有一条对内的腿(LAN 口),用来接光猫的物理外网口(WAN 口)还没给它安上呢!如果你现在就勾选让它开机,它会像个无头苍蝇一样找不到外网接口,等会再加网卡极其容易导致系统底层接口错乱。先让它乖乖躺在手术台上。

    全部确认无误后,直接点击 【完成 (Finish)】

至此,OPNsense 的赛博躯壳彻底捏造完毕!准备进入下一步的重头戏:PCIe 硬件直通。


3. 确立夺权顺位 (调整引导顺序)

Section titled “3. 确立夺权顺位 (调整引导顺序)”

虚拟机捏好之后,千万先别急着开机! 现在的它硬盘里空空如也,如果你直接给它通电,它会像个傻子一样盯着空硬盘,然后给你抛出一个找不到系统的黑屏报错。

我们必须先修改它的底层逻辑,让它开机第一件事,就是去读咱们刚刚买回来的安装盘。

  1. 进入选项菜单 在左侧选中咱们刚建好的 OPNsense 虚拟机 (VM 100),点击右侧菜单栏的 【选项 (Options)】
  2. 锁定引导顺序 在右侧的列表中找到 【引导顺序 (Boot Order)】,双击打开它。
  3. 强行篡位 (拖拽 ISO 至榜首) 弹出的窗口里,你会看到默认硬盘是排在第一位的。找到那个挂载着 OPNsense ISO 镜像的光驱设备(通常叫 ide2 或者 sata1),用鼠标按住它左侧的拖动图标,将它硬生生拖拉到绝对的第一行
  4. 确保勾选并保存 确认这行 ISO 设备前面的框是 打上勾 的状态(不打勾等于没启用),然后点击 【OK】 保存。

把安装光盘推上第一顺位后,咱们再去干另一件极其硬核的大事:打通物理外网通道。


4. 打通任督二脉 (物理网卡精准直通)

Section titled “4. 打通任督二脉 (物理网卡精准直通)”

现在,我们要把物理网口 B 直通给虚拟机。但当你点击虚拟机的 【硬件】 -> 【添加】 -> 【PCI 设备】,点开设备下拉框时,你会发现里面有一大堆名字一模一样的 Network controller

这时候网口 B 到底对应哪个设备?别猜,先关掉这个页面!包工头教你一个绝对不会选错的笨办法。

  1. 物理插线与服务重启 (锁定真实 WAN 口) 进入 PVE 左侧节点的 【网络 (Network)】 界面。

    • 你会看到屏幕上有 nic0nic1nic2 等网卡。其中 vmbr0 从属于 nic0,且状态是运行中 (Active)。这说明 nic0 就是咱们的 PVE 管理口(A 口),绝对不能动。
    • 剩下的 nic1nic2 目前都是非运行中。怎么确认谁是 B 口?
    • 实操绝招:找一根连着光猫或电脑的网线,直接插进你想要的 WAN 口(B 口)。
    • 刷新状态:网线插好后,PVE 界面不会自动刷新。咱们点开右上角的 【Shell (后台终端)】,执行这行优雅的命令来重启网络服务(无需重启整台物理机):
      Terminal window
      systemctl restart networking
    • 执行完毕后,刷新一下网页。此时你会看到其中一个网卡(比如 nic1)的状态变成了运行中。破案了,nic1 就是我们要的 B 口!
  2. 获取底层身份证 知道了逻辑名称 nic1,咱们继续在 Shell 终端里拿它的底层 PCI 身份证。

    • 执行这条探针命令:
      Terminal window
      ethtool -i nic1
    • 在输出的信息中,找到 bus-info: 这一行。大家可以看到后面跟着一串数字,比如 0000:03:00.0。把它复制或记下来。
  3. 对号入座,执行直通 现在,咱们再次回到虚拟机的 【硬件】 -> 【添加】 -> 【PCI 设备】 界面。

    • 设备 (Device):点开下拉菜单,直接去对刚才记下的 PCI 号(0000:03:00.0)。有了这串身份证,天王老子来了也不会选错。
    • 所有功能 (All Functions)必须打勾。确保网卡硬件特性完整传递。
    • ROM-Bar:保持默认打勾。
    • PCI-Express必须打勾。让直通网卡跑满最高物理带宽。

最后点击 【添加】。至此,OPNsense 真正拥有了硬刚外网的物理接口!


5. 召唤大队长 (控制台底层安装)

Section titled “5. 召唤大队长 (控制台底层安装)”

启动虚拟机,准备迎接 FreeBSD 极其复古的安装洗礼。

  1. 选择键盘布局 第一个界面是 Keymap Selection,保持默认配置,直接回车即可。
  2. 选择文件系统 系统会让你在 ZFS 和 UFS 之间选择。简而言之,UFS 比较老牌省资源,ZFS 是现代文件系统,支持快照等高级功能。我们直接选中 ZFS,回车。
  3. 无视内存警告 此时系统可能会弹窗提示 ZFS 推荐至少 3000MB 内存,而我们只分配了 2048MB。不用担心,直接选择 Continue (继续安装)。
  4. 选择阵列模式 在 ZFS 配置中,选择第一个 stripe (条带化),这也是单盘的默认配置。
  5. 选择目标磁盘 界面会列出我们的虚拟硬盘。用方向键选中它,按空格键选中(行首会出现一个星号 *,然后敲回车继续。
  6. 抹除数据确认 系统会弹出红色警告,提示将抹除磁盘上的所有内容。选中 YES,静静等待进度条跑完。
  7. 设置 Root 密码 安装完成后,系统会提示设置 root 密码。盲打输入你想要的密码(屏幕不会显示),回车后再确认一次。
  8. 停机并拔除安装盘 密码设置完毕后,选择 Complete Install

6. 接口纠偏 (重新分配 WAN 与 LAN)

Section titled “6. 接口纠偏 (重新分配 WAN 与 LAN)”

重新开机跑完代码后,我们会来到 OPNsense 的控制台主菜单。正如之前提到的,由于 PVE 网桥和直通网卡加载顺序的问题,此时 WAN 口和 LAN 口通常是反着的,我们需要手动修正。

  1. 系统登录login: 提示符处输入 root,密码输入你刚才设置的管理员密码,回车登录。
  2. 进入接口分配模式 在控制台的主菜单(0-13 个选项)中,输入 1 (Assign interfaces) 并回车。
  3. 跳过 LAGG 和 VLAN 设置
    • LAGGs:系统询问是否设置链路聚合(多网卡绑定)。我们不需要,直接输入 N 回车。
    • VLANs:系统询问是否配置虚拟局域网。暂时不需要,输入 N 回车。
  4. 硬核辨认:哪个才是 WAN/LAN? 接下来系统会让你输入 WAN 口名称,此时千万别盲猜!
    • 切回到 PVE 的硬件界面,查看你的网络设备。例如,你分配给内网的网卡 net0,记下它的 MAC 地址(假设尾号是 36F5)。
    • 切回 OPNsense 控制台,对比屏幕上方列出的网卡 MAC 地址。
    • 结论:你会发现 vtnet0 对应的 MAC 刚好是 36F5,说明 vtnet0 是 LAN 口。那么剩下的 re0 自然就是 WAN 口了。
  5. 正式分配接口
    • WAN 口分配:在提示输入 WAN 接口时,输入 re0,回车。
    • LAN 口分配:在提示输入 LAN 接口时,输入 vtnet0,回车。
    • 备用接口 (Optional 1):直接按回车跳过。
  6. 确认并应用 最后系统会提示 Do you want to proceed? (是否继续?)。输入 y 并回车,静静等待系统处理完成,屏幕刷新后接口就彻底纠正过来了。

7. 固化身份 (手动配置 WAN 口静态 IP)

Section titled “7. 固化身份 (手动配置 WAN 口静态 IP)”

虽然现在 WAN 口已经通过 DHCP 自动获取到了 192.168.100.161,但作为一台路由器,我们通常希望它的 IP 是固定的(例如 192.168.100.110),方便后续管理和端口转发。

  1. 进入地址设置菜单 在控制台主菜单中,输入 2 (Set interface IP address) 并回车。
  2. 选择要设置的接口 系统会列出当前接口。根据提示输入代表 WAN 口的数字(我这里是 2),回车确认。
  3. 关闭 DHCP 获取 询问 Configure IPv4 address via DHCP?。因为我们要设静态 IP,所以输入 n 回车。
  4. 输入静态 IP 地址 输入你规划好的地址:192.168.100.110,回车。
  5. 设置子网掩码 (Subnet Mask) 输入 24(代表 255.255.255.0),回车。
  6. 配置上级网关 这里输入你光猫或主路由的 IP 地址。在我的环境下是 192.168.100.1,回车。
  7. 跳过 IPv6 与 DNS 设置
    • IPv6:直接回车跳过(或根据提示选 N)。
    • IPv4 name server:询问是否将网关作为 DNS。我们输入 y
  8. Web 管理界面安全设置
    • HTTP/HTTPS 切换:询问是否将界面从 HTTPS 还原为 HTTP。为了安全,我们输入 N 保持 HTTPS。
    • 生成新证书:输入 Y 回车,让系统重新生成一个 SSL 证书。
    • 恢复默认访问设置:询问是否 Restore web GUI access defaults。输入 n 保持当前设置。
  9. 完成生效 等待进度条处理完成。现在你可以看到 WAN 口的地址已经变成了我们手动指定的 192.168.100.110

8. 配置 LAN 口 (设置静态 IP 与 DHCP)

Section titled “8. 配置 LAN 口 (设置静态 IP 与 DHCP)”

搞定了 WAN 口,现在我们来配置内网的核心——LAN 口。我们将为它设置静态的 IPv4 地址,并开启 DHCP 自动分配功能。

  1. 进入地址设置菜单 在控制台主菜单中,再次输入 2 (Set interface IP address) 并回车。
  2. 选择 LAN 接口 系统会询问设置哪一个接口,这次我们输入 1 选择 LAN 接口。
  3. 配置 IPv4 地址
    • 是否通过 DHCP 获取:输入 N 回车(我们要设为静态 IP)。
    • 输入 LAN 口地址:输入我们规划好的 10.0.0.1,回车。
    • 输入子网掩码:输入 24,回车。
  4. 设置 LAN 网关 (重点)

    当系统询问 LAN IPv4 gateway address 时,请直接按回车留空! 由于这台 OPNsense 本身就是局域网的网关,如果在这里填了网关,会导致路由冲突。

  5. 配置 IPv6
    • 是否通过 DHCP6 获取:输入 N 回车。
    • 输入 IPv6 地址:不需要设置,直接按回车跳过。
  6. 启用 LAN DHCP 服务 系统询问 Do you want to enable the DHCP server on LAN? (是否在 LAN 启用 DHCP)。
    • 输入 Y 回车。
    • 起始地址:输入 10.0.0.100
    • 结束地址:输入 10.0.0.200
    • (这样我们就将 .100 以前和 .200 以后的地址预留出来了,方便给家里的服务器等设备设置固定 IP)。
  7. Web GUI 访问设置
    • 是否使用 HTTPS 登录:输入 N
    • 是否生成新证书:输入 Y 回车。
    • 是否重置 Web GUI 默认访问设置:输入 N 回车。
  8. 生效确认 等待处理完成后,屏幕刷新,你会看到 LAN 口的 IP 地址已经成功变更为我们想要的 10.0.0.1

9. 深入敌后 (通过 LAN 口直连访问后台)

Section titled “9. 深入敌后 (通过 LAN 口直连访问后台)”
  1. 物理换线 将原本插在主路由器上的物理网口 A 的网线拔出来,直接插到你的电脑网口上。
  2. 观察电脑 IP 变化 此时你会发现,由于我们刚才在 LAN 口开启了 DHCP 服务,你的电脑会同时获取到两个网段的 IP:一个是原有的 192.168.100.x,另一个是 OPNsense 分配的 10.0.0.x
  3. 切换网段测试 为了排除干扰,我们先手动禁用电脑上 192.168.100.x 的网络连接。此时你会发现,由于你的电脑和 OPNsense 的 LAN 口(10.0.0.1)处于同一个 10.0.0.x 网段,它们已经可以“面对面”直接对话了。
  4. 登录管理页面 打开浏览器,输入 10.0.0.1,久违的 OPNsense 登录界面终于出现了!
    • 用户名:输入 root
    • 密码:输入你之前在控制台设置的密码 点击登录,正式进入 OPNsense 的图形化管理世界。

10. 初始化向导 (System Configuration Wizard)

Section titled “10. 初始化向导 (System Configuration Wizard)”

第一次登录后,系统会自动弹出初始化向导。我们按照提示快速完成基础配置:

  1. 启动向导 进入菜单 System -> Configuration -> Wizard,点击 Next 开始。
  2. 常规设置 (General Information)
    • Language (语言):在下拉菜单中找到并选中 Chinese (中文)。
    • Timezone (时区):搜索并选择 Asia/Shanghai (上海)。
    • 点击 Next 继续。
  3. 配置 WAN 接口 这里大部分保持默认即可。确保 Gateway (网关地址) 已经填入我们之前设置的 192.168.100.1。点击 Next 继续。
  4. 配置 LAN 接口 我们之前已经在控制台手动固定了 LAN 口地址为 10.0.0.1,所以这里不用改动,直接点击 Next
  5. 部署类型 (Deployment Type) 点击 Next 继续。
  6. 更新 Root 密码 系统会提示你设置新的 root 密码。因为我们之前在命令行已经设置过了,这里可以直接跳过,或者再次输入一次确认,点击 Next
  7. 保存并应用 最后点击 ReloadApply 应用所有更改。系统会自动刷新,现在你的后台已经是亲切的中文界面了。

11. 顺水推舟 (将 PVE 管理地址迁移至 LAN 网段)

Section titled “11. 顺水推舟 (将 PVE 管理地址迁移至 LAN 网段)”

既然测试完 10.0.0.x 网段已经完全没问题,为了方便统一管理,我们现在要把 PVE 的管理地址也切到这个网段。

  1. 临时切回旧网络 先将 物理网口 A 的网线插回主路由器。再次登录原来的 PVE 管理地址 192.168.100.50:8006
  2. 修改网络配置 在 PVE 侧边栏选择你的节点,点击 “网络” 菜单:
    • 找到绑定在 A 口上的网桥(通常是 vmbr0),点击 “编辑”
    • IPv4 地址:将 192.168.100.50/24 修改为 10.0.0.50/24
    • 网关 (IPv4):修改为 OPNsense 的 LAN 口地址 10.0.0.1
  3. 应用设置 点击 “应用配置”。注意,点击的一瞬间,由于 IP 变了,当前的网页会立即断开连接,这是正常现象。
  4. 重新直连测试 现在,将 物理网口 A 的网线重新插回到你的电脑网口上。
  5. 验证新地址 在浏览器中输入新的管理地址 10.0.0.50:8006

    成功迁移

    大家可以看到,现在我们已经能通过 10 网段正常进入 PVE 管理页面了。此时,PVE 和 OPNsense 已经处于同一个局域网,你可以同时管理它们。


12. 开启越级访问 (允许从 WAN 口管理防火墙)

Section titled “12. 开启越级访问 (允许从 WAN 口管理防火墙)”

如果我们想把网线插回主路由器(192网段),并顺利访问 OPNsense 的后台,需要先在防火墙上“开个后门”。目前请依然保持电脑在 10.0.0.x 网段下进行操作。

  1. 解除私有地址拦截 (最容易漏的一步) 点击 Interfaces -> WAN。拉到页面最下方,取消勾选 Block private networks (屏蔽私有网络),然后保存应用。 (如果不关掉这一项,无论你怎么设规则,防火墙都会默认把 192.168 开头的内网请求当成非法数据包直接丢弃。)
  2. 添加放行规则 点击 Firewall -> Rules -> WAN,点击添加新规则:
    • Protocol (协议):选择 any
    • TCP/IP Version:选择 IPv4
    • Source (源地址):选择 Single host or Network。输入 192.168.100.4/32 (仅允许当前电脑),或者 192.168.100.0/24 (允许整个 100 网段)。
    • Destination (目标):勾选 WAN addressLAN address
    • Log (日志):勾选启用日志记录。
    • Description (描述):填入 允许192.168网段管理
    • 点击 SaveApply Changes

设置完成后,我们把电脑的网线插回主路由器,让电脑重新获取到 192.168.100.4 的地址。 现在我们在浏览器测试一下:

  • 访问 WAN 口地址 192.168.100.110 👉 成功进入后台!
  • 访问 LAN 口地址 10.0.0.1 👉 网页转圈,无法访问!

为什么防火墙明明放行了目标为 LAN address 的请求,我们却还是连不上 10.0.0.1 呢?

让我们回到网络拓扑图,我用一个通俗的例子给大家解释:

  • 你的电脑 (192.168.100.4) 是村里的普通村民
  • 你的主路由器 (192.168.100.1) 是老村长,负责处理所有出村的信件。
  • OPNsense (192.168.100.110) 是新来的保安大队长,他身后守着一个叫 10.0.0.x 的新大院。

现在,你要发一封信给 10.0.0.1。因为这个地址不在你的村子里,你的电脑只能按规矩把信交给老村长 (默认网关 192.168.100.1)。 老村长拿到信一看:“10.0.0.1?我村里的户口本上没这个地址啊!” 于是,老村长直接把信扔进了垃圾桶(或者丢给了外面的互联网,然后被丢弃)。注意,这封信根本就没送到保安大队长手里,所以你的防火墙规则设得再好也没用!

怎么解决这个问题呢? 保安大队长 (OPNsense) 必须主动去老村长 (主路由) 办公室登个记:“老村长,以后凡是寄给 10.0.0.x 大院的信,你都不要扔,直接交给我 (192.168.100.110) 就行,我来派送。”

老村长把这句话记在了自己的工作小本本上。 而在计算机网络中,老村长的这个“小本本”,就叫做路由表。他在本子上写下的这条记录,就是我们接下来要大显身手的核心技术——静态路由 (Static Route)


14. 指路明灯 (在主路由设置静态路由)

Section titled “14. 指路明灯 (在主路由设置静态路由)”

不同品牌的路由器,设置静态路由的界面位置可能不太一样,但绝大多数稍微正规一点的路由器都是支持这个功能的。大家可以在自己的路由器后台找一找“高级设置”、“路由功能”或者“静态路由”这类选项。

我目前使用的是 iStoreOS (基于 OpenWrt),接下来就以它为例给大家演示如何设置:

  1. 进入路由设置 登录你的 iStoreOS 主路由后台(192.168.100.1),在左侧菜单点击 网络 -> 路由
  2. 添加静态路由 在页面下方找到 “静态路由”(或者 IPv4 静态路由),点击 添加
  3. 填写路由规则 (核心)
    • 接口:选择 lan(因为 OPNsense 是接在主路由的局域网口上的)。
    • 路由类型:选择 unicast(单播)。
    • 目标 (Target):输入 10.0.0.0/16
    • 网关 (Gateway):输入保安大队长的地址,也就是 OPNsense 的 WAN 口 IP:192.168.100.247
  4. 保存并应用 点击 保存并应用,等待配置生效。

🎉 见证奇迹的时刻 设置完成后,我们回到浏览器,再次在地址栏输入 10.0.0.1。 大家可以看到,刚才还一直转圈打不开的页面,现在瞬间就弹出了 OPNsense 的登录界面!到此为止,192 网段和 10 网段已经实现了完美的跨网段互通管理。


15. 戏剧性反转:阅后即焚 (打造真正的 赛博堡垒)

Section titled “15. 戏剧性反转:阅后即焚 (打造真正的 赛博堡垒)”

经过刚才的一顿操作,我们成功通过 192 网段访问了 10 网段的核心设施。但现在,我要给大家来一个戏剧性的反转:

既然能通,为什么要关掉? 刚才的演示,仅仅是为了向大家证明 OPNsense 防火墙强大的路由和“手术刀”级别的精准放行能力。证明“我们能做到”,但不代表“我们在生产环境中应该这么做”。

这涉及到一个核心的安全概念:防御纵深。 大家想一想,如果你的这两条规则一直开着,一旦你家里的 Wi-Fi 密码泄露,或者主路由器被黑客攻破,那么攻击者就能顺着 192 网段,长驱直入,直接摸到你 PVE 里的核心服务。

正确且安全的做法是什么? 老老实实把管理电脑的网线插在 OPNsense 的 LAN 口下,或者连上由 OPNsense 分配 IP 的专属内网 AP,全程在 10.0.0.x 网段下进行管理。 这样一来,哪怕最外层的主路由器彻底沦陷,只要 OPNsense 依然屹立不倒,它默认的“拒绝所有外部请求”规则就会像一堵叹息之墙,把所有的攻击死死挡在外面。

这也就是建立我们专属 赛博堡垒 的核心奥义:永远不要为了一时的方便,给核心资产留下致命的后门。


16. 系统升级与必备插件安装 (打造完美虚拟化体验)

Section titled “16. 系统升级与必备插件安装 (打造完美虚拟化体验)”

网络彻底打通后,我们终于可以安下心来,给 OPNsense 进行一次全面的升级,并安装两个在 PVE 虚拟化环境下极其重要的插件。

  1. 更换镜像源与系统升级
    • 在 OPNsense 左侧菜单,点击 System (系统) -> Firmware (固件) -> Settings (设置)
    • 找到 Mirror (镜像),在下拉列表里选择一个离你地理位置最近的镜像源(例如国内可以选择清华大学或阿里云等镜像),点击保存。
    • 切换到 Status (状态) 标签页,点击 Check for updates (检查更新)
    • 系统会自动拉取更新包,点击 Upgrade (升级)。等待进度条走完,系统会自动重启。
  2. 安装必备插件 重启完成后,再次登录后台。点击 System -> Firmware -> Plugins (插件)。搜索并安装以下两个插件:
    • os-qemu-guest-agent:虚拟化必备代理。它能让 OPNsense 与 PVE 底层系统直接通信。
    • os-realtek-re:Realtek 官方网卡驱动。
    插件安装完成后,请务必手动重启一次 OPNsense,让驱动和代理生效。
  3. 验证 PVE 状态与“内存气球”机制
    • 重启后,回到 PVE 的管理界面 (10.0.0.50:8006),点击你的 OPNsense 虚拟机。
    • 在“概要”页面,你会惊喜地发现:原本空白的 IP 地址 栏,现在精准地显示出了 OPNsense 的 IP 啦!这就是 qemu-guest-agent 插件的功劳。
    • 关于内存爆满的错觉:在这个页面,你可能会发现虚拟机的内存使用率几乎是 100%(2G 内存全满)。大家不用慌!这是因为在 PVE 中,我们通常不建议给路由防火墙开启 内存气球 (Memory Ballooning) 功能。系统为了保证网络处理性能,会直接把这 2G 内存“硬锁定”,但在 OPNsense 内部其实并没有用完。
  4. 查看真实硬件状态 如果你想看真正的内存和磁盘使用率,请回到 OPNsense 的界面,点击左侧导航栏的 Lobby (大厅) -> Dashboard (仪表盘)。 在这里你能看到真实的系统负载。如果你对目前的排版不满意,还可以点击右上角的铅笔图标(修改),自由添加、删除或拖拽你要展示的监控模块,定制属于你自己的仪表盘。这里大家可以自己发挥,我就不详细演示了。

17. 进阶折腾:N100 性能优化与解决 Ping 延迟跳动 (按需设置)

Section titled “17. 进阶折腾:N100 性能优化与解决 Ping 延迟跳动 (按需设置)”

如果你使用的是 N100 这类低功耗处理器,细心的朋友可能会发现一个现象:在 PVE 下去 Ping 我们的 OPNsense 防火墙,延迟经常在 1ms 到 10ms 甚至更高之间反复跳动。

为什么会这样?影响网速吗? 其实这完全不影响你的实际网络带宽和日常使用。N100 是一颗主打低功耗的 CPU,为了省电,它内置了非常积极的深度休眠机制(C-States)。当没有大数据流时,CPU 会瞬间“睡着”;等你发个 Ping 包过去,它又要被“叫醒”,这个“起床气”的时间差,就体现在了那十几毫秒的延迟上。

如果你有严重的“网络强迫症”,想要让延迟稳稳压在 1ms 以下,可以通过修改系统底层配置来解决。

  1. 修改 GRUB 引导文件,禁用深度休眠 在 PVE 节点的 Shell 终端中,输入以下命令编辑文件:

    Terminal window
    nano /etc/default/grub

    找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行。

    千万不要照抄

    由于每个人的硬件直通配置不同,你的这行代码可能和我不一样(比如包含了 intel_iommu=on 等)。请不要覆盖你原有的配置,只需要在你原有的参数后面,加上

    Terminal window
    intel_idle.max_cstate=1 processor.max_cstate=1

    即可。

    修改前(举例): GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction" 修改后(举例): GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_idle.max_cstate=1 processor.max_cstate=1 intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"

    修改完成后,按 Ctrl+O 保存,回车确认,再按 Ctrl+X 退出。

  2. 刷新引导配置 依次执行以下两条命令,让刚才的修改生效:

    Terminal window
    update-grub
    proxmox-boot-tool refresh
  3. 安装 CPU 调频工具 接着我们需要把 CPU 的运行模式强制锁定在高性能。依次执行:

    Terminal window
    apt update
    apt install linux-cpupower -y
  4. 开启高性能模式 安装完成后,执行以下命令:

    Terminal window
    cpupower frequency-set -g performance
  5. 重启系统 执行 reboot 重启整台 PVE 宿主机。

🎉 优化验证 重启完成后,你再去 Ping 你的 OPNsense,就会发现延迟死死地被钉在了 <1ms。你的 N100 现在已经是一个没有任何感情的转发机器了!


18. 灾备演练总控台:网络故障矩阵分析

Section titled “18. 灾备演练总控台:网络故障矩阵分析”

这套架构既然叫 赛博堡垒,我们就必须做一个非常硬核的混沌工程(Chaos Engineering)测试。在各种极端单点故障下,这套网络到底会表现出什么脾气?

测试单场景故障定义:

  • 正常: 所有系统都正常运行。
  • OPNsense 挂了: 认为 OPNsense 虚拟机意外关机了。
  • PVE 挂了: 认为是 PVE 宿主机断电关机(此时隐含 OPNsense 也挂了)。
  • B 口挂了: 物理拔了 B 口网线,PVE 彻底脱离了 192 网络。
  • 主路由挂了: 192.168.100.1 断开光猫,上不去外网了。

说明:192.168.100.4是当前电脑的192.168.100网段的ip地址

以下是针对操作电脑处于四种不同网络环境下的全面爆破测试报告。(测试前提:电脑与主路由器在物理上保持连接)


💻 测试场景一:当前电脑【仅保留 10.0.0.X 网段】

Section titled “💻 测试场景一:当前电脑【仅保留 10.0.0.X 网段】”
C:\Users\Admin> ipconfig /all | findstr “IPv4” -> 仅保留 10.0.0.X 网段
故障场景🌐 访问外网🖥️ PVE 管理
10.0.0.50
🛡️ OPN WAN
192.168.100.110
🛡️ OPN LAN
10.0.0.1
🖨️ 192 网段设备
192.168.100.X
🛜 主路由后台
192.168.100.1
💡 演练结论 & 逃生指南
正常运行🟢 正常🟢 正常🟢 正常🟢 正常🟢 正常🟢 正常完美状态,所有流量由 OPN LAN 口发出,被放行并成功路由。
OPNsense 挂了🔴 失败🟢 正常🔴 失败🔴 失败🔴 失败🔴 失败网关宕机,路由黑洞。但由于同属 10 网段,你可以通过交换机广播(二层)直接访问 PVE,进行紧急开机。
PVE 挂了🔴 失败🔴 失败🔴 失败🔴 失败🔴 失败🔴 失败物理层团灭。PVE 宿主机挂了,虚拟网桥跟着消失。10 网段彻底瘫痪。
B口挂了 (拔线)🔴 失败🟢 正常🟢 正常🟢 正常🔴 失败🔴 失败OPNsense 失去上游网络,外网和 192 网段全断。但内网核心(PVE 和 OPN 后台)依然坚挺。
主路由挂了 (断网)🔴 失败🟢 正常🟢 正常🟢 正常🟢 正常🟢 正常只是外网光猫故障,家里局域网的交换机和路由功能完全存活,内网管理不受影响。

💻 测试场景二:当前电脑【仅保留 192.168.100.X 网段】

Section titled “💻 测试场景二:当前电脑【仅保留 192.168.100.X 网段】”
C:\Users\Admin> ipconfig /all | findstr “IPv4” -> 仅保留 192.168.100.X 网段
故障场景🌐 访问外网🖥️ PVE 管理
10.0.0.50
🛡️ OPN WAN
192.168.100.110
🛡️ OPN LAN
10.0.0.1
🖨️ 192 网段设备
192.168.100.X
🛜 主路由后台
192.168.100.1
💡 演练结论 & 逃生指南
正常运行🟢 正常🔴 失败🔴 失败🔴 失败🟢 正常🟢 正常反向隔离生效! 电脑通过主路由可上网,但因为防火墙规则已删,WAN 口拒绝访问,导致 PVE 和 OPN 均无法联通。
OPNsense 挂了🟢 正常🔴 失败🔴 失败🔴 失败🟢 正常🟢 正常电脑直接走主路由上网,不受影响。彻底失去对 PVE 的控制权。
PVE 挂了🟢 正常🔴 失败🔴 失败🔴 失败🟢 正常🟢 正常电脑的 192 网络很滋润,但你的 Homelab 已经变成了一堆废铁。
B口挂了 (拔线)🟢 正常🔴 失败🔴 失败🔴 失败🟢 正常🟢 正常PVE 和 OPNsense 被物理拔线变成了“孤岛”,主路由网络对这俩兄弟无能为力。
主路由挂了 (断网)🔴 失败🔴 失败🔴 失败🔴 失败🟢 正常🟢 正常外网断开,但主路由的交换功能还在,仅能访问 192 内网设备。

💻 测试场景三:当前电脑【双网段共存,且 10.0.0.X 优先级高】

Section titled “💻 测试场景三:当前电脑【双网段共存,且 10.0.0.X 优先级高】”
root@pc-client:~# ip route -> 双网段共存,10.0.0.X 网关优先级高 (跃点数低)
故障场景🌐 访问外网🖥️ PVE 管理
10.0.0.50
🛡️ OPN WAN
192.168.100.110
🛡️ OPN LAN
10.0.0.1
🖨️ 192 网段设备
192.168.100.X
🛜 主路由后台
192.168.100.1
💡 演练结论 & 逃生指南
正常运行🟢 正常🟢 正常🔴 失败🟢 正常🟢 正常🟢 正常流量优先走 10 网关。注意:访问 WAN 地址失败,是因为系统直连路由固执地使用 192.168.100.4 敲门,被防火墙丢弃。
OPNsense 挂了🟡 降级🟢 正常🔴 失败🔴 失败🟢 正常🟢 正常系统智商测试:10 网关失效,电脑等超时后会回退到 192 网关上网(会有断网卡顿感)。依靠物理双网卡,内外部局域网访问正常。
PVE 挂了🟡 降级🔴 失败🔴 失败🔴 失败🟢 正常🟢 正常10 网关彻底消失,电脑全面回退使用 192 网关上网。
B口挂了 (拔线)🔴 失败🟢 正常🔴 失败🟢 正常🟢 正常🟢 正常最坑场景 (黑洞):10 网关还活着,电脑拼命把上网数据塞给它,但它 B 口出不去,导致电脑明明有 192 备用网络却死活上不了网!
主路由挂了 (断网)🔴 失败🟢 正常🔴 失败🟢 正常🟢 正常🟢 正常局域网内双路互通,仅仅是断了公网。

💻 测试场景四:当前电脑【双网段共存,且 192.168.100.X 优先级高】

Section titled “💻 测试场景四:当前电脑【双网段共存,且 192.168.100.X 优先级高】”
root@pc-client:~# ip route -> 双网段共存,192.168.100.X 网关优先级高 (跃点数低)
故障场景🌐 访问外网🖥️ PVE 管理
10.0.0.50
🛡️ OPN WAN
192.168.100.110
🛡️ OPN LAN
10.0.0.1
🖨️ 192 网段设备
192.168.100.X
🛜 主路由后台
192.168.100.1
💡 演练结论 & 逃生指南
正常运行🟢 正常🟢 正常🔴 失败🟢 正常🟢 正常🟢 正常上网流量走主路由。内网通信互不干扰。WAN 地址依然因防火墙规则被拦截。
OPNsense 挂了🟢 正常🟢 正常🔴 失败🔴 失败🟢 正常🟢 正常最稳抗灾阵型:即使没了 OPNsense 帮忙路由,电脑依靠自带的 10 号段 IP 依然能通过二层交换直连 PVE 进行抢救。
PVE 挂了🟢 正常🔴 失败🔴 失败🔴 失败🟢 正常🟢 正常互不干扰,PVE 死活不影响你看剧打游戏。
B口挂了 (拔线)🟢 正常🟢 正常🔴 失败🟢 正常🟢 正常🟢 正常上网走 192 完全不受影响。访问内网全靠自己的 10 号段直连,完美避开了“假死黑洞”。
主路由挂了 (断网)🔴 失败🟢 正常🔴 失败🟢 正常🟢 正常🟢 正常没网了,但本地管理两条腿走路,稳如老狗。

通过这四个极端的矩阵测试,我们可以总结出几个硬核教训:

  1. 二层直连大于一切路由:当你需要去废墟里抢救挂掉的 PVE 节点时,电脑上配一个与它同网段的静态 IP(10.0.0.X),永远是最高优先级、最靠谱的连接方式。
  2. 警惕“双网关黑洞”:场景三里的 B 口拔线情况是血的教训。当网关本身存活,但其上游断网时,如果操作系统的优先级选错了,就会变成数据黑洞,导致明明有备用网络也无法上网。
  3. 管理与生产分离:保留一个独立于防火墙控制流之外的 192.168.100.X 管理通道,在折腾软路由和 Homelab 时是你最重要的“保命符”。

不要相信你的记忆力,把它写进资产表里!

## 🛡️ OPNsense 网关备忘 (N100 节点)
- **PVE VM ID**: 100
- **WAN 接口**: 物理直通 (B口),向光猫获取 DHCP IP (`192.168.100.110`)
- **LAN 接口**: `vmbr0` (A口),**静态 IP `10.0.0.1`**
- **DHCP 池**: `10.0.0.100` - `10.0.0.200`
- **底层防坑**: `Ballooning` 已关,OS 设为 `Other`,开机顺位 `1`

[Q] 为什么我直通了物理网卡,启动 OPNsense 却报错或者宿主机死机?

[A]: 说明你的 PVE 底层 IOMMU 分组有问题,或者没有在 GRUB 里添加防断流参数。请回退到上一篇 PVE 部署指南,检查是否漏敲了 pcie_acs_override 参数,并确保执行了 update-grub 后重启了物理机。

[Q] 安装完进了 WebGUI,里面随便改个设置点保存,网页就卡死断联了?

[A]: 恭喜你,触发了极其经典的“赛博作茧自缚”Bug。OPNsense 默认防火墙规则极严,保存时重载引擎会把你自己踢出去。解决办法:回 PVE 控制台敲 8 进 Shell,输入 pfctl -d 暂时关闭防火墙。立刻进网页版,在【防火墙】->【设置】->【高级】里,勾选**「禁用所有数据包过滤」**。等你把后续端口和规则配明白后,再把这个勾去掉。