OPNsense 配备了功能齐全的正向缓存(透明)代理。缓存代理通过缓存对频繁请求的网页减少带宽使用并缩短响应时间。访问控制列表可用于用户身份验证和/或(基于类别)Web 过滤器。
功能包括:
- 多接口支持
- 透明模式(包括 SSL/HTTPS)
- ICAP 支持反病毒/恶意软件引擎
- HTTP 代理
- FTP 代理
- 用户认证
- 访问控制列表(对 HTTP(S) 和 FTP 均有效)
- 黑名单
- 基于类别的 Web 过滤
- 可与流量整形器结合使用

认证
用户身份验证可使用 OPNsense 标准和内置验证器完成,包括:
- LDAP(含 Microsoft Active Directory)
- Radius
- 本地用户管理
- 不进行认证
访问控制
OPNsense 支持全面的访问控制,可基于:
- 子网
- 端口
- MIME 类型
- 禁止 IP
- 白名单
- 黑名单
- 浏览器/用户代理
流量控制
代理可与流量整形器结合并充分利用其整形功能,此外还有自己的选项:
- 最大下载量
- 最大上传量
- 整体带宽限制
- 每个主机带宽限制
基于类别的 Web 过滤器
无需额外插件(如 squidGuard),OPNsense 内置基于类别的 Web 过滤支持。主要功能包括:
- 从远程 URL 获取
- 支持平面文件列表和基于类别的压缩列表
- 自动将基于类别的黑名单转换为 squid ACL
- 内置调度程序保持更新
- 兼容最受欢迎的黑名单
透明模式
透明模式意味着所有请求都将转移到代理,无需在客户端进行任何配置。透明模式适用于不安全的 HTTP 请求,但对安全(SSL)HTTPS 连接,代理会成为中间人,因为客户端将与代理“对话”,代理将使用客户端需要信任的主密钥对流量进行加密。
虽然我们不鼓励在透明模式下使用 HTTPS,但此功能从 16.7 版本起已发布。
警告:使用透明 HTTPS 代理可能是一种危险的做法,某些服务(如网上银行)可能不允许这种做法。
WPAD 和 PAC
如果无法使用透明代理,OPNsense 仍支持通过 WPAD/PAC 进行自动代理配置。
警告:通过 DNS 的 WPAD 要求 Web 界面在默认 HTTP 端口(TCP/80)上运行,这也是一种安全风险(MITM 攻击)。在这种情况下,应通过代理连接或避免从不受信任的网络配置应用程序。
设置高速缓存代理

启用/禁用
要启用代理,请转到 “服务” → “Web代理” → “管理”,选中 “启用代理”,单击 “应用”。默认设置将使用基于本地用户数据库的身份验证、在 LAN 接口的端口 3128 上运行。
更改代理接口
若要更改代理绑定的接口(子网),请点击 “正向代理” 选项卡,在 代理接口 字段中添加/删除接口。添加时确保已应用并且标签可见。
更改代理侦听端口
默认端口为 3128,可在 “正向代理” 选项卡中修改 代理端口,然后 应用 更改。
启用缓存
点击 “代理设置” 旁边的箭头展开菜单,选择 “本地缓存设置”。

选中 启用本地缓存,单击 应用。
注意: 由于默认不创建缓存,您需要在 系统 → 诊断 → 服务 下停止并启动服务,以确保正确创建缓存。
高级
在高级设置(表单左上角的模式切换)中,可以更改缓存大小、目录结构和缓存中最大对象尺寸。默认创建一个 100 MB 缓存,最大对象尺寸 4 MB。
变更认证方法
点击 正向代理 选项卡旁边的箭头,选择 认证设置,在 认证方法 字段中选择所需的认证源。若不想使用认证,点击 清除所有。
根据在 系统 → 访问 → 服务器 中设置的认证服务器,可以选择:
- 无身份验证(留空)
- 本地用户数据库
- LDAP
- Radius
FTP 代理
启用 FTP 代理:在 正向代理 下拉菜单中选择 FTP代理设置,在 FTP代理接口 字段中选择一个或多个接口并 应用。
注意: FTP 代理仅在代理服务器本身启用时才起作用,且仅适用于非加密的 FTP 流量。
访问控制列表
通过点击 “正向代理” 旁边的箭头并选择 “访问控制列表” 可以设置 ACL。在这里可以:
- 设置允许的子网(默认允许代理接口)
- 添加不受限制的 IP 地址(无身份验证、无黑名单)
- 添加禁止主机 IP 地址(阻止使用代理)
- 白名单(优先于黑名单)
- 黑名单(根据正则表达式阻止流量)
警告: 填写标记字段后,请按 Enter 或逗号确认,否则值不会被应用。正确示例如下:

远程黑名单/广告拦截
使用简单的平面文件屏蔽广告。此处以广告列表为例:
http://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml
此列表为简单的平面列表,例如:
101com.com
101order.com
123found.com
180hits.de
180searchassistant.com
1x1rank.com
207.net
247media.com转到 “服务” → “Web代理” → “管理”,点击 “远程访问控制列表” 选项卡,然后点击表单右下角的 + 添加新列表。
填写信息:
| 字段 | 值 | 说明 |
|---|---|---|
| 启用 | 选中 | 启用/禁用 |
| 文件名 | yoyoads | 唯一文件名 |
| 网址 | (粘贴 URL) | 黑名单 URL |
| 类别 | (留空) | 用于基于类别的 Web 过滤 |
| 描述 | YoyoAds Blacklist | 描述说明 |
(以下截图基于 16.1.4 版本,与最新版可能有差异)

保存更改,然后点击 下载 ACLS 并应用 以启用黑名单/广告拦截。
防火墙规则:无代理绕过
为确保无人绕过代理,需添加防火墙规则。转到 防火墙 → 规则,在 LAN 接口规则顶部添加以下内容(假设 LAN 是客户端和代理所在位置)。
阻止 HTTP 绕过的规则:
| 字段 | 值 |
|---|---|
| 操作 | 阻止 |
| 接口 | LAN |
| 协议 | TCP/UDP |
| 源 | LAN |
| 目标端口范围 | HTTP |
| 类别 | 阻止代理绕过 |
| 描述 | 阻止 HTTP 绕过 |
保存
还需添加阻止 HTTPS 访问的规则:
| 字段 | 值 |
|---|---|
| 操作 | 阻止 |
| 接口 | LAN |
| 协议 | TCP/UDP |
| 源 | LAN |
| 目标端口范围 | HTTPS |
| 类别 | 阻止代理绕过 |
| 描述 | 阻止 HTTPS 绕过 |
保存 并 应用更改。

配置浏览器 / Firefox
以 Firefox 为例,其他浏览器同理。打开网络设置,按如下方式配置:

设置 Web 过滤
OPNsense 中基于类别的 Web 过滤通过内置代理和免费或商业黑名单实现。
这里使用 Fabrice Prigent 管理的 Université Toulouse 的 UT1 “网络分类列表”,该列表根据知识共享许可免费提供。
其他常用列表:
- Shallalist.de — 免费个人使用,部分用于商业
- URLBlacklist.com — 商业付费服务
- Squidblacklist.org — 商业付费服务
本教程假设:
- 代理使用默认设置/未配置
- 只需要网页过滤,不需要缓存、身份验证等
第 1 步 – 禁用身份验证
转到 “服务” → “Web代理” → “管理”,点击 正向代理 选项卡旁边的箭头,选择 认证设置,单击 清除所有 以禁用用户认证,然后 应用。
第 2 步 – 配置黑名单
点击 “远程访问控制列表” 选项卡,点击右下角的 + 添加新列表,填入以下信息:
| 字段 | 值 | 说明 |
|---|---|---|
| 启用 | 选中 | 启用/禁用 |
| 文件名 | UT1 | 唯一文件名 |
| 网址 | ftp://ftp.ut-capitole.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz | 黑名单 URL |
| 类别 | (留空) | 留空则获取完整列表 |
| 描述 | UT1 web filter | 描述说明 |

保存更改。
第 3 步 – 下载类别
按 下载 ACL,由于完整列表(大于 19 MB)需转换为 squid ACL,可能需要一段时间。
第 4 步 – 设置类别
点击列表说明旁的铅笔图标打开编辑窗口,此时会显示所有可用类别。

本示例过滤“广告”和“成人”内容。清除列表并从下拉菜单中选择相应类别:

保存更改,再次按 下载 ACL 以下载并重建包含所选类别的列表。这可能需要与上次相近的时间,因为单独的成人部分约为 15 MB。
第 5 步 – 启用代理
转到 “服务” → “Web代理” → “管理”,选中 “启用代理”,单击 应用。代理将绑定到 LAN 并监听端口 3128。
代理启动可能需要一段时间,右上角的播放图标变为红色后,刷新页面,待图标变为绿色即表示加载完成。
第 6 步 – 禁用代理旁路
添加防火墙规则防止绕过代理。进入 防火墙 → 规则,在 LAN 接口顶部添加:
阻止 HTTP 规则:
| 字段 | 值 |
|---|---|
| 操作 | 阻止 |
| 接口 | LAN |
| 协议 | TCP/UDP |
| 源 | LAN |
| 目标端口范围 | HTTP |
| 类别 | 阻止代理绕过 |
| 描述 | 阻止 HTTP 绕过 |
保存
阻止 HTTPS 规则:
| 字段 | 值 |
|---|---|
| 操作 | 阻止 |
| 接口 | LAN |
| 协议 | TCP/UDP |
| 源 | LAN |
| 目标端口范围 | HTTPS |
| 类别 | 阻止代理绕过 |
| 描述 | 阻止 HTTPS 绕过 |
保存 并 应用更改。

设置透明代理
OPNsense 提供强大的代理,可与基于类别的 Web 过滤及任何支持 ICAP 的反病毒/恶意软件引擎结合。代理可配置为透明模式,客户端浏览器无需手动设置,所有流量通过 NAT 自动转移至代理。
本文介绍基本 HTTP 透明代理以及 HTTPS(SSL bump)透明代理模式。
警告: 透明 SSL/HTTPS 代理模式使用中间人技术,只有完全理解其原理时才应配置。错误配置可能降低安全性。网上银行等服务可能不允许此做法。
第 1 步 – 基本代理设置
要设置透明模式,需先完成基本的代理设置(参考前面章节)。
第 2 步 – 透明 HTTP
转到 服务 → Web代理 → 管理,在 正向代理 选项卡下选择 常规设置,勾选 启用透明 HTTP 代理,然后 应用。
第 3 步 – NAT / 防火墙规则
点击 启用透明 HTTP 代理 选项左侧的 (i) 图标,再点击 添加新的防火墙规则(红色部分),即可快速添加 NAT/防火墙规则。

默认设置参考:
| 字段 | 值 |
|---|---|
| 接口 | LAN |
| 协议 | TCP |
| 源 | LAN |
| 源端口范围 | 任意 |
| 目标 | 任意 |
| 目标端口范围 | HTTP |
| 重定向目标 IP | 127.0.0.1 |
| 重定向目标端口 | other / 3128 |
| 描述 | 将流量重定向到代理 |
| NAT 回流 | 启用 |
| 过滤规则关联 | 添加关联的过滤规则 |
保持默认值,保存 并 应用更改。
第 4 步 – 用于透明 SSL 的 CA
设置透明 SSL/HTTPS 代理前,需要创建证书颁发机构(CA)。转到 系统 → 证书 → 认证 或使用搜索框。

点击右上角的 添加或导入 CA,创建新 CA。示例数据:
| 字段 | 值 |
|---|---|
| 描述名称 | OPNsense-SSL |
| 方法 | 生成内部证书颁发机构 |
| 密钥长度 | 2048 位 |
| 摘要算法 | SHA256 |
| 有效期 | 356 天 |
| 国家代码 | NL |
| 州或省 | Zuid Holland |
| 城市 | Middelharnis |
| 组织 | OPNsense |
| 电子邮件 | [example@domain.com] |
| 通用名称 | opnsense-SSL-CA |
保存。
第 5 步 – 透明 SSL
进入 服务 → Web代理 → 管理,在 正向代理 → 常规设置 中,勾选 启用 SSL 检查,将 使用认证的 CA 设置为刚创建的 CA,然后 应用。
第 6 步 – 配置非 SSL Bump
这一步极为重要。为确保网上银行等已知站点的安全层不被破坏,需将其所有子域添加到 SSL免检站点 字段。输入时以点(.)开头,包含所有子域,然后按 Enter 接受。例如:.paypal.com 并按 Enter。
注意: 所有需提交个人或登录信息的银行站点都应添加到此字段。如不确定,请重新考虑使用透明 SSL。
第 7 步 – SSL NAT / 防火墙规则
点击 启用 SSL 检查 选项左侧的 (i) 图标,选择 添加新的防火墙规则。默认设置如下:
| 字段 | 值 |
|---|---|
| 接口 | LAN |
| 协议 | TCP |
| 源 | LAN |
| 源端口范围 | 任意 |
| 目标 | 任意 |
| 目标端口范围 | HTTPS |
| 重定向目标 IP | 127.0.0.1 |
| 重定向目标端口 | other / 3129 |
| 描述 | 将流量重定向到代理 |
| NAT 回流 | 启用 |
| 过滤规则关联 | 添加关联的过滤规则 |
确认无误后 保存 并 应用更改。
步骤 8 – 配置 OS / 浏览器
由于浏览器不信任代理的 CA,访问每个页面时都会收到安全警告。解决方法是将 CA 证书导入操作系统并设置为受信任。
进入 系统 → 证书 → 认证,点击右侧的导出图标导出 CA 证书。

在操作系统中导入并更改信任设置,以 OSX 为例:

警告: 系统将接受任何使用此 CA 证书签名的页面。只要私钥不被泄露,就是安全的。但若私钥被他人获取,所有流量都可能被解密。
设置 WPAD / PAC
OPNsense 支持生成 PAC 文件,为客户端提供自动代理配置文件。例如,若 Web GUI 运行在 http://192.168.0.1/,则 PAC URL 为 http://192.168.0.1/wpad.dat。
在 Firefox 中,可按以下步骤手动使用 PAC 配置代理:
- 点击菜单图标打开“设置”
- 向下滚动到“网络代理”,点击“设置”
- 选择“自动代理配置地址”
- 输入 PAC 文件的 URL 并点击“确定”
警告: 如果 PAC 文件不可用,浏览器可能无法连接互联网。不推荐在移动设备(如笔记本电脑)上为可能用于家庭办公的员工使用此类配置,此时应使用 WPAD。
配置 PAC
第一步:创建匹配
转到 “服务” → “Web代理” → “配置”,打开“匹配”(在 18.7.6 版本中是 “服务” → “Web代理” → Proxy-Auto-Config)。

输入匹配名称和可选说明,然后选择要匹配的内容。
| 字段 | 说明 |
|---|---|
| 名称 | 匹配的唯一名称,供规则调用 |
| 描述 | 简短描述 |
| 反转 | 反转匹配结果 |
| 匹配类型 | 选择匹配的方式 |
其余字段取决于选择的 匹配类型。例如,匹配“普通主机名”(Plain Hostname)表示域名不带点。若要创建一个 FQDN 匹配,可以反转这个条件:

| 字段 | 值 |
|---|---|
| 名称 | is_fqdn |
| 反转 | 选中 |
| 匹配类型 | Plain Hostname |
再创建一个匹配内部域名的例子:

| 字段 | 值 |
|---|---|
| 名称 | not_internal |
| 反转 | 选中 |
| 匹配类型 | Hostname matches |
| 主机模式 | 内部域的通配符 |
第二步:创建代理服务器
切换到 “服务” → “Web代理” → Proxy-Auto-Config → Proxies,添加新的代理服务器。
| 字段 | 说明 |
|---|---|
| 名称 | 代理名称,将在规则视图中显示 |
| 描述 | 可选说明 |
| 代理类型 | 直接连接(无代理)或选择代理类型 |
| URL | 除非是直接连接,否则输入代理 URL |
假设仅有一个 LAN 和一个 DMZ,且内部连接不走代理。需要创建两个返回值:LAN 代理和无代理。
直接连接(无代理)配置:

| 字段 | 值 |
|---|---|
| 名称 | direct |
| 代理类型 | Direct Connection |
| URL | (空) |
LAN 代理配置:

| 字段 | 值 |
|---|---|
| 名称 | lan_proxy |
| 代理类型 | proxy |
| URL | 代理IP:端口 |
第三步:创建规则
匹配和代理创建好后,转到 “服务” → “Web代理” → Proxy-Auto-Config → 规则 构建规则。
创建如下规则:

| 字段 | 值 |
|---|---|
| 启用 | 选中 |
| 描述 | (可选) |
| 匹配 | 选择前面创建的两个匹配 |
| 加入类型 | and |
| 匹配类型 | if |
| 代理 | lan_proxy |
保存后,点击右侧的橙色重载按钮,配置完成。
WPAD
Web 代理自动发现(WPAD)用于通过 DNS 或 DHCP 查找域名的 PAC 文件。
使用 DNS(Unbound)
方式 1:自动配置
在 Unbound DNS 常规设置中,勾选 自动配置 WPAD。

警告: 使用此选项会覆盖 wpad 主机和域名的 TXT 记录,可能影响同一域名的其他 TXT 记录(如 SPF)。
方式 2:手动配置
转到 服务 → Unbound DNS → 覆盖,为 wpad 主机添加新的主机覆盖。

| 字段 | 值 |
|---|---|
| 主机 | WPAD |
| 域名 | 你的域名 |
| 类型 | A 或 AAAA |
| IP | 能访问 Web 界面的 OPNsense IP 地址 |
| 描述 | (可选) |
保存 并应用更改。
警告: 使用 DNS 方式时,OPNsense 必须通过端口 80(HTTP)应答。
使用 DHCP
方式 1:自动配置
在 DHCP 服务器设置中,勾选 WPAD 自动配置选项。

系统将使用 系统设置 中配置的域名和 Web 界面端口,主机名为 wpad。若在端口 80 上运行,生成的 URL 为 http://wpad.example.com:80/wpad.dat。
方式 2:手动配置
进入 服务 → DHCP → 服务器,选择对应接口,滚动到“其他选项”,添加:

| 字段 | 值 |
|---|---|
| 数目 | 252 |
| 类型 | String |
| 值 | 用双引号括起来的 PAC 文件 URL |
Firefox 配置
打开设置菜单
有两种方式打开设置菜单:
或点击 编辑 → 首选项:
或直接点击菜单图标,再选择 首选项:

配置代理
在设置页面底部找到 网络代理,点击 设置。
在新窗口中,勾选 自动检测此网络的代理设置(即使用 WPAD/PAC),点击 确定 完成。

觉得内容不错?我要