![可以使用 IP 但是不需要 IP 的连接吗?](https://linux22.com/image/1570830/%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20IP%20%E4%BD%86%E6%98%AF%E4%B8%8D%E9%9C%80%E8%A6%81%20IP%20%E7%9A%84%E8%BF%9E%E6%8E%A5%E5%90%97%EF%BC%9F.png)
通过在我的 shell 中写入显示我的计算机具有的所有连接的指令,我意识到某些 IP 显示如下:0.0.0.0
,,,甚至更奇怪的是,在某些端口上没有指定端口或全部*:*
为零...如果没有端口或只是没有 IP,为什么计算机会将其作为连接显示给我?[::]
[::1]
答案1
我是猜测指令是某种形式的netstat
命令。(但请包含实际命令。我们不是读心者。)
连接
[::1]
正常:这是的 IPv6 地址本地主机,相当于127.0.0.1
IPv4 中的。许多程序在内部使用此类环回连接,用于其自身组件之间的通信。和都是“通配符”地址
[::]
,0.0.0.0
表示该地址尚不清楚。这意味着该线路实际上并不代表活动连接。Netstat 不仅仅显示连接;它还显示套接字聆听– 即等待接收传入连接。此类套接字没有远程地址,因为它们不知道将来会连接哪个主机。
因此,将显示全零(“任意”或“空”或“未指定”)远程地址。(但许多类似 netstat 的程序只显示空白字段。)
对于“监听”套接字,由于相同的原因,本地地址可能全为零。
一台计算机可能有多个 IP 地址(实际上大多数计算机至少有两个:环回地址和 LAN 地址),并且可以配置“监听”套接字以等待以下连接:任何这些地址中的一个,或者只是一个特定的地址。(也就是说,边界到特定的本地地址。
大多数监听套接字不是绑定到任何特定的本地地址;它们将接受所有连接。由于本地地址未指定,因此也显示为全零。