我的一个域名(假设为 hackedd.nl)有一个指向 hackedd.nl 的 CNAME 记录,该记录同时具有 A 和 AAAA 记录。这一切似乎都运行正常。
然而,如果/etc/resolv.conf我的服务器上的文件中有一行指定search hackedd.nl
,对于没有 IPv6 地址的服务器,解析器似乎更喜欢 IPv6 CNAME,而不是实际的 IPv4 A 回复。例如:
curl -vsI http://security.ubuntu.com/ >/dev/null
* About to connect() to security.ubuntu.com port 80 (#0)
* Trying 2a02:2770::21a:4aff:fecb:a0f8... connected
在哪里2a02:2770::21a:4aff:fecb:a0f8是服务器自己的 IPv6 地址...
有什么方法可以让解析器在尝试搜索列表之前尝试 IPv4?
答案1
一切按设计运行。
大多数计算机的默认配置是优先使用 IPv6 而不是 IPv4。要使用 IPv4 而不是 IPv6,必须专门为此设置计算机(因操作系统而异)。
如果您希望特定主机名无法通过 IPv6 访问,则必须删除通配符 CNAME 并仅对您希望通过 IPv6 访问的特定主机使用记录。