curl 将无效的主机名解析为自己的 IP

curl 将无效的主机名解析为自己的 IP

当我 curl 一个无效域名时,我会收到来自我自己的网络服务器的响应。Ubuntu 16.04.5,curl 7.47.0

例如:

root@l ~ # curl -v foobar.x
* Rebuilt URL to: foobar.x/
*   Trying 148.X.X.X...
* Connected to foobar.x (148.X.X.X) port 80 (#0)
> GET / HTTP/1.1

148.XXX是我的服务器的公网IP。

但是我使用 nslookup + host 获得了预期的结果:

root@l ~ # nslookup foobar.x
Server:         213.133.99.99
Address:        213.133.99.99#53

** server can't find foobar.x: NXDOMAIN

root@l ~ # host foobar.x
Host foobar.x not found: 3(NXDOMAIN)

/etc/resolv.conf:

root@l ~ # cat /etc/resolv.conf
### Hetzner Online GmbH installimage
# nameserver config
#nameserver 1.1.1.1
nameserver 213.133.99.99
nameserver 213.133.98.98
nameserver 213.133.100.100
nameserver 2a01:4f8:0:1::add:9898
nameserver 2a01:4f8:0:1::add:9999
nameserver 2a01:4f8:0:1::add:1010

那么 curl 如何解析主机名,以及为什么它将无效的主机名默认为我自己的 IP?

更新

root@l /etc # telnet foobar.x 80
Trying 148.251.19.39...
Connected to foobar.x.sui.li.

好的,它似乎以某种方式自动完成了我的域名。*.sui.li 有一个通配符 DNS 条目。主机名是 l.sui.li - 我仍然不知道如何防止这种情况发生。

答案1

确实没有找到它添加我的基本域的原因(可能是因为它也是主机的反向 DNS 条目?我不知道,我也不再关心了……)但最终search nothing在 中添加了一个无效条目/etc/resolv.conf。我假设它现在尝试解析 foobar.x、foobar.x.nothing 并失败,正如它应该的那样。

相关内容