命令 ss 中的通配符表达式是什么意思?

命令 ss 中的通配符表达式是什么意思?
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                     *:*

相关内容