我们的一个项目今天遇到了一个奇怪的问题:VPS服务器无法访问第三方Web服务,因为它无法parsing其域名。 当我SSH到服务器并运行dig , curl , traceroute ,或ping到Web服务的域,我得到错误Could not resolve host: %web.service.url% 。
有趣的是,位于同一地区(澳大利亚)的同一托pipe公司的另一台服务器也具有完全相同的问题,所以它必定是一个更广泛的问题,而不仅仅是一台特定的服务器。 从本地计算机Ping相同的服务工作正常,其他服务器也没有这个问题。 技术支持人员无法帮助我们几个小时,他们最后的消息说:
“您的select是联系您使用的DNS提供商,因为DNS服务器不提供任何域的logging。”
我不确定什么是DNS提供商,为什么他们听起来像我们正在使用一些自定义的,而不是他们提供给他们的VPS服务器。 这可能是他们和澳大利亚ISP之间的问题吗?
而最重要的是,除了将所有内容移到另一个托pipe服务提供商之外,我们现在有哪些select? 切换第三方Web服务目前不是一个选项。
编辑:下面是从服务器运行时dig %web.service.url%的结果:
; <<>> DiG 9.9.5-4.3ubuntu0.1-Ubuntu <<>> %web.service.url% ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 35626 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1500 ;; QUESTION SECTION: ;%web.service.url%. IN A ;; Query time: 1074 msec ;; SERVER: %server.ip.address%#53(%server.ip.address%) ;; WHEN: Thu Jul 20 09:19:44 UTC 2017 ;; MSG SIZE rcvd: 51
你已经阻止了为你做一些testing所需的所有重要信息。 如果VPS服务器正在使用VPS主机提供的DNS服务器,并且无法返回logging,则问题应发生在VPS主机上。
一个简单的解决方法是更改VPS服务器上的DNS设置,以便使用另一台DNS服务器。 我通常使用Google的DNS服务器: 8.8.8.8和8.8.4.4