如何在 OPNSense 中解析本地主机名
我的路由器运行的是 OPNSense Business。我喜欢使用开源路由器,但它也有几个让我不满的地方。
最大的问题是,默认情况下 OPNsense 无法解析我本地网络中的主机名。
为什么 OPNsense 无法解析本地主机名?
对于我以前用过的所有路由器,只要我的网络里有一台名为 foo123 的计算机,我在主桌面机上运行 ping foo123,一切就都能正常工作。我的桌面机可以成功 ping 通 foo123。
而在 OPNsense 上,我无法从桌面机 ping 通 foo123。OPNsense 默认似乎不解析本地主机名,我不明白为什么。
我找到了一些能稍微改善这种情况的变通办法,但仍然不够完美。
让 Unbound 解析本地主机名
进入 Services > Unbound DNS > General。
勾选以下选项:
- Register ISC DHCP4 Leases
- Register DHCP Static Mappings

在 Unbound 设置中勾选 “Register ISC DHCP4 Leases” 和 “Register DHCP Static Mappings”
点击 Apply 以应用更改。
手动指定主机名
尽管已经配置了 Unbound,我发现 OPNsense 仍然不总是能解析本地主机,我也不知道原因。
在只需要 OPNsense 完成解析的情况下,我会手动强制指定映射。
选择一个本地域名
- 进入 System > Settings > General。
- 在 “Domain” 下为你的本地网络指定一个域名。
- 我一直以为应该选择
local,但帮助文本警告说不能这么做。 - 我选择了
home.arpa,因为这是家庭网络技术上正确的域名,不过它实在很难看。 - 根据 IETF 的定义,域名实际上应该是
home.arpa.(带一个末尾的点),但 OPNsense 不接受这种写法作为域名,并推荐使用home.arpa,所以我就沿用这个写法。
- 我一直以为应该选择
- 点击 “Save” 保存更改。

为主机创建静态映射
- 进入 Services > ISC DHCPv4 > Leases
- 在主机列表中找到你想让 OPNsense 解析的那台主机。
- 点击表格行末尾的
+图标。这会带你进入 Static DHCP Mapping(静态 DHCP 映射)对话框。 - 在
IP address字段中输入一个本地 IP 地址。 - 点击 “Save” 保存这个静态 IP 映射。
为主机名创建手动覆盖
- 进入 Services > Unbound DNS > Overrides。
- 在 “Host Overrides” 下,点击橙色的 “+” 按钮添加一个新的覆盖条目。
- 在 “Host” 下输入你在静态映射中指定的主机名。
- 在 “Domain” 下输入
home.arpa。 - 在 “IP address” 下输入你在静态映射中选择的 IP 地址。
- 点击 “Save”。
指定带 .home.arpa 域名后缀的主机
有时,当 OPNsense 无法解析主机 foo123 时,它却可以成功解析 foo123.home.arpa,所以当裸主机名不奏效时,我总会尝试加上域名后缀。
我不确定 OPNsense 为什么需要这个后缀,因为缺少域名本应清楚地表明我说的是本地网络上的一台主机,但 .home.arpa 域名有时确实能起作用。
还有其他改进方法吗?
如果你有让 OPNsense 的主机名解析不那么脆弱、更加可靠的建议,欢迎在评论区告诉我。
随机一篇博客