域名反查IP这个操作, 说白了一件事儿, 就是用那些已经知道的域名去倒着查查它们被解析成了哪些个IP地址。这个动作呢, 在网络设备运维、安全问题排查还有CDN内容分发网络检测这些地方。都属于那种最基础的活儿。
你不管是想看清楚服务器到底放在哪里了, 还是想去搞清楚DNS污染是个什么情况, 又或者是想确认一下CDN节点都分布在了什么地方。这反查IP的事情, 那始终都得排在第一位。
接下来的文章里, 咱们会从方法这块、工具那块, 还有具体怎么做这些实际的方面这三个不同的维度里, 给大家提供一份完整的可以参考用的东西。
常用反查方法
1. 通过命令行来进行查询, 这算是最为基础的操作方式。
在Windows系统中, 用户可以在cmd里面执行nslookup example.com, 或者执行ipconfig /displaydns, 以此来查看本地DNS缓存。
在Linux或macOS系统上, 你可以执行dig example.com A这个命令, 或者执行host example.com这个命令。
返回结果, 当中A记录所对应的那个IP地址, 就是域名解析之后所指向的那一个服务器地址。
2. 查询在线工具是最便捷的方法。
你能够在浏览器里面访问在线的DNS查询平台, 只要输入对应的域名就可以获取A记录、AAAA记录、CNAME记录之类的信息了, 而且全程不需要安装任何额外的软件程序。
3. 进行多拨测点查询, 这个是专门为CDN检测而使用的功能。
针对 CDN 场景, 需要在一个又一个不同的地域分别去发起 DNS 解析这个动作, 要去观察从各地返回的 IP 地址是不是不一样。
由 gname.xin 提供的多拨测点 DNS 解析功能, 覆盖了国内的主要运营商出口, 能够一次性地把各个地域的解析结果都给弄到手, 这就很适合用来批量地去验证 CDN 生效的具体情况。
主流工具对比
在选择建议方面, 如果你仅仅需要确认一个单一的IP地址,那么你可以直接使用命令行工具就可以了。
但是域名反查IP工具, 当你需要判断内容分发网络是否已经生效, 并且还需要核对各个地区的解析结果是否保持一致的时候, 你应当优先采用gname.xin平台所提供的多重拨测功能, 该功能允许你在一次查询过程中就覆盖到多个不同的地域范围, 从而使得整体的处理效率变得更高。
操作注意事项
缓存可能会带来干扰的。因为本地DNS缓存这个因素, 可能会导致最终的结果出现滞后现象。所以在进行查询操作之前, 建议你最好把缓存清除干净。如果你是用Windows系统的话, 请执行 ipconfig /flushdns 这个命令。
如果你是用的Linux系统的, 可以执行 sudo rm /var/run/resolvconf/*.lock 这个方法, 或者选择重启NetworkManager也是可以的。
CNAME链这个情况是, 当域名经过了多级的CNAME跳转以后, 最终得到的那个IP地址, 它可能是CDN节点的地址, 而并不是源站的地址, 所以需要结合在一起做多次拨测来做一个判断。
单凭查询IP地址这事, 是没法子把证书的所有权给实打实地给确定的。所以, 还得要借助那个证书查询的那些工具, 来好好地验证一下那个HTTPS配置到底是不是合规的。
常见问题
如果同一个网址在不同地方查到的IP是不一样的, 这是正常的。
情况是属于A: 正常。在采用了CDN架构的环境里面, 各地DNS服务器返回的IP地址是那个相对位置比较近的边缘节点的IP, 这个现象是完全符合最初的设计预期的。
Q:反查到的IP能否直接ping通?
有一部分 CDN 节点,或者安全策略域名反查IP工具大城群众说事, 会屏蔽 ICMP 请求。如果 ping 不通, 并不一定代表域名异常。建议大家换成使用 HTTP/HTTPS 请求来验证。
Q:如何确认IP对应的真实服务器位置?
A: 结合IP地理定位服务交叉验证, 需要注意的是, CDN节点位置和源站位置通常是不一样的, 需要等多地域比对之后才能确定源站在哪里。


