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

Sun*_*nny 1 mysql ssh ip iptables netstat

当我运行命令时,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  
Run Code Online (Sandbox Code Playgroud)

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

我使用 iptables 作为我的防火墙工具,想知道我是否需要禁用它以及该条目最初是如何显示的。

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

Tim*_*ner 9

0.0.0.0:22

以上表示您正在侦听端口 22 (ssh) 所有 ip 地址

127.0.0.1:3306

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

前两个看起来与其他不同的原因是因为它们是 IPv4 地址,而其他是 IPv6 地址,如Proto显示tcptcp6

对于具有 IPv6 地址 ( tcp6)的线路,它正在侦听:::所有 ip 地址,相当于 IPv40.0.0.0


更新

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

您在网络接口上禁用了 IPv6,但这并没有从系统中删除 IPv6;为此,您需要禁用 IPv6 内核模块。