查看本机域名记录的核心在于检查操作系统的本地DNS缓存与Hosts文件,这是排查网络连接故障、验证域名解析生效情况以及进行本地开发环境配置的最直接手段,通过命令行工具或文本编辑器,用户可以清晰地看到当前计算机是如何将域名映射到IP地址的,从而判断是否存在解析错误或劫持风险。

Windows系统下查看域名记录
在Windows操作系统中,查看本机域名记录主要依赖于命令提示符(CMD)提供的网络工具,以及检查系统目录下的Hosts文件,这两种方法结合使用,能够全面覆盖动态缓存与静态配置。
使用CMD查看DNS解析缓存
Windows系统会将访问过的域名解析结果暂时存储在缓存中,以便加快后续访问速度,要查看这些动态记录,需要使用ipconfig命令配合特定参数。
- 以管理员身份运行命令提示符,按下Win+R键,输入“cmd”,然后按Ctrl+Shift+Enter以管理员权限启动。
- 输入命令
ipconfig /displaydns并回车。 - 系统将列出当前缓存中的所有域名记录,输出信息中包含“记录名称”、“类型”、“数据”和“生存时间”。
- 记录名称:你访问的网址。
- 类型:通常为A记录(IPv4地址)或AAAA记录(IPv6地址)。
- 数据:解析到的具体IP地址。
检查Hosts静态映射文件
Hosts文件的优先级高于DNS服务器,如果该文件中存在特定映射,系统将直接使用该IP,不再查询DNS。
- 通过文件资源管理器导航至路径
C:\Windows\System32\drivers\etc\。 - 找到名为
hosts的文件(无后缀名)。 - 使用记事本或其他文本编辑器打开该文件,注意,需要以管理员身份运行编辑器才能修改和保存。
- 文件中每一行未被“#”注释的内容,即为一条静态域名记录,格式通常为
IP地址 域名,0.0.1 localhost。
macOS系统下查看域名记录
macOS系统基于Unix内核,查看域名记录的方式更为灵活,主要通过终端(Terminal)来操作,macOS不仅维护DNS缓存,还通过scutil等工具管理解析器配置。
使用终端查看DNS缓存与配置
在较新的macOS版本中,直接查看纯DNS缓存的命令有所变化,通常通过查看解析器状态来推断。

- 打开“终端”应用(位于“应用程序”->“实用工具”文件夹)。
- 输入命令
scutil --dns并回车,此命令将显示详细的DNS解析配置,包括resolver配置、缓存策略以及已知的域名解析顺序。 - 若要查看具体的缓存统计信息,可以使用命令
sudo killall -INFO mDNSResponder,这会将缓存统计信息输出到系统日志中,随后通过log show --predicate 'process == "mDNSResponder"' --last 5m来查看,虽然过程相对复杂,但这能提供最底层的解析数据。
检查macOS的Hosts文件
macOS的Hosts文件位置与Linux类似,是本地域名解析的关键节点。
- 在终端中输入命令
cat /etc/hosts即可快速查看文件内容。 - 如果需要编辑,可以使用
sudo nano /etc/hosts命令。 - 的逻辑与Windows一致,任何未注释的行都代表一条强制生效的域名映射规则,在macOS中,修改Hosts文件后,通常需要运行
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder来刷新DNS缓存,使配置立即生效。
Linux系统下查看域名记录
Linux发行版众多,但查看域名记录的原理基本一致,主流的现代Linux发行版(如Ubuntu 20.04+, CentOS 8+)多使用systemd-resolved服务来管理DNS解析。
通过systemd-resolved查看缓存
对于使用systemd的系统,查看本地域名记录非常直观。
- 打开终端。
- 输入命令
systemd-resolve --statistics,这将显示DNS解析器的统计信息,包括当前缓存中的域名数量、命中次数等。 - 若要查看具体的缓存表,可以使用
resolvectl(较新版本)或查看特定日志,虽然直接列出所有缓存条目的命令不如Windows直观,但可以通过getent hosts example.com来测试特定域名在当前系统解析环境下的结果,这综合了Hosts文件和DNS缓存的实际输出。
检查Linux的Hosts文件
Linux的Hosts文件是网络配置的基础。
- 使用命令
cat /etc/hosts查看内容。 - 该文件在Linux中权限控制严格,通常只有root用户才能修改。
- 在Linux服务器运维中,熟练掌握Hosts文件的配置对于在公网域名未生效前进行服务测试至关重要。
深度解析与专业见解
理解本机域名记录的查看方法,不仅仅是掌握几个命令,更需要理解域名解析的优先级顺序,这是排查“为什么我访问的域名指向了错误的IP”这类问题的核心逻辑。

解析优先级遵循金字塔结构:
- 浏览器缓存:浏览器自身会记录DNS结果,优先级最高。
- 系统Hosts文件:操作系统的静态配置,优先级极高,常用于屏蔽广告或本地测试。
- 系统DNS缓存:由操作系统网络栈维护的临时记录。
- ISP DNS服务器:向网络运营商发起查询。
专业解决方案建议:
当发现域名解析异常时,不要急于修改网络设置,首先应使用上述命令检查本机Hosts文件是否被恶意软件篡改,其次使用ipconfig /flushdns(Windows)或sudo systemd-resolve --flush-caches(Linux)清除缓存,如果问题依旧,建议使用nslookup或dig工具直接向权威DNS服务器发起查询,以排除本地缓存干扰,这种分层排查法能迅速定位问题是出在本地环境还是上游DNS服务商。
相关问答
Q1:修改了Hosts文件后,为什么域名解析没有立即生效?
A: 这通常是因为本地DNS缓存尚未更新,操作系统为了提高性能,会优先读取内存中的缓存数据,修改Hosts文件后,必须手动执行清除DNS缓存的命令,在Windows中是ipconfig /flushdns,在macOS中是sudo dscacheutil -flushcache,在Linux中则是重启相关网络服务或使用systemd-resolve --flush-caches,清除缓存后,系统才会重新读取硬盘上的Hosts文件。
Q2:如何判断一个域名是直接解析自Hosts文件还是查询了DNS服务器?
A: 最简单的方法是观察解析速度或使用特定的调试工具,在Windows上,ipconfig /displaydns的输出中,虽然不会直接标注来源,但可以通过对比,更专业的方法是使用nslookup工具,如果nslookup解析出的IP与Hosts文件中的一致,可以尝试暂时注释掉Hosts文件中的对应行,再次解析,如果结果变了,说明之前确实读取的是Hosts文件,而在Linux上,getent hosts命令会严格按照/etc/nsswitch.conf中定义的顺序(通常是files先于dns)进行解析,其结果即为当前系统的最终解析结果。
希望这篇详细的指南能帮助你更好地掌握本机域名记录的查看技巧,如果你在操作过程中遇到任何问题,或者有更高效的排查方法,欢迎在评论区分享你的经验。


















