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

use*_*858 6 linux tcp netstat

我只是想了解 :::: 和 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                     :::*
Run Code Online (Sandbox Code Playgroud)

Lig*_*bit 6

正如您正确识别的那样,的 IPv4 地址0.0.0.0是“包罗万象”的侦听地址。

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


小智 5

::具有0.0.0.0相同的含义,但在完全不同的上下文中。他们不一样。

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

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

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