服务器上同时有ipv4和ipv6地址,服务只监听ipv6端口

 admin   2023-08-28 13:37   160 人阅读  0 条评论

将/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过渡时,为了向下兼容所开发的两种端口的运行模式。

本文地址:https://liuchunjie.top/?id=624
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?