将/proc/sys/net/ipv6/bindv6only中的0修改为1,然后重启服务器
[root@rocky8 ~]# echo 1 > /proc/sys/net/ipv6/bindv6only
[root@rocky8 ~]# echo "net.ipv6.bindv6only = 1" >> /etc/sysctl.conf
[root@rocky8 ~]# sysctl -p
net.ipv6.bindv6only = 1
内核文档里面对这个参数进行了说明,它是一个bool值开关。
设置为1时,关闭ipv4映射地址的特性
设置为0时,开启ipv4映射地址的特性
默认设置为0。详情须要参考RFC2553。
经过查看RFC2553得到了一些信息:
RFC2553描述了IPv4映射地址和IPv6通配绑定套字的特殊行为。规格容许:
经过AF_INET6通配绑定套接字接受IPv4链接。
使用特殊形式的地址 (如 ::ffff:10.1.1.1 ) 经过AF_INET6套接字传输IPv4数据包。
经过RFC2553规定的规则,将linux默认全部来自IPv4地址的访问转换为IPv6地址的格式从而处理来自于IPv4的链接。
当bindv6only这个内核参数设置为0时,对全部来自于ipv4的请求都绑定到ipv6地址。简单说就是端口能够接收ipv4的包,也能够接收ipv6的包。
当bindv6only这个内核参数设置为1时,对于来自ipv4的请求就打开多个端口进行监听和处理。Ipv4与ipv6所监听的端口是分开的。
结论:bindv6only参数是linux内核默认开启的参数,而且不会对系统运行产生什么不良影响。应当是ipv4向ipv6过渡时,为了向下兼容所开发的两种端口的运行模式。
发表评论