我如何解释'netstat -a'输出

时间:2008-08-21 19:26:49

标签: networking netstat

有些事情对我来说很奇怪:

  • 0.0.0.0,127.0.0.1和[::]?
  • 之间有什么区别
  • 如何阅读外国地址的每一部分(第1部分:第2部分)?
  • 状态Time_Wait,Close_Wait是什么意思?

有人可以快速概述如何解释这些结果吗?

7 个答案:

答案 0 :(得分:17)

0.0.0.0通常指的是监听所有接口的内容。 127.0.0.1 = localhost(仅限本地接口) 我不确定[::]

TIME_WAIT意味着双方同意关闭和TCP 现在必须等待规定的时间才能进行连接 下来。

CLOSE_WAIT表示远程系统已完成发送 而你的系统还没有说它已经完成了。

答案 1 :(得分:12)

我知道答案已经被接受,但这里有一些额外的信息:

  • 如果在本地地址列上显示0.0.0.0,则表示端口正在侦听所有“网络接口”(即您的计算机,调制解调器和网卡)。
  • 如果在“本地地址”列中显示127.0.0.1,则表示该端口仅侦听来自PC本身的连接,而不是来自Internet或网络。那里没有危险。
  • 如果它在“本地地址”列中显示online IP,则表示该端口仅侦听来自Internet的连接。
  • 如果它在“本地地址”列中显示local network IP,则表示该端口仅侦听来自本地网络的连接。
  • 外部地址 - 套接字所连接的远程计算机的IP地址和端口号。除非指定了-n参数,否则将显示与IP地址和端口对应的名称。如果端口尚未建立,则端口号显示为星号(*)。 (来自维基百科)

答案 2 :(得分:7)

127.0.0.1是您的环回地址,如果在HOSTS文件中设置,也称为“localhost”。有关详细信息,请参阅此处:http://en.wikipedia.org/wiki/Localhost

0.0.0.0表示应用已使用特定端口绑定到所有IP地址。 MS信息:http://support.microsoft.com/default.aspx?scid=kb;en-us;175952

'::'是ipv6 0.0.0.0的简写。

答案 3 :(得分:7)

0.0.0.0,127.0.0.1和[::]之间有什么区别?

        
  • 0.0.0.0表示正在侦听机器上所有接口的内容。
  •     
  • 127.0.0.1表示您自己的机器。
  •     
  • [::]是0.0.0.0的IPv6版本
  •     
  • 我的机器还显示*:\ *表示UDP连接实际上没有外部地址 - 它们从任何地方接收数据包。这就是UDP的本质。

 

如何读取外部地址的每一部分(第1部分:第2部分)?

     
  • part1是主机名或IP地址
  • part2是端口
  • 答案 4 :(得分:2)

    Send-Q是应用程序发送的数据量,但尚未被套接字的另一方确认。

    Recv-Q是从NIC接收但尚未被应用程序使用的数据量。

    这两个队列都驻留在内核内存中。 如果您愿意,可以使用guides来帮助您调整这些内核缓冲区。虽然,你可能会发现默认的params做得很好。

    答案 5 :(得分:2)

    This link has helped me a lot to interpret netstat -a

    来自那里的副本 -

    TCP Connection States
    以下是此握手的简要说明。在此上下文中,“客户端”是请求连接的对等体,“服务器”是接受连接的对等体。请注意,此表示法不会将客户端/服务器关系反映为体系结构主体。

    建立连接

    客户端向服务器发送包含服务器端口和客户端初始序列号(ISN)的SYN消息(活动打开)。
    服务器发回自己的SYN和ACK(由客户端的ISN + 1组成) 客户端发送ACK(由服务器的ISN + 1组成)。

    连接拆除(修改后的三次握手)。

    客户端发送FIN(活动关闭)。这是一个半封闭的连接。客户端不再发送数据,但仍能够从服务器接收数据。收到此FIN后,服务器进入被动关闭状态 服务器发送ACK(客户端FIN序列+ 1) 服务器发送自己的FIN 客户端发送ACK(服务器的FIN序列+ 1)。收到此ACK后,服务器将关闭连接 在接收数据时,半闭合连接可用于终止发送数据。套接字应用程序可以在第二个参数设置为1的情况下调用shutdown以进入此状态。

    Netstat中显示的状态说明:
    州解释


    SYN_SEND表示有效开放。

    SYN_RECEIVED服务器刚从客户端收到SYN。

    ESTABLISHED客户端收到服务器的SYN并建立了会话。

    LISTEN服务器已准备好接受连接。

    注意:请参阅listen()套接字调用的文档。处于侦听状态的TCP套接字未显示 - 这是NETSTAT的限制。有关其他信息,请参阅Microsoft知识库中的以下文章: 134404 NETSTAT.EXE不显示TCP侦听套接字 FIN_WAIT_1表示活动关闭。

    TIMED_WAIT客户在主动关闭后进入此状态。

    CLOSE_WAIT表示被动关闭。服务器刚从客户端收到第一个FIN。

    FIN_WAIT_2客户刚从服务器收到了第一个FIN的确认。

    LAST_ACK服务器在发送自己的FIN时处于此状态。

    CLOSED服务器收到客户端的ACK,连接已关闭。

    答案 6 :(得分:0)

    对于那些在他们的netstat输出中看到[::]的人,我打赌你的机器正在运行IPv6;这相当于0.0.0.0,即监听任何IPv6地址。

    相关问题