Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 不同本地端口的差异_Linux_Unix_Networking_Tcp_Netstat - Fatal编程技术网

Linux 不同本地端口的差异

Linux 不同本地端口的差异,linux,unix,networking,tcp,netstat,Linux,Unix,Networking,Tcp,Netstat,当我运行$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

当我运行
$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      -    
为了理解输出,我有几个问题:

  • 0.0.0:
    ::*
    之间的“外部地址”有什么区别

  • 为什么有些端口(如
    22
    在tcp和tcp6中都有条目

  • 对于本地地址,
    127.0.0.1
    0.0.0
    (和
    localhost
    )之间有什么区别

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

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

    为什么有些端口(如22)在tcp和tcp6中都有条目

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

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


    是IPv6的任意地址,
    0.0.0
    是IPv4的任意地址-通过这些侦听器地址,服务器将接受其拥有的所有IP地址上的流量(即所有接口:本地、以太网、wifi、VPN…)
    127.0.0.1
    是IPv4的本地主机,即只能从本地计算机进行连接。IPv6本地主机将是
    ::1
    localhost
    的含义取决于
    /etc/hosts
    中的条目,通常与
    127.0.0.1

    相同,感谢您的详细回复。因此,或多或少,
    localhost
    是/etc/hosts中定义的一种别名?@David542:是的,有点像。除了传统上使用的
    localhost
    之外,任何人都可以使用它。