【问题标题】:Could not resolve host - DNS configuration无法解析主机 - DNS 配置
【发布时间】:2016-04-24 10:25:14
【问题描述】:

在 PHP 中通过 curl 访问远程站点。它工作了几个月。现在给出错误 6:“无法解析主机”。

它可以在本地运行,但不能在在线站点上运行。 dns托管有问题吗? 可以进行哪些测试来确认?有什么办法可以解决吗?

本地 ping 主机丢失所有包,但 curl 正在运行。 我检查 dns 做主机控制面板得到这个错误(其中 www.host.com 被远程站点替换):

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> www.host.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 12692
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

【问题讨论】:

  • 使用 +trace 选项重新运行 dig 并在此处发布输出,也可以在本地计算机上运行它,然后比较结果以查看 SERVFAIL 响应的来源。跨度>
  • 本地我有windows,但不识别“dig + trace host”......还有其他选择吗?
  • 安装windows dig进去,效果很好。获取本地主机。

标签: php curl dns


【解决方案1】:

看起来主机上配置的用于解析 DNS 查询的任何服务器都不起作用,如果它是 *NIX 系统,请检查 /etc/resolv.conf 中的配置并查看配置了哪些服务器。然后,您可以使用 dig 直接针对这些服务器执行查询,并查看它是否正确解析。也许那里有一个旧的坏条目用于死服务器? SERVFAIL 的响应听起来像是主机尝试使用的任何 DNS 解析器都有问题。

直接查询特定主机的语法是:

dig www.google.com @192.168.1.1

dig <domain name> @<DNS resolver IP>

【讨论】:

  • DNS 解析器 IP 是本地跟踪中访问的最后一个主机吗?还是托管网站的 ip 服务器?
  • 也不是,DNS 解析器是将域名转换为 IP 地址的 DNS 服务器,它不会出现在跟踪中,因为它与实际的 TCP/IP 连接无关。如果您尝试dig -t ns www.google.com,您将看到例如 google.com 的名称服务器列表。这些是负责 google.com 域的权威服务器。使用域名时,必须先将其转换为目标IP,因此您与DNS服务器通话,就像互联网电话簿一样,就像您查找电话号码一样,您需要查找IP地址。
  • 这个页面可能会解释得更清楚:computer.howstuffworks.com/dns.htm
  • 所以如果我的 dns 是 x,我 ping X 以获取您的 ip I。我可以挖掘 www.google.com @我知道会发生什么?如果这是正确的,它给了我:3 个 dns 很好,一个被拒绝了。使用这些数据,主机将尝试更改设置。谢谢
猜你喜欢
  • 2019-04-30
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 2010-09-18
相关资源
最近更新 更多