套接字统计(ss)程序奇怪的ipv6监听套接字地址格式

套接字统计(ss)程序奇怪的ipv6监听套接字地址格式

我有两个服务在 TCP/IPv6 套接字上侦听,ssh并且mysql.ss显示这个:

$ ss -tl6
State     Recv-Q    Send-Q    Local Address:Port    Peer Address:Port               
LISTEN    0         128       [::]:ssh              [::]:*                     
LISTEN    0         80        *:mysql               *:* 

ssh为什么 和的“本地地址”和“对等地址”显示不同mysql?即,如果“[::]”与“*”背后有什么含义怎么办?注意netstat显示没有区别(两者都为“::”):

sudo netstat -natlp6
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address  Foreign Address  State      PID/Program name    
tcp6       0      0 :::22          :::*             LISTEN     26240/sshd          
tcp6       0      0 :::3306        :::*             LISTEN     23933/mysqld 

更新正如 @Amir 在评论中指出的,这两种服务实际上是有区别的:sshd有两个打开的套接字,一个仅用于 ipv4,一个用于 ipv6,而 asmysqld只有一个 ipv6 套接字:

$ pgrep mysqld
23933
$ pgrep sshd
26240
$ sudo lsof -a -p 23933 -i
COMMAND   PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
mysqld  23933 mysql   27u  IPv6 6062236      0t0  TCP *:mysql (LISTEN)
$ sudo lsof -a -p 26240 -i
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd    26240 root    3u  IPv4 6106855      0t0  TCP *:ssh (LISTEN)
sshd    26240 root    4u  IPv6 6106857      0t0  TCP *:ssh (LISTEN)

我在 SSH 配置中禁用了 ipv4,但ss仍然显示两者不同,但它可能是 @Amir 提到的不同类型的 ipv6 / ipv4 支持?

相关内容