OPNsense 分流教程
192.168.1.1/24,CMSingBox 为 192.168.1.20。先创建旁路网关和别名,再用 LAN 防火墙规则选择设备与目标。一、CMSingBox 端准备
在 CMSingBox 开启独立 DNS和透明代理,监听 DNS 0.0.0.0:53。直连 DNS 使用 udp://192.168.1.1:53,代理 DNS 内部入口保持 127.0.0.1:1053。确认 sing-box 正常运行。
二、创建 CMSingBox 网关
进入 System → Gateways → Configuration,新增 IPv4 网关:
| 字段 | 值 |
|---|---|
| Name | CMSINGBOX_GW |
| Interface | LAN |
| Gateway IP | 192.168.1.20 |
| Far Gateway | 按版本需要启用 |
| Disable Gateway Monitoring | 先启用,避免 ICMP 状态误判 |
应用后确认网关没有因监控显示离线而被策略规则跳过。
三、建立别名
进入 Firewall → Aliases,建立两个别名:
proxy_device:需要分流的客户端 IP。建议先设置静态 DHCP 映射。proxy_cidr:目标网络,至少加入198.18.0.0/15;纯 IP 应用可追加对应网段。
198.18.0.0/15
91.108.4.0/22
91.108.8.0/22
91.108.12.0/22
91.108.16.0/22
91.108.20.0/22
91.108.56.0/22
91.105.192.0/23
149.154.160.0/20
185.76.151.0/24proxy_device 中不能包含 192.168.1.20 或 OPNsense 自身。四、配置 DNS
整个 LAN 使用
Services → DHCPv4 → LAN,把 DNS server 设为 192.168.1.20。
指定设备使用
进入 Firewall → NAT → Port Forward,创建 UDP 53 和 TCP 53 两条规则:接口 LAN,来源 proxy_device,目标 This Firewall/LAN address,重定向到 192.168.1.20:53。把自动生成的关联规则放在阻断规则之前。
五、配置策略路由
Firewall → Rules → LAN 新建 Pass 规则:
| 字段 | 值 |
|---|---|
| Source | proxy_device,或全 LAN |
| Destination | proxy_cidr |
| Gateway | CMSINGBOX_GW |
| Protocol | any |
将它移到普通 LAN allow、默认网关和阻断规则之前。若 OPNsense 开启自动回包检查后出现非对称路由问题,可只针对该规则检查 Disable reply-to/State Type,避免全局关闭状态防火墙。
六、出站 NAT
在 Firewall → NAT → Outbound 选择 Hybrid 模式,为 LAN 到 192.168.1.20 的流量建立源地址转换,使 CMSingBox 回包仍经 OPNsense。不要对 CMSingBox 自身的互联网出口再次套用旁路网关。
七、IPv6
尚未配置 IPv6 FakeIP 路由时,停止向这些客户端下发其他 IPv6 DNS。否则浏览器可能优先采用 IPv6 解析与直连,造成分流时好时坏。
八、验证与回滚
- 重新获取 DHCP,检查 DNS 和查询结果。
- 查看 Firewall → Log Files → Live View,确认规则命中。
- 检查 CMSingBox DNS 监控和代理控制台。
- 回滚时先禁用 LAN 策略路由与 DNS Port Forward,再恢复原 DHCP DNS。