我的一个域(假设是 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?
这是按设计工作的。
首选 IPv6 而不是 IPv4 是大多数计算机的默认配置。要使用 IPv4 而不是 IPv6,必须为此专门设置计算机(因操作系统而异)。
如果您希望特定主机名无法通过 IPv6 访问,则必须删除通配符 CNAME 并仅对您希望通过 IPv6 访问的特定主机使用记录。