为什么这个“netstat -tln”输出显示“0.0.0.0:22”和“127.0.0.1:3306”的条目

为什么这个“netstat -tln”输出显示“0.0.0.0:22”和“127.0.0.1:3306”的条目

当我运行该命令时netstat -tln,我看到以下输出:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::8000                 :::*                    LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::443                  :::*                    LISTEN  

0.0.0.0:22我理解除和之外的所有条目127.0.0.1:3306;为什么这些条目在那里?

我正在使用 iptables 作为我的防火墙工具,想知道是否需要禁用它以及这个条目是如何出现的。

我知道那3306是针对 mysql 的。但是为什么 SSH 和 Mysql 有特定的 IP 地址,而其他服务器却没有?

答案1

0.0.0.0:22

上面的意思是你在监听所有 ip 地址的 22 端口 (ssh)

127.0.0.1:3306

以上意味着你正在监听端口 3306(mysql)仅用于本地环回

前两个地址与其他地址不同的原因是,它们是 IPv4 地址,而其他地址是 IPv6 地址,从Proto显示tcp或的列中可以看出tcp6

对于包含 IPv6 地址的行(tcp6),它将监听:::所有 IP 地址,相当于 IPv4 的0.0.0.0


更新

谢谢,但是为什么我禁用了 ipV6 后会获得 IPv6 地址,正如我运行“cat /proc/sys/net/ipv6/conf/all/disable_ipv6”时输出 1 所证明的那样?我在启动 http、https、mysql 和 ssh 服务器时没有做任何特别的事情(或者我认为是这样的)。我本来希望它们所有都有类似的条目,包括 IPv6 和 IPv4。我大致理解输出,但我很难准确理解它。我需要这个来将其与我的 iptables 规则联系起来。– Sam 7 分钟前

您已在网络接口上禁用 IPv6,但这并没有从系统中删除 IPv6;要做到这一点,您需要禁用 IPv6 内核模块。

相关内容