![命令 ss 中的通配符表达式是什么意思?](https://linux22.com/image/140942/%E5%91%BD%E4%BB%A4%20ss%20%E4%B8%AD%E7%9A%84%E9%80%9A%E9%85%8D%E7%AC%A6%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 *:80 *:*
执行命令后我得到了这个ss
。我只知道这0.0.0.0
是任何 IP 地址的通配符。但是,我找不到有关[::]
和 的任何信息*:80
。
你能给我一些相关信息吗?
答案1
让我们从地址列:
0.0.0.0
不是通配符任何IP地址。它是一个通配符任何 ipv4 地址。[::]
是一个通配符任何 IPv6 地址。*
是一个通配符任何IP地址(ipv4 和 ipv6)。
另一边,在港口列:
*
是一个通配符任何端口。
在你的例子中:
第二行意味着程序正在任何本地 ipv4 地址的本地端口 22 上侦听来自任何 ipv4 地址的任何源端口的连接。
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
第三行表示程序正在任何本地 ipv6 地址的本地端口 22 上侦听来自任何源端口、任何 ipv6 地址的连接。
LISTEN 0 128 [::]:22 [::]:*
注意下面一行是功能上相当于示例中第二行和第三行的总和。区别在于大概你的 ssh 守护进程调用了两次listen
系统调用,每一类 IP 地址(ipv4 和 ipv6)调用一次。
LISTEN 0 128 *:22 *:*
示例的第四行显示您的 Web 服务器守护程序listen
同时针对两类 IP 地址调用了一次。
LISTEN 0 128 *:80 *:*