Answers:
这是将IPv6优先于IPv4的标准,以允许下一代IP接管:)
您可以通过编辑中的优先级块来更改此设置/etc/gai.conf
(gai代表getaddrinfo
,是解析主机名的标准系统调用)。只需按照文件中所述注释掉该行:
#对于喜欢IPv4连接的站点,将最后一行更改为
#precedence :: ffff:0:0/96 100
有关详细说明,请gai.conf
参见手册页。
gai.conf
指出,您必须取消注释所有行,而不仅仅是IPv4,以获取正确的修改行为。来自gai.conf(5)
:“再次,配置文件中存在一个优先级行将导致不使用默认表。” 如果希望其他默认表行继续工作,则也必须取消注释它们。
我的问题是相同的,我在IPV4之前进行了IPV6查询,它们浪费了资源,所以我确实在freddyb发布时更改了/etc/gai.conf文件,但是我的情况有点不同,我的服务器是Natted,所以仅使用该行,IPv4不会优先于IPv6。该解决方案还在gai.conf中注释了其他行,因此它看起来像这样
#For sites which prefer IPv4 connections change the last line to
precedence ::ffff:0:0/96 100
...
# For sites which use site-local IPv4 addresses behind NAT there is
# the problem that even if IPv4 addresses are preferred they do not
# have the same scope and are therefore not sorted first. To change
# this use only these rules:
#
scopev4 ::ffff:169.254.0.0/112 2
scopev4 ::ffff:127.0.0.0/104 2
scopev4 ::ffff:0.0.0.0/96 14
因此,即使您感到纳闷,您的服务器也将首先尝试ipv4!
/etc/gai.conf
在Ubuntu 15.04文件“生动”说这三个scopev4
行你在上面建议已经默认。我只进行了单行precedence ::ffff:0:0/96 100
更改,即使在NAT之后也可以使用。
如果您根本不想启用IPv6,则可以禁用IPv6来实现。 http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html
如果没有,您可以尝试添加
options single-request
到/etc/resolv.conf文件。(有关血腥细节,请参见http://udrepper.livejournal.com/20948.html)