Dan*_*Cat 7 domain-name-system linux-networking curl dig docker-machine
在尝试调试网络问题本地我们的内联网,很明显,curl
host
nslookup
和dig
不同的表现。凡dig
与host
返回有问题的URL,IP地址curl
和nslookup
回报:
curl: (6) Could not resolve host: internal.site.company.com
Run Code Online (Sandbox Code Playgroud)
和
nslookup: can't resolve 'internal.site.company.com`
Run Code Online (Sandbox Code Playgroud)
虽然这不应该的事情,在多予方面的问题的本质,这个问题上和后面发生的docker-machine
(使用泊坞窗机上都进行测试virtualbox
,并parallels
要准确)。在docker-machine
和容器它的主机都在他们所需的内部DNS服务器的正确IP地址/etc/resolv.conf
。无法解析名称的机器也可以访问所需 URL 的 IP 地址。如上所述,地址是内部站点,我们的 DNS 服务器也是内部站点。该站点可从docker-machine
安装的计算机访问和解析。
这让我想到了这些问题......
1) 在幕后,有什么dig
和host
做的与两者cURL
和和不同nslookup
?
2)什么可能阻止浏览器或curl
以两种方式解析 URLhost
并dig
成功解析名称?
dig -v
: DiG 9.11.1
host -v
: host 9.11.1
curl -V
: curl 7.49.1
码头工人版本: Version 17.06.0-ce-mac19 (18663) Channel: stable
Boot2Docker version 17.06.0-ce, build HEAD : 0672754
Run Code Online (Sandbox Code Playgroud)
Bil*_*hor 11
我希望curl
我们的解析器库将按/etc/nsswitch.conf
顺序使用主机规范中列出的名称服务提供者。如果这不包括 DNS,则不会发生 DNS 解析。 nslookup
没有记录使用此文件,但根据您的经验,它似乎可以。通常,此数据由名称服务缓存守护进程缓存。如果守护进程失败,即使其他配置正确,您也可能会遇到此类问题。
host
并且dig
是纯 DNS 查找程序。它们都仅通过 DNS 解析名称。他们不会使用文件或其他非 DNS 提供商解析名称。我希望他们/etc/resolv.conf
直接使用这些信息。
归档时间: |
|
查看次数: |
1512 次 |
最近记录: |