在netstat输出中,`0.0.0.0:*`,[[::]:mysql`和`[::]:*`是什么意思?

提姆
$ sudo netstat -ap | grep postg
tcp        0      0 localhost:postgresql    0.0.0.0:*               LISTEN      1567/postgres       
udp        0      0 localhost:57504         localhost:57504         ESTABLISHED 1567/postgres       
unix  2      [ ACC ]     STREAM     LISTENING     27116    1567/postgres        /var/run/postgresql/.s.PGSQL.5432

$ sudo netstat -ap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      23683/mysqld        
tcp6       0      0 [::]:33060              [::]:*                  LISTEN      23683/mysqld        
unix  2      [ ACC ]     STREAM     LISTENING     1169294  23683/mysqld         /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     1169513  23683/mysqld         /var/run/mysqld/mysqlx.sock
unix  2      [ ]         DGRAM                    1169211  23683/mysqld  

做什么0.0.0.0:*[::]:mysql[::]:*什么意思?

是否*意味着所有的端口?

0.0.0.0根据Tanenbaum的计算机网络,是指“此网络”或“此主机”。什么时候用于该网络,什么时候用于该主机?

谢谢。

电信

0.0.0.0:*通常出现在侦听套接字远程端,并指示尚未填写远程地址和端口字段...对于侦听传入连接的套接字,这是合乎逻辑的。不过,它有一个含义:它指示此套接字将仅接受IPv4连接。

[::]:mysql出现在连接本地,表示该套接字正在接受该系统可能具有的任何地址中的传入IPv6连接(可能还有IPv4),并且端口号已mysql/etc/services...中指定名称即端口号为3306。请注意,最左边的列也具有,tcp6而不仅仅是tcp指示程序正在使用支持IPv6的套接字。

[::]:*是支持IPv6的等效项0.0.0.0:*,即它通常出现在侦听套接字远程端,并指示套接字正在处理IPv6连接,但尚未填写远程端点地址和端口信息。但是,这也可能包括IPv4。

整个IPv4地址空间可以映射为IPv6地址空间的子集:例如,如果应用程序使用IPv6套接字API 1.2.3.4,则内核可以将IPv4地址映射为IPv6地址::ffff:102:304这就是为什么支持IPv6的程序可以选择仅在TCP / UDP级别的所有内部使用IPv6样式的地址结构,并且除非特别需要,否则无需将IPv4视为单独的组。(我认为程序可以使用套接字选项或某种其他机制来选择加入/退出此映射:某些程序确实为IPv4和IPv6打开了单独的侦听套接字。)

但是,许多支持IPv6的实用程序将以更加用户友好的形式显示此类映射有IPv6的IPv4地址,::ffff:1.2.3.4以使嵌入式IPv4地址更易于阅读。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章