背景信息
RFC3484协议定义了 IPv6 地址选择的基本规则,旨在解决当一台主机存在多个 IPv6 地址时,如何选择最佳的源地址或目标地址进行通信的问题。根据RFC3484协议,Linux默认情况下IPv6优先级高于IPv4,应用程序优先使用IPv6地址。因部分场景下IPv6的使用不一定畅通,您可以参照如下方式设置IPv4作为默认的连接方式。
操作步骤
1. 使用IPv4连接优先,不禁用IPv6。需要修改gai.conf配置文件使其生效。
a. 编辑如下文件(如无该文件,跳转步骤c和d):
/etc/gai.conf
b. 查找如下配置,将前面的 # 去掉并保存,如果前面没有 # 号表示已经更改过设置了。如果没有查找到该行直接在文件末尾添加。
precedence ::ffff:0:0/96 100
c. Redhat默认没有 /etc/gai.conf 文件,可以执行如下命令,拷贝该文件后修改:
cp -p /usr/share/doc/glibc-common-2.17/gai.conf /etc/
d. BC-Linux执行如下命令:
cp -p /usr/share/doc/glibc-common/gai.conf /etc/
注意
如无gai.conf文件,需要先执行yum install glibc-help安装glibc-help软件包。安装完成之后gai.conf文件目录为:/usr/share/doc/glibc-help/gai.conf,再将其复制到/etc/目录下。
e. 修改完成保存生效。采用此方式,双栈情况下优先使用IPv4,同时不影响IPv6的使用。
说明
::ffff:0:0/96 为IPv4/IPv6转换地址 (IPv4-mapped IPv6 address)。
a. 执行命令:
echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6
b. 如需恢复,删除掉 /proc/sys/net/ipv6/conf/all/disable_ipv6 文件即可。