如果我在听:::80
,是在听所有 ipv6 还是所有 ipv6+ipv4?
这是我的netstat -tln
:
tcp 0 0 :::8080 :::*
如果我在听:::80
,是在听所有 ipv6 还是所有 ipv6+ipv4?
这是我的netstat -tln
:
tcp 0 0 :::8080 :::*
绑定到 的侦听套接字
::
,即任何地址 IPv6 地址 (INADDR6_ANY
),可能也或可能不侦听使用 IPv4 的连接。这取决于几件事:IPV6_V6ONLY
在侦听套接字上设置了套接字选项(由创建套接字的程序)。基于 Linux 的操作系统和 FreeBSD 就是此类操作系统的示例。如果程序未明确设置该选项,则默认行为取决于操作系统。例如,在基于 Linux 的操作系统上,您可以通过将 0 或 1 写入
/proc/sys/net/ipv6/bindv6only
.在某些操作系统上, 的输出
netstat
会告诉您套接字是否是双栈的。例如, FreeBSD 将netstat
双栈套接字报告为输出tcp46
的udp46
第一列。我正在使用这两个值测试 ipv6_only 行为。
1.
2.
从上面的结果我们可以看到 /proc/sys/net/ipv6/bindv6only 的值决定了 ipv6 only 或 ipv6+ipv4 的行为