系统DNS vs. DNS转发器/解析器
在开始之前,理解两个关键概念很重要:
1、系统DNS(System DNS):这是OPNsense防火墙自身用来解析域名(例如检查更新、连接时间服务器等)所使用的DNS服务器地址。
2、DNS转发器/解析器(DNS Forwarder/Resolver):这是OPNsense为内网中的客户端设备(如你的电脑、手机等)提供的DNS服务,客户端会将DNS查询请求发送给OPNsense,再由OPNsense代表客户端去查询公共DNS服务器。
绝大多数情况下,您需要设置的是第二部分,即让OPNsense为您的整个网络提供DNS服务。
第一部分:设置系统DNS(防火墙自身使用的DNS)
这是最基础的一步,确保防火墙本身能正常访问互联网。
1、 登录OPNsense Web管理界面。
2、 进入System > Settings > General。
3、 找到DNS 设置区域。
4、DNS Servers:
* 取消勾选"Allow DNS server list to be overridden by DHCP/PPP on WAN"(禁止WAN口从ISP自动获取DNS),这是一个好习惯,可以避免ISP的DNS劫持或不可靠的DNS服务。
在下方输入框中,添加您喜欢的公共DNS服务器地址,例如
1.1.1.1
(Cloudflare)
8.8.8.8
(Google)
208.67.222.222
(OpenDNS)
223.5.5.5
(阿里云)
* 您可以添加多个,OPNsense会按顺序使用。
5、 点击页面底部的Save 按钮保存设置。
第二部分:启用并配置DNS解析器(Unbound) - 推荐方式
OPNsense默认使用Unbound作为DNS解析器,它功能强大,支持DNSSEC、DNS-over-TLS等高级功能,推荐大多数用户使用。
1、 进入Services > Unbound DNS > General。
2、 确保Enable Unbound 复选框被勾选,如果之前没动过,它默认是开启的。
3、监听设置(Listen Port):
* 保持默认端口53
即可。
4、网络接口(Network Interfaces):
* 勾选你的内网接口(如LAN
),这允许内网客户端向OPNsense的53端口发送DNS请求。
* 为了安全,不要勾选 WAN 接口,除非你有特殊需求。
5、DNS查询转发(Outgoing Interfaces):
* 保持默认的"Automatic" 即可,让系统自动选择出口。
6、DNS 服务器(DNS Over TLS):
* 这是可选但强烈推荐的安全功能,它会对OPNsense和上游DNS服务器之间的通信进行加密。
* 勾选"Use DNS-over-TLS"。
在Server SSL 框里,填写支持DoT的DNS服务器地址,格式为服务器IP@端口
,
1.1.1.1@853
8.8.8.8@853
* 可以添加多个。
7、其他重要选项:
Enable DNSSEC Support: 勾选,DNSSEC可以验证DNS响应的真实性,防止DNS欺骗攻击。
Register DHCP Leases: 勾选,允许通过DHCP获取IP的设备的主机名被注册到DNS中,这样你在内网可以用主机名访问其他设备。
Register DHCP Static Mappings: 勾选,为静态DHCP分配的地址也注册主机名。
8、 点击Apply 按钮应用设置。
第三部分:配置DHCP服务器下发DNS地址
现在OPNsense自身已经准备好了提供DNS服务,你需要告诉内网的所有客户端:“请把DNS查询请求发送给OPNsense”。
这通常通过DHCP服务来自动完成。
1、 进入Services > DHCPv4 > [您的LAN接口](通常是LAN
)。
2、 向下滚动到DNS servers 部分。
3、重要:确保"DNS servers" 和"Gateway" 这两个输入框是空的。
4、 勾选下方的"Allow DNS server list to be overridden by DHCP/PPP on WAN" 选项(这个选项在这里的含义是“将本系统DNS设置下发给客户端”)。
5、 这样设置后,当客户端通过DHCP获取IP地址时,它会自动将OPNsense防火墙的LAN口IP地址(例如192.168.1.1
)作为DNS服务器。
6、 点击页面底部的Save 按钮。
注意:对于已经连接的设备,可能需要重启网络或续约DHCP(ipconfig /renew
或在系统设置里断开重连Wi-Fi)才能立即生效。
完成所有设置后,请进行验证:
1、 在内网的一台电脑上,打开命令提示符(CMD)或终端。
2、 运行nslookup google.com
或ping google.com
。
3、 如果能够正常解析出IP地址,说明设置成功。
4、 你可以访问https://1.1.1.1/help
或https://www.dnsleaktest.com/
来检查DNS泄漏和是否使用了DoT加密,它应该显示你设置的DNS服务器(如Cloudflare/Google)而不是你ISP的服务器。
替代方案:使用DNS转发器(Dnsmasq)
有些用户可能更习惯使用Dnsmasq(例如从pfSense迁移过来),如果需要,可以关闭Unbound并启用Dnsmasq。
1、 进入Services > Unbound DNS > General,取消勾选"Enable Unbound",点击Apply。
2、 进入Services > Dnsmasq DNS > General,勾选"Enable"。
3、 在"Listen Interfaces" 中,选择你的内网接口(如LAN
)。
4、 在"Other Settings" >"Strict Order" 或"DNS Query Forwarding" 中配置上游DNS服务器。
5、 点击Save 然后Apply。
注意:Unbound和Dnsmasq不要同时启用,它们都会使用53端口,会导致冲突。
步骤 | 位置 | 关键操作 |
1. 设系统DNS | System > Settings > General | 取消覆盖,手动添加可靠公共DNS |
2. 启用解析器 | Services > Unbound DNS > General | 启用Unbound,监听LAN口,推荐开启DoT和DNSSEC |
3. 下发DNS地址 | Services > DHCPv4 > [LAN] | 清空DNS服务器字段,勾选“Override”选项 |
按照这个流程操作,您的OPNsense防火墙就能成为一个安全、可靠且快速的家庭或企业网络DNS中心了。
文章摘自:https://idc.huochengrm.cn/dns/15007.html
评论
睦今歌
回复本文介绍了如何在OPNsense中设置系统DNS和启用配置解析器(Unbound),并提供了详细的步骤,完成这些操作后,您的防火墙可以成为一个安全可靠的家庭或企业网络中心来提供域名服务查询请求的功能了!
藏如曼
回复在OPNsense中设置DNS,进入网络选项卡,点击DNS配置界面,添加DNS服务器地址即可。