【问题标题】:Difference in various local ports [closed]各个本地端口的差异[关闭]
【发布时间】:2018-10-07 17:59:19
【问题描述】:

当我运行 $ netstat -ntlp 时,我得到以下输出:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::80                   :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 :::443                  :::*                    LISTEN      -    

为了理解输出,我有几个问题:

  1. 0.0.0.0:*:::*的“外地地址”有什么区别?

  2. 为什么有些端口,比如22,在tcp和tcp6都有入口?

  3. 对于本地地址,:::127.0.0.10.0.0.0(和localhost)有什么区别?

【问题讨论】:

    标签: linux unix networking tcp netstat


    【解决方案1】:

    0.0.0.0:* 和 :::* 之间的“外国地址”有什么区别?

    第一种情况是 IPv4,第二种情况是 IPv6。

    为什么有些端口,比如22,在tcp和tcp6都有入口?

    因为服务器在 IPv4 和 IPv6 上使用两个不同的套接字进行侦听。一些服务器尝试为两者使用一个套接字(并非所有操作系统都支持),一些服务器使用不同的套接字。在 OpenSSH 的情况下:无论如何它都支持侦听多个 IP:端口,并且它也源自 OpenBSD,其中不支持使用单个套接字侦听 IPv4 和 IPv6(为了安全起见,明确决定)。

    对于本地地址,::: 和 127.0.0.1 和 0.0.0.0(和 localhost)有什么区别?这些都是一样的吗,或者为什么它们的引用方式不同?

    ::: 是 IPv6 的 ANY 地址,而 0.0.0.0 是 IPv4 的任何地址 - 使用这些侦听器地址,服务器将接受它拥有的所有 IP 地址上的流量(即所有接口:本地、以太网、wifi、VPN ...)。 127.0.0.1 是 IPv4 的本地主机,即只能从本地计算机连接。 IPv6 本地主机将是 ::1localhost 的含义取决于/etc/hosts 中的条目,通常与127.0.0.1 相同。

    【讨论】:

    • 感谢您的详细回复。所以,或多或少,localhost 是一种在 /etc/hosts 中定义的别名?
    • @David542:是的,有点。除了传统上使用localhost之外,任何人都可以。
    • 非常感谢 ... ::1 vs 127.0.0.1 帮助:)
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2014-12-02
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多