软路由上的DNS使用记录
简述
- 软路由系统:
pfSense
- 使用的 DNS 服务:
DNS Resolver
- 可以考虑的 DNS 服务:
BIND DNS
笔者曾经成功的设置好了 BIND DNS
,但是最近这次的安装,怎么都无法成功设置, 所以就尝试了下自带的DNS Resolver
,非常简单,一次搞定。
详细内容
DNS Resolver
pfSense
自带这个包,而且这个是默认启用的服务,不需要安装新的 package。
点击导航栏的Services / DNS Resolver / General Settings
即可打开常规设置的面板。
向下拉取, 找到 Host Overrides
的字样, 点击下面的 + Add
按钮。
比如我现在想添加 owncloud.home.link 192.168.200.33
这样的一条记录。
- Host: owncloud
- Domain: home.link
- IP Address: 192.168.200.33
- Description: owncloud
- 如果你有另外一个域名也指向 192.168.200.33 比如 blog.home.link
- 那么可以在 Additional Names for this Host 里面直接追加
- Host name: blog
- Domain: home.link
- Description: blog
然后点击 Save 按钮即可保存。
返回到 General Settings 窗口之后可能会提示你需要 应用变化, 此时点击 Apply 应用下即可。
现在在客户机里面尝试命令 ping owncloud.home.link
可以看到有没有成功解析。
使用nslookup owncloud.home.link
也是可以的。
✅ 如果成功了, 那么你把想要解析的记录都添加进去即可。
❌ 如果没有成功。。 则需要调试下。
使用命令 nslookup owncloud.home.link 192.168.200.1
查看是否能成功解析。
此处的 192.168.200.1
是 pfSense 的LAN 地址。也是 DNS 服务所在的地址。
❌ 不能成功解析的话, 就查看上一步的操作,看看有没有问题,有没有写错。
✅ 能成功解析的话, 说明客户机的 DNS 服务器没有使用 192.168.200.1
。
在客户机里面使用下面的命令查看当前使用的 DNS 服务器。
- Windows :
ipconfig /all
- 在结果里面查看 DNS 服务器对应的 IP 地址即可。
- Mac/Linux:
cat /etc/resolv.conf
- nameserver 字样后面跟着的是当前使用的 DNS 服务器
此时,结果值应该没有192.168.200.1
或者除了 192.168.200.1
之外还存在其他的 DNS 服务器。
注: 如果存在多个 DNS 服务器,则是随机使用其中一个,而不是按序使用
客户机如果是手动指定的 DNS 服务器, 则设定为 192.168.200.1
即可。
如果是依赖软路由的 DHCP服务,则设置下即可。
打开菜单栏 Services / DHCP Server / LAN
下拉找到 Servers 标题, 里面有部分是 DNS Servers。 留空或者设置第一条为192.168.200.1
,其他都留空 应该可以解决问题了。
注意: 客户机需要重新请求 DHCP 才能生效, 简单来说就是把网线拔掉5秒再插上去应该就可以了。
BIND DNS
这个工具,我使用过好几次, 因为我重装了 pfSense 好几次。。 前几次折腾了挺久之后可以用了,本次无论如何折腾都不行, 所以就放弃了。 (本次的包是通过配置还原安装的, 不知道有没有关联。。 )
所以本部分内容可能是无价值的, 你可以选择跳过不读。
我个人对这个工具的感觉是: 极其难用
好了, 吐槽结束, 让我们开始设置把。
简单来说, 大概需要做下面的步骤。
- 添加一个
View
- 添加一个或者几个
Zone
- 关闭其他的 DNS 服务(DNS Resolver/DNS Forwarder 等)
- 启用 BIND DNS
点击 Services / BIND DNS Server
可以打开 BIND 的设置面板。
添加 View
点击 Views Tab, 点击 Add 按钮
- View Name: LanView
- Description: Default View Of LAN
- Recursion: Yes
- match-clients: any
- allow-recursion: any 或者 localnets
- Custom Options:
点击 Save 保存即可。
添加 Zone
一个 Zone 差不多对应一个 Domain ,就是一个域名。
比如我的域名是 owncloud.home.link && blog.home.link
,我建立的 ZONE 就是home.link
owncloud && blog
则是在 zone 里面填写的。
-
Domain Zone Configuration
- Disable This Zone: unchecked ( 不勾选 )
- Zone Name: home.link
- Description: zone of homelink
- Zone Type: Master
- View: LanView
-
Master Zone Configuration:
- TTL: 128
- Name Server: 192.168.200.1 (也许不对,但是我感觉是这样配置的。。)
- Base Domain IP: 192.168.200.1
- allow-query: any
-
Zone Domain records:
- Record: owncloud
- Type: A
- Priority:
- Alias or IP address: 192.168.200.33
点击 Save 保存即可。
关闭其他 DNS 服务
在 Services
菜单栏里面找找, 带 DNS 字样的可能都是, 点击进去之后, 第一个选项 Enable
确认是未勾选状态即可。
启动 BIND DNS
- Daemon Settings
- Enable BIND: checked (勾选)
- IP Version: IPv4
- Listen on: LAN && loopback ( 按住 CTRL 可以选俩)
点击 Save 即可。
过一会 服务应该就启动了,使用 nslookup www.baidu.com 192.168.200.1
可以先试试 BIND DNS 有没有成功启动, 然后使用nslookup
命令测试自己填写的域名即可。
扩展阅读
nslookup 命令 OK, 但是 ping 不通是怎么回事?https://plantegg.github.io/2019/01/09/%E5%B0%B1%E6%98%AF%E8%A6%81%E4%BD%A0%E6%87%82ping–nslookup-OK-but-ping-fail/