跳转到内容

赛博堡垒的高速直达高铁:基于 OPNsense Caddy 的 IPv6 直连穿透

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

🚄 为什么要造“直达高铁”?CF 隧道的妥协与破局

Section titled “🚄 为什么要造“直达高铁”?CF 隧道的妥协与破局”

在上一篇《隐形跨海大桥:Cloudflare Tunnel 内网穿透实战》中,我们成功利用“隧道兵”实现了无视公网 IP 的优雅穿透。但随着赛博堡垒的不断扩建,我们撞上了一堵无形的墙:Cloudflare 免费版 SSL 证书的“四级域名封锁”

为了白嫖 CF 的安全盾牌,我们曾不得不做出妥协,放弃了原本严谨的 *.k3s.besthomelab.tech 命名空间(四级域名),降维使用三级域名。这对于追求极致规范的架构师来说,犹如喉咙里卡了一根刺。

那么,有没有一种方法,既能一毛钱不花,又能完美保住我们的硬核命名规范

答案就是:退掉 CDN 的隐身披风,建造一条基于 IPv6 + OPNsense Caddy 的“直达高铁”!

相比于绕道边缘节点的 CF 隧道,这条赛博直达高铁拥有降维打击般的优势:

  • 🎫 绕过层级封锁 (Let’s Encrypt 破局):Cloudflare 免费版拒绝签发的四级域名证书,Let’s Encrypt 给!只要通过 DNS-01 挑战证明域名所有权,Caddy 就能全自动为你申请并续期 *.k3s.besthomelab.tech 的泛域名证书,完全无视层级歧视。
  • ⚡ 物理级零延迟 (Zero Latency):流量不再需要去外部 CDN 节点绕一圈进行解密再加密。数据包顺着 IPv6 公网,从你的手机直达家里的 OPNsense 路由器,速度彻底跑满你家庭宽带的物理上限!
  • 🚪 全端口自由 (Full Port Support):不再受限于 CF Tunnel 仅支持的少数几个 Web 端口。高铁轨道一旦铺设,任何协议、任何端口都可以通过 Caddy 灵活调度。
  • 🧩 捍卫架构规范 (Naming Convention):完美复活 seerr.k3s.besthomelab.tech 这种层级分明的内部域名体系。你集群内部的 Traefik 路由规则一字不改,内网与外网再次达到大一统的完美衔接!

如果你家已经具备了 IPv6 公网条件,且你不甘心被云厂商的免费规则所束缚,那么请穿上防护服,我们现在就开始铺设这条属于你自己的极速轨道!


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

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

🌐 第一步:唤醒 OPNsense 的 IPv6 引擎与城门测试

Section titled “🌐 第一步:唤醒 OPNsense 的 IPv6 引擎与城门测试”

要建造这条直连高铁,我们的赛博堡垒必须先具备物理级别的“公网车票”。绝大多数宽带运营商(电信/联通/移动)如今都已经原生下发了 IPv6。我们需要让 OPNsense 主动去获取它,并精准破开防火墙验证这条路是否真的通畅。

  1. 登录 OPNsense 控制台,导航至 Interfaces (接口) -> [WAN]
  2. 找到 IPv6 Configuration Type (IPv6 配置类型),将其从 None 更改为 DHCPv6(部分地区运营商可能需要选择 SLAAC)。
  3. 勾选下方的 Request only an IPv6 prefix (仅请求 IPv6 前缀)(视你家光猫桥接/路由模式而定,通常桥接模式下取消勾选以获取完整地址)。
  4. 保存并应用更改 (Apply Changes)。

👉 工程师核验点:前往 Interfaces -> Overview (概况) 查看 WAN 口状态。如果你看到了一串以 24024082409 等开头的长 IP 地址(绝不能是以 fe80: 开头的本地链路地址),恭喜你,拿到了公网 IPv6 车票!

2. 破开赛博城墙 (配置防火墙放行规则)

Section titled “2. 破开赛博城墙 (配置防火墙放行规则)”

拿到 IP 还不算完,OPNsense 默认会像铁桶一样拦截所有外部探测和访问。为了验证外网连通性,并为后续的 Caddy 网关铺路,我们需要在城墙上精准地开出三条通道。

导航至 Firewall (防火墙) -> Rules (规则) -> WAN,点击右上角的 + 依次添加以下三条新规则:

通道 A:连通性测速缝隙 (ICMPv6)

  • Action (操作): Pass (放行)
  • TCP/IP Version: IPv6
  • Protocol (协议): ICMPv6
  • ICMP type: Echo Request (只放行 Ping 请求,确保安全)
  • Destination (目标): This Firewall (这台防火墙自身)
  • Description: Allow IPv6 Ping from WAN

通道 B:HTTPS 主大门 (443 端口,开启 HTTP/3 极速模式)

  • Action (操作): Pass (放行)
  • TCP/IP Version: IPv6
  • Protocol (协议): TCP/UDP (🚨 必须包含 UDP,这是开启 QUIC/HTTP3 下一代协议的关键!)
  • Source (源): any (允许外网任意访问)
  • Destination (目标): This Firewall (Caddy 运行的所在地)
  • Destination port range (目标端口范围): HTTPS to HTTPS
  • Description: Allow IPv6 HTTPS/QUIC to Caddy

通道 C:HTTP 跳转偏门 (80 端口)

  • Action (操作): Pass (放行)
  • TCP/IP Version: IPv6
  • Protocol (协议): TCP (80 端口只需要 TCP 即可)
  • Source (源): any
  • Destination (目标): This Firewall
  • Destination port range (目标端口范围): HTTP to HTTP
  • 💡 首席架构师笔记:放行 80 端口是为了让 Caddy 极其优雅地处理用户输入 http:// 时的自动跳转 (301 Redirect to HTTPS)。

全部添加完毕后,点击页面右上角的 Apply Changes (应用更改),让城门正式敞开!

🚨 赛博安全红线警告: 仔细检查你的规则!目标(Destination)必须是 This Firewall。绝对不要选成 any 或者 WAN net,否则你就会把整个家庭局域网的 IPv6 设备毫无遮掩地全部暴露给公网黑客!

城门已开,我们需要站在赛博堡垒之外,向刚才获取的 IPv6 地址开一枪,看看底盘是否彻底打通。你有两种方式可以验证:

  • 🕵️ 极客验证法 (使用带 IPv6 的外部 VPS): SSH 登录到你云端的一台 VPS 服务器,直接在终端执行:

    Terminal window
    ping6 2408:xxxx:xxxx:xxxx:xxxx:xxxx # 替换为你 OPNsense WAN 口的真实 IPv6 地址

    如果终端稳定输出 64 bytes from ... time=xx ms,说明外网直连完全打通!

  • 📱 游侠验证法 (使用手机 5G 流量): 如果没有 VPS,你可以关闭手机的 Wi-Fi,只使用 5G 蜂窝网络。在手机浏览器中打开在线 Ping 工具网站(如 itdog或者keycdn,输入你的路由器 IPv6 地址发起测试。如果全绿通过,说明运营商没有在中间拦截!


🧭 第二步:架设自动寻路系统 (DDNS 与云端解析)

Section titled “🧭 第二步:架设自动寻路系统 (DDNS 与云端解析)”

由于家庭宽带的 IPv6 地址通常会变动,我们需要一个“导航员”来实时向 Cloudflare 汇报最新的车轨位置。我们将使用 OPNsense 官方的 os-ddclient 插件。

1. 前置准备:获取云端 API 令牌 (Token)

Section titled “1. 前置准备:获取云端 API 令牌 (Token)”
  1. 登录 Cloudflare 控制台,点击右上角头像,依次进入 My Profile (我的个人资料) -> API Tokens (API 令牌)
  2. 点击 Create Token,选择 Create Custom Token
  3. 权限配置:
    • Permissions (权限):选择 Zone - DNS - Edit
    • Zone Resources (区域资源):选择 Include - Specific zone - 你的主域名
  4. 检查无误后创建令牌。
  5. 🚨 高危警告:立刻复制生成的令牌秘钥,妥善保存到密码管理器中!

2. 云端打底:创建泛域名占位符 (防报错必备)

Section titled “2. 云端打底:创建泛域名占位符 (防报错必备)”

💡 首席架构师防坑指南: OPNsense 的 DDNS 插件在处理带 * 号的泛域名时,只会“更新”已有记录,不会“凭空创建”。如果云端没有这条记录,日志里会疯狂报错 error locating hostname。因此,我们必须先手动打个空壳底座。

  1. Cloudflare 控制台:进入你的主域名(如 besthomelab.tech)的 DNS 设置页面。
  2. 手动添加一条记录:
    • Type (类型): AAAA
    • Name (名称): *.k3s
    • IPv6 address: 随便填一个合法的本地 IPv6,比如 ::1 (这就是个占位符,稍后会被 DDNS 自动覆盖)。
    • Proxy status: 🚨 点灰小云朵 (DNS Only)!(必须变灰,让流量直连 IPv6,不受 CF 代理限制)。
  3. 保存记录。

前往 OPNsense 的 System ‣ Firmware ‣ Plugins 安装 os-ddclient。 导航至 Services ‣ Dynamic DNS ‣ Settings

  • Enable: 勾选
  • Allow IPv6: 勾选 (🚨 极其重要)
  • Backend: 强烈建议选择 native

在服务: 动态DNS: 设置 Accounts (账户) 选项卡点击 + 号:

  • Service: Cloudflare
  • Username: 填入小写的 token
  • Password: 填入刚申请的 API Token
  • Zone: 你的主域名(如 besthomelab.tech
  • Hostname(s): 你的目标泛域名(如 *.k3s.besthomelab.tech
  • Check ip method: Interface
  • Interface to monitor: WAN 保存并 Apply。

4. 🚨 致命操作:褪去云端隐身披风 (点灰小云朵)

Section titled “4. 🚨 致命操作:褪去云端隐身披风 (点灰小云朵)”
  1. 回到 Cloudflare 控制台,进入域名 DNS 记录页面。
  2. 找到 DDNS 刚刚创建的那条 *.k3sAAAA 记录
  3. 检查 Proxy status (代理状态):确保橘色小云朵是灰色的 “DNS Only”!

首席架构师笔记:点灰之后,Cloudflare 只做 DNS 解析,流量不再受 CF 免费证书策略审查,直接顺着 IPv6 冲向 OPNsense。


🛠️ 第三步:Caddy 引擎安装与“赛博让位”

Section titled “🛠️ 第三步:Caddy 引擎安装与“赛博让位””

OPNsense 的管理面板默认占用 443 端口,而 Caddy 必须接管 80 和 443 才能成为唯一的“赛博海关”。

前往 System ‣ Firmware ‣ Plugins,搜索并安装 os-caddy

  1. 导航至 System ‣ Settings ‣ Administration
  2. TCP Port: 修改为 844310443
  3. HTTP Redirect: 勾选 Disable web GUI redirect rule
  4. Listen Interfaces: 建议勾选 LAN
  5. 保存并应用。(以后访问路由器面板需加上端口号了)。
  6. 我们前期k3s域名访问opnsense也改成了8443端口,见配置文件

📜 第四步:获取“四级泛域名”通关文牒 (DNS-01 挑战)

Section titled “📜 第四步:获取“四级泛域名”通关文牒 (DNS-01 挑战)”

导航至 Services ‣ Caddy ‣ General Settings(服务: Caddy: 常规设置):

  • Enabled: 勾选。
  • Acme Email: 填入你的常用邮箱。
  • Auto HTTPS: 保持默认的开启 On

导航至*DNS供应商

  • DNS Provider: 选择 Cloudflare
  • API Key: 填入之前申请的 Cloudflare API Token。
  • Resolvers: 填入 1.1.1.1 (官方推荐,加速 DNS 验证)。
  • 保存并 Apply。

2. 定义四级泛域名 (Wildcard Domain)

Section titled “2. 定义四级泛域名 (Wildcard Domain)”

导航至 Services ‣ Caddy Web Server ‣ Reverse Proxy ‣ Domains(服务: Caddy: 反向代理: 域),点击 + 号:

  • Domain: 填入 *.k3s.besthomelab.tech(替换你实际域名)。
  • DNS-01 Challenge: 必须勾选
  • Dynamic DNS: 不要勾选!(已由 os-ddclient 接管,避免冲突)。
  • 保存并 Apply。
  • 导航至 System ‣ Trust ‣ Certificates(系统: 证书: 证书),寻找名为 Caddy_Let_s_Encrypt...Caddy_ZeroSSL... 且包含你泛域名的记录。这代表 3 个月有效期的自动续签证书已经到手!

🔀 第五步:铺设内部轨道 (通配全量 vs 精准放行)

Section titled “🔀 第五步:铺设内部轨道 (通配全量 vs 精准放行)”

既然证书和域名都已经就位,最后一步是告诉 Caddy 如何处理流量。由于我们 K3s 内部已经有 Traefik 这个极度聪明的网关在做七层路由,我们在 OPNsense 这一层就面临着两种截然不同的架构流派。

作为首席架构师,你可以根据自己的需求,在“一劳永逸”和“绝对安全”之间任选其一:

方案 A:一劳永逸的“全链路 HTTPS 通配流” (极客推荐)

Section titled “方案 A:一劳永逸的“全链路 HTTPS 通配流” (极客推荐)”

核心理念:让 Caddy 充当一个“赛博分拣员”。它只负责利用 Let’s Encrypt 泛域名证书扒掉第一层 HTTPS 的外衣,然后立刻穿上内网 HTTPS 的新衣服,把所有 *.k3s.besthomelab.tech 的流量“原封不动”地抛给内网 Traefik。

最大优势真·全自动化。未来你在 K3s 里通过 GitOps 部署任何新服务,只要在 Ingress 里定义好域名,外网立刻秒通,路由器后台你这辈子都不用再进第二次。


第一步:准备“接头暗号” (配置 Header)

Section titled “第一步:准备“接头暗号” (配置 Header)”

由于 Traefik 是根据域名(Host)来分拣流量的,但 Caddy 默认在转发时可能会因 SNI 握手问题导致 Host 丢失。我们需要手动建立一个强制转发规则。

  1. 导航至 Services ‣ Caddy Web Server ‣ Reverse Proxy ‣ Headers,点击 + 新建:
    • Header Type: 选择 header_up (请求标头)。
    • Header Name: 输入 Host
    • Header Value: 输入 {host} (这是 Caddy 的魔法变量,代表原始访问域名)。
    • Description: Pass original Host header to Traefik
  2. 点击 Save

第二步:配置全局捕获器 (配置 Handler)

Section titled “第二步:配置全局捕获器 (配置 Handler)”

现在,我们要建一条“通天大道”,把所有子域名请求全部导向 K3s。

  1. 导航至 Services ‣ Caddy Web Server ‣ Reverse Proxy ‣ Handlers,点击 + 号新建:
    • Domain: 下拉选择你的泛域名 *.k3s.besthomelab.tech(选择你自己的域名)。
    • Subdomain (子域名): 🚨 保持完全留空!(这是实现 Catch-all 通配的关键)。
    • Upstream Protocol: 选择 https:// (开启全链路加密)。
    • Upstream Domain: 填入 Traefik 的 LoadBalancer IP(如 10.0.10.100)。
    • Upstream Port: 443
    • TLS Insecure Skip Verify: 勾选 - > 总工笔记:为什么要勾选?因为 Traefik 内部虽然有证书,但 Caddy 是通过内网 IP 连接它的。由于“人证(IP 与 域名)”不符,Caddy 默认会拒绝连接。勾选此项可以让 Caddy 信任内网链路,强制通行。
    • HTTP Headers: 在下拉列表里勾选你刚才创建的那个 Host 标头。
    • Description: Global catch-all for K3s infrastructure
  2. 点击 Save & Apply

至此,你已经打通了一条赛博穿透专线

当一个请求(如 seerr.k3s.besthomelab.tech)到达时:

  1. Caddy 识别出它属于 *.k3s... 的范畴,并套用泛域名证书完成解密。
  2. Caddy 看到 Subdomain 留空,触发“全局转发”模式。
  3. Caddy 带着原始域名标头,通过加密的 443 端口 敲开 Traefik 的大门。
  4. Traefik 识别出 Host 头是 seerr,精准地将其派发给对应的 Pod。

这种架构不仅实现了本架构实现了企业级的全链路端到端加密 全链路加密 (E2EE),而且极大地解耦了网络层与应用层。你只需要关心 GitOps 里的 YAML 声明,剩下的,交给这套自动化链路就好。


方案 B:白名单验证的“精准放行流” (安全优先)

Section titled “方案 B:白名单验证的“精准放行流” (安全优先)”

核心理念:假设你有 10 个内部服务,但你只希望把看剧的 seerr 暴露到公网,坚决不让 longhorn 存储面板或 argocd 管理界面在公网上有一丝一毫的露脸机会。那么就在 Caddy 这一层开启严苛的“白名单”审查,只有登记在册的子域名才能拿到通往内网的门票。

最大优势极度安全。任何未在 OPNsense 显式登记的子域名(如 hacker.k3s...),Caddy 会在最外层直接拦截,流量根本没机会触碰到 K3s 集群。


第一步:登记“通行证” (Subdomains)

Section titled “第一步:登记“通行证” (Subdomains)”

在开启精准放行前,我们先要在 Caddy 里给特定的应用“上户口”。

  1. 导航至 Services ‣ Caddy Web Server ‣ Reverse Proxy ‣ Subdomains,点击 +
    • Domain: 选择你的泛域名 *.k3s.besthomelab.tech
    • Subdomain: 明确填入你想暴露的应用前缀,例如 seerr.k3s.besthomelab.tech
  2. 点击 Save

第二步:铺设“全链路加密”轨道 (Handlers)

Section titled “第二步:铺设“全链路加密”轨道 (Handlers)”

现在,我们要为 seerr 铺设一条专属的 HTTPS 轨道。由于方案 B 是针对特定域名的,我们可以直接在配置中写死 SNI 暗号,完美规避面板变量 Bug。

  1. 导航至 Services ‣ Caddy Web Server ‣ Reverse Proxy ‣ Handlers,点击 +
    • Domain: 选择 *.k3s.besthomelab.tech
    • Subdomain: 下拉选择刚才登记的 seerr.k3s.besthomelab.tech
    • HTTP Headers: 在下拉列表里勾选你刚才创建的那个 Host 标头。
    • Upstream Protocol: 选择 https:// (开启全链路加密)。
    • Upstream Domain: 填入 Traefik 的内网 IP(如 10.0.10.100)。
    • Upstream Port: 443
    • TLS Insecure Skip Verify: 勾选 ✅。
    • 🚨 TLS Server Name: 明确填入 seerr.k3s.besthomelab.tech
      • 总工笔记:这是最关键的一步!因为 Traefik 认域名不认 IP,手动填入域名作为 SNI 暗号,能彻底解决 404 page not found 或 SSL 协议握手失败的问题。

    • Description: E2E HTTPS Forwarding for Seerr
  2. 点击 Save & Apply

🏆 首席架构师笔记:两种方案如何选?

Section titled “🏆 首席架构师笔记:两种方案如何选?”
比较
特性方案 A:全局通配流方案 B:精准放行流
操作成本一次配置,终身受益增加一个服务就得配一次
安全等级较低(全靠内网网关拦截)极高(边缘防火墙拦截)
维护难度极简略繁琐
适合场景开发测试、单人 Homelab多用户环境、核心敏感服务

总结:如果你是个像我一样的“懒人”极客,追求 GitOps 的极致自动化,选 方案 A;如果你对安全有近乎偏执的追求,或者有些服务(如数据库面板)坚决不能见光,选 方案 B

这种“双层 HTTPS 加密网关”的设计,既保住了外网访问的 SSL 合法性,又实现了内网链路的绝对安全。这,就是赛博总工的艺术!


🛡️ 第六步:部署赛博红线防御 (访问控制)

Section titled “🛡️ 第六步:部署赛博红线防御 (访问控制)”

防线 A:IP 白名单封锁 (Access Lists)

Section titled “防线 A:IP 白名单封锁 (Access Lists)”

如果你只想让公司 IP 或者连入虚拟局域网(如 WireGuard)的设备访问某个特定域名,这是最稳健的选择。

  1. 创建列表:导航至 Services ‣ Caddy ‣ Reverse Proxy ‣ HTTP Access ‣ Access Lists,新建一个列表。
  2. 配置网段Client IP Addresses 填入允许的网段(如 192.168.1.0/24 10.0.10.0/24)。
  3. 绑定应用:在 Subdomains 选项卡中编辑对应子域名,在 Access 菜单下选择该 Access List。

防线 B:基础账号密码认证 (Basic Auth)

Section titled “防线 B:基础账号密码认证 (Basic Auth)”

核心逻辑:防火墙规则通常是针对端口的“AOE 伤害”,而 Basic Auth 则是一个精准的“赛博保安”。它守在特定域名的门口,任何匿名连接在触碰到后端服务之前,必须先经过身份验证。

1. 锻造“通行钥匙” (创建用户)

Section titled “1. 锻造“通行钥匙” (创建用户)”
  1. 导航至 Services ‣ Caddy ‣ Reverse Proxy ‣ HTTP Access ‣ Basic Auth
  2. 点击 + 号创建一个新用户:
    • User: 输入用户名(例如 cyberbuilder)。
    • Password: 输入一个高强度的密码。
  3. 点击 Save

2. 在“全局通配”中精准锁定特定服务 (点杀鉴权)

Section titled “2. 在“全局通配”中精准锁定特定服务 (点杀鉴权)”

如果你使用了“全局通配流”(即 Subdomain 留空的 Handler),但想单独给 longhorn 加锁,请按照以下“优先级覆盖”逻辑配置:

  1. 登记身份:在 Subdomains 选项卡里,先为 Longhorn 建立条目:
    • Domain: *.k3s.besthomelab.tech
    • Subdomain: longhorn.k3s.besthomelab.tech
  2. 铺设专属安检轨道:新建一个 Handler(处理程序):
    • Subdomain: 下拉选择刚才登记的 longhorn
    • HTTP Headers: 在下拉列表里勾选你刚才创建的那个 Host 标头。
    • Upstream Protocol/Port: https:// / 443
    • TLS Server Name: 明确写死 longhorn.k3s.besthomelab.tech
    • Access (关键): 在 Basic Auth 下拉框中勾选你创建的保安账号。
  3. 保存并应用

💡 首席架构师笔记:优先级逻辑 在 Caddy 中,具体规则优先于通配规则

  • 访问 seerr:匹配不到精准规则 -> 进入“留空”的全局 Handler -> 直接通车
  • 访问 longhorn:匹配到精准域名规则 -> 进入“加锁”的专属 Handler -> 弹出鉴权

确保手机使用 5G 网络,在浏览器输入:https://seerr.k3s.besthomelab.tech。 页面瞬间秒开,点击浏览器地址栏的小锁头,你会惊喜地发现:这是一张由 Let’s Encrypt 签发的完美四级泛域名证书!

至此,赛博堡垒的高速直达高铁正式全线通车!

🎁 彩蛋:通过 Caddy 安全反代 OPNsense WebGUI

Section titled “🎁 彩蛋:通过 Caddy 安全反代 OPNsense WebGUI”

既然 Caddy 成了总网关,我们完全可以给 OPNsense 面板分配一个优雅的域名(如 opn.k3s.besthomelab.tech),彻底告别输入 IP 和端口号的日子!

第一步:登记“通行证” (Subdomains)

Section titled “第一步:登记“通行证” (Subdomains)”

在开启精准放行前,我们先要在 Caddy 里给特定的应用“上户口”。

  1. 导航至 Services ‣ Caddy Web Server ‣ Reverse Proxy ‣ Subdomains,点击 +
    • Domain: 选择你的泛域名 *.k3s.besthomelab.tech
    • Subdomain: 明确填入你想暴露的opn域名地址,例如 opn.k3s.besthomelab.tech
  2. 点击 Save

第二步:铺设“全链路加密”轨道 (Handlers)

Section titled “第二步:铺设“全链路加密”轨道 (Handlers)”

现在,我们要为 OPNsense 铺设一条专属的 HTTPS 轨道。

  1. 导航至 Services ‣ Caddy Web Server ‣ Reverse Proxy ‣ Handlers,点击 +
    • Domain: 选择 *.k3s.besthomelab.tech
    • Subdomain: 下拉选择刚才登记的 opn.k3s.besthomelab.tech
    • Upstream Protocol: 选择 https:// (开启全链路加密)。
    • Upstream Domain: 填入 opnsense 的内网 IP 127.0.0.1
    • Upstream Port: 8443(实际的端口)。
    • TLS Insecure Skip Verify: 勾选 ✅。
    • 🚨 TLS Server Name: 明确填入 opn.k3s.besthomelab.tech。(不填也行)
    • HTTP Headers: 在下拉列表里勾选你刚才创建的那个 Host 标头。
  2. 点击 Save & Apply

保存应用,外网安全访问 OPNsense 面板达成!