我让CentOS 7在一台AWS机器上运行。我最近启用了IPv6,一切都很好--除了请求(也是来自命令行的curl )总是倾向于使用IPv6而不是IPv4。这会导致一些不支持它的网站出现问题,比如向苹果、安卓系统发送通知,而且一切都像IPv4一样运行良好。
如何使所有传出请求都使用IPv4而不是IPv6?我也不想禁用传入的IPv6,因为我的一些客户只使用IPv6。
发布于 2018-03-07 13:54:53
大多数能够使用IPv6的程序将使用系统的DNS解析器库报告的任何地址(IPv4或IPv6)作为主机的首选地址。
解析器库的首选项可以使用/etc/gai.conf文件进行调整。
优先规则在文件的这一部分中指定:
# precedence <mask> <value>
# Add another rule to the RFC 3484 precedence table. See section 2.1
# and 10.3 in RFC 3484. The default is:
#
#precedence ::1/128 50
#precedence ::/0 40
#precedence 2002::/16 30
#precedence ::/96 20
#precedence ::ffff:0:0/96 10
#
# For sites which prefer IPv4 connections change the last line to
#
#precedence ::ffff:0:0/96 100内置默认值列为注释值,但如果指定自己的设置,则根本不会使用默认值。因此,将以下内容添加到文件的末尾:
# To prefer IPv4 over everything else
precedence ::ffff:0:0/96 100
precedence ::1/128 50
precedence ::/0 40
precedence 2002::/16 30
precedence ::/96 20请注意,在IPv4中不可能回答使用IPv6到达的传入连接,反之亦然:根据IP和TCP协议的规则,任何连接尝试都必须使用请求所使用的协议来回答。
https://unix.stackexchange.com/questions/428736
复制相似问题