代码之家  ›  专栏  ›  技术社区  ›  David542

不同本地端口的差异[关闭]

  •  -2
  • David542  · 技术社区  · 6 年前

    $ 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

    3. 对于本地地址,两者之间有什么区别 ::: 127.0.0.1 0.0.0.0 (和 localhost )?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Steffen Ullrich    6 年前

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

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

    因为服务器正在侦听IPv4和IPv6上的两个不同套接字。有些服务器尝试使用一个套接字来实现这两个目的(并非所有操作系统都支持),有些服务器使用不同的套接字。在OpenSSH的情况下:它无论如何都支持侦听多个IP:port,并且它还源自OpenBSD,在OpenBSD中,不支持使用单个套接字侦听IPv4和IPv6(出于安全考虑,显式决策)。

    对于本地地址,与127.0.0.1和0.0.0.0(以及localhost)之间的区别是什么?这些都是相同的,或者为什么它们的引用方式不同?

    ::: 0.0.0.0 是IPv4的任意地址-使用这些侦听器地址,服务器将接受其拥有的所有IP地址上的流量(即所有接口:本地、以太网、wifi、VPN…)。 127.0.0.1 是IPv4的本地主机,即只能从本地计算机进行连接。IPv6本地主机将是 ::1 . 什么 localhost 方法取决于 /etc/hosts .