netstat -an 输出中的 :::: 和 0.0.0.0 有什么区别?

netstat -an 输出中的 :::: 和 0.0.0.0 有什么区别?

我只是想了解 :::: 和 0.0.0.0 之间的区别。我相信两者都是相同的,只要有任何处理器正在监听该端口,就会允许来自外部的连接。

udp        0      0 127.0.0.1:123               0.0.0.0:*
udp        0      0 0.0.0.0:123                 0.0.0.0:*
udp        0      0 :::32813                    :::*
tcp        0      0 :::5080                     :::*

答案1

正如您正确指出的那样,IPv4 地址0.0.0.0是一个“捕获所有”的监听地址。

::是 的缩写形式0:0:0:0:0:0:0:0,是 IPv6 中的等效地址。第三个冒号将此地址与端口号分隔开。

答案2

::0.0.0.0意思一样,但是语境完全不同,并不一样。

在服务器端,如果您将进程(不是处理器!)绑定到某个接口,则两者都用于表示“没有特定地址”。::在 ipv6 中使用,0.0.0.0在 ipv4 上下文中使用。一个不会给您另一个。

请注意,整个事情已经没事做使用“外部”连接。0.0.0.0(和::)意味着:服务器进程不关心数据包来自哪里。这样它就绑定到所有接口(和地址)。

如果没有适当的防火墙配置,将流程绑定到“无特定访问权限”可能会带来一些安全问题(如果您不打算将服务发布到外部)。

相关内容