我有两个服务在 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 支持?