在网络管理中,域名系统(DNS)扮演着互联网“电话簿”的关键角色,它负责将人类易于记忆的域名(如 www.google.com)解析为机器能够识别的 IP 地址,对于使用 MikroTik RouterOS(简称 ROS)的网络管理员而言,熟练掌握查看和诊断 DNS 状态的技能是日常运维和故障排查的基础,本文将系统地介绍在 ROS 中查看 DNS 配置、缓存、静态记录以及执行实时查询的多种方法,旨在提供一个全面而实用的操作指南。

检查全局 DNS 配置
了解路由器当前使用的 DNS 服务器是诊断网络问题的第一步,所有的 DNS 核心配置都集中在 /ip dns 菜单中,通过 WinBox 或 SSH/Tel终端 连接到您的 ROS 设备,并执行以下命令:
/ip dns print
该命令会显示当前 DNS 服务的详细配置参数,一个典型的输出可能如下所示,下表对关键参数进行了解释:
| 参数 | 示例值 | 解释 |
|---|---|---|
servers |
8.8.8,1.1.1.1 |
路由器用于解析域名的外部 DNS 服务器地址,可设置多个,用逗号分隔。 |
allow-remote-requests |
yes |
是否允许局域网内的其他设备使用此路由器作为 DNS 服务器,开启后,路由器将成为一个缓存 DNS 服务器。 |
cache-size |
2048 |
DNS 缓存的最大条目数,较大的缓存可以提高常用域名的解析速度,但会占用更多内存。 |
cache-max-ttl |
1d |
DNS 缓存条目的最大生存时间,超过此时间的记录将被丢弃,即使其原始 TTL 更长。 |
max-udp-packet-size |
512 |
DNS 查询使用的最大 UDP 数据包大小,通常默认值即可,某些特殊情况可能需要调整。 |
use-doh-server |
https://dns.google/dns-query |
(可选)配置 DNS over HTTPS (DoH) 服务器,以增强查询的隐私性和安全性。 |
通过检查这些设置,您可以确认路由器是否配置了正确的上游 DNS 服务器,以及是否已启用为局域网提供 DNS 服务的功能。servers 字段为空,那么路由器将无法解析任何外部域名。
查看 DNS 缓存
RouterOS 会缓存所有成功解析的 DNS 查询结果,以便在下次请求相同域名时快速响应,从而减少对外部 DNS 服务器的依赖和网络延迟,查看 DNS 缓存可以帮助我们了解路由器最近解析了哪些域名,以及是否存在错误的或过期的缓存记录。
使用以下命令可以查看当前的 DNS 缓存内容:
/ip dns cache print
输出结果将包含一个列表,每一行代表一个缓存条目,主要包含以下信息:
- NAME: 被解析的域名。
- TYPE: 记录类型,如 A (IPv4地址)、AAAA (IPv6地址)、CNAME (别名)等。
- DATA: 解析得到的 IP 地址或其他数据。
- TTL: 该缓存条目的剩余生存时间(Time To Live),单位为秒。
如果缓存条目过多,您可以使用 where 条件进行筛选,只查看域名 example.com 的缓存记录:
/ip dns cache print where name="example.com"
当怀疑某个域名解析不正确是由于缓存了旧信息导致时,可以清空整个 DNS 缓存,执行以下命令即可:

/ip dns cache flush
清空缓存后,路由器在下一次查询该域名时,会重新向上游 DNS 服务器发起请求,获取最新的记录。
检查静态 DNS 记录
静态 DNS 记录允许管理员手动在路由器上创建域名到 IP 地址的映射,这对于在局域网内通过域名访问设备(如 NAS、服务器、打印机)非常有用,无需依赖外部 DNS 服务。
要查看所有已配置的静态 DNS 记录,请使用:
/ip dns static print
输出会列出所有手动添加的记录,下表展示了主要字段的含义:
| 参数 | 解释 |
|---|---|
name |
您希望创建的域名,nas.lan。 |
address |
该域名对应的 IP 地址,168.88.100。 |
type |
记录类型,通常是 A 记录(IPv4)。 |
ttl |
静态记录的 TTL,默认为 1 天。 |
检查此列表可以确认您为内网设备设置的域名是否正确,或者排查是否存在某个静态记录意外地覆盖了公网域名的解析(您设置了一个静态记录将 www.youtube.com 指向了一个内网 IP)。
执行实时 DNS 查询
除了被动查看配置和缓存,ROS 还提供了一个强大的工具来主动测试域名解析,类似于 Windows 下的 nslookup 或 Linux 下的 dig,这个工具就是 /tool dnslookup。
其基本语法如下:
/tool dnslookup name=<要查询的域名> server=<指定的DNS服务器>
name: 必填参数,指定您想要解析的域名。server: 可选参数,指定使用哪个 DNS 服务器进行查询,如果不指定,将使用/ip dns中配置的服务器。
示例: 使用 Google 的 DNS 服务器查询 mikrotik.com 的 IP 地址。

/tool dnslookup name=mikrotik.com server=8.8.8.8
执行后,终端会直接返回查询结果,显示该域名解析到的 IP 地址,这个工具在故障排查时极为有用,
- 测试某个特定的 DNS 服务器是否可达且响应正常。
- 绕过路由器的 DNS 缓存,直接从源头获取解析结果,以判断问题是否出在本地缓存。
相关问答 (FAQs)
我已经在 ROS 的 /ip dns 中更改了 DNS 服务器,为什么我的电脑上网速度还是很慢,或者访问某些网站仍然有问题?
解答: 这个问题通常由多层缓存导致,ROS 本身有 DNS 缓存,更改服务器后,旧的解析结果可能依然存在,您可以先在 ROS 上执行 /ip dns cache flush 清空缓存,您电脑的操作系统也有 DNS 缓存(Windows 下可以使用 ipconfig /flushdns 命令清空),您的浏览器也可能有自己的缓存,最彻底的排查方法是:1) 在 ROS 上清空 DNS 缓存;2) 在电脑上清空系统 DNS 缓存;3) 重启浏览器或清空浏览器缓存,如果问题依旧,可以使用 /tool dnslookup 指定新的 DNS 服务器进行测试,以确认新服务器本身工作正常。
我想让我的局域网设备(如手机、电脑)自动使用 ROS 路由器作为 DNS 服务器,以便利用其缓存和静态记录功能,该如何设置?
解答: 这需要两个步骤,第一步,在 ROS 上开启 DNS 服务功能,进入 /ip dns 菜单,将 allow-remote-requests 参数设置为 yes,第二步,确保您的 DHCP 服务器正确地向客户端分配 DNS 服务器地址,进入 /ip dhcp-server network,找到您为局域网分配的网段配置,检查 dns-server 字段,您可以将其设置为路由器的网关 IP 地址(168.88.1),这样所有通过 DHCP 获取 IP 地址的设备都会自动将路由器作为其首选 DNS 服务器,完成这两步后,局域网内的所有设备在访问网络时,都会先向 ROS 查询,从而享受到 DNS 缓存带来的加速和您自定义的静态域名解析服务。