netstat 输出内容详解

1.列出所有 tcp与udp 端口
netstat  -anput

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      19903/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2083/sshd
tcp        0     36 172.16.195.12:22         223.104.63.15:42495     ESTABLISHED 19841/sshd: user
tcp6       0      0 :::3306                 :::*                    LISTEN      7057/mysqld
udp        0      0 0.0.0.0:68              0.0.0.0:*                           680/dhclient
udp        0      0 0.0.0.0:61561           0.0.0.0:*                           680/dhclient
udp        0      0 172.16.195.12:123        0.0.0.0:*                           854/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           854/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           854/ntpd
udp6       0      0 :::123                  :::*                                854/ntpd
udp6       0      0 :::40801                :::*                                680/dhclient

2.下面分析每一项的含义
2.1 关于Proto,Recv-Q,Send-Q等列的具体含义
Proto:协议名(tcp协议还是udp协议)

recv-Q:网络接收队列
表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()
如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。

send-Q:网路发送队列
对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。

这两个值通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。

从步骤一的结果中可以看到22端口对应的链路的 send-Q中堆积了大量的数据包 ,可以判定是发送数据给目的地址的时候出现了阻塞的问题,导致了包堆积在本地缓存中,不能成功发出去。

2.2 Local Address 解释

1)Local Address 部分的0.0.0.0:22 表示监听本机所有ip地址的所有(0.0.0.0表示本地所有ip),比如你的服务器是有172.172.230.210和172.172.230.11两个ip地址,那么0.0.0.0:22此时表示监听172.172.230.210,172.172.230.211,127.0.0.1三个地址的22端口

2):::22 这个也表示监听本地所有ip的22端口,跟上面的区别是这里表示的是IPv6地址,上面的0.0.0.0表示的是本地所有IPv4地址
NOTE
“:::” 这三个: 的前两个"::",是"0:0:0:0:0:0:0:0"的缩写,相当于IPv6的"0.0.0.0",就是本机的所有IPv6地址,第三个:是IP和端口的分隔符

3)127.0.0.1:631 这个表示监听本机的loopback地址的631端口(如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip 协议进行远程访问)

4)::1:631 这个表示监听IPv6的回环地址的631端口,::1这个表示IPv6的loopback地址

5)172.172.230.211:3306 这里我们看到我们的mysqld进程监听的是172.172.230.211的3306端口,这是因为我们在启动的时候指定了bind_address=172.172.230.211参数,如果不指定bind_address的话,mysqld默认监听:::3306(本机所有ip地址的3306端口 -IPv6)

2.3 Foreign Address
与本机端口通信的外部socket。显示规则与Local Address相同

2.4 State
链路状态,共有11种
state列共有12中可能的状态,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。

状态 描述
LISTEN 首先服务端需要打开一个socket进行监听,状态为LISTEN./* The socket is listening for incoming connections. 侦听来自远方TCP端口的连接请求 */
SYN_SENT 客户端通过应用程序调用connect进行active open.于是客户端tcp发送一个SYN以请求建立一个连接.之后状态置为SYN_SENT./*The socket is actively attempting to establish a connection. 在发送连接请求后等待匹配的连接请求 */
SYN_RECV 服务端应发出ACK确认客户端的SYN,同时自己向客户端发送一个SYN. 之后状态置为SYN_RECV/* A connection request has been received from the network. 在收到和发送一个连接请求后等待对连接请求的确认 */
ESTABLISHED 代表一个打开的连接,双方可以进行或已经在数据交互了。/* The socket has an established connection. 代表一个打开的连接,数据可以传送给用户 */
FIN_WAIT1 客户端(active close)应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态./* The socket is closed, and the connection is shutting down. 等待远程TCP的连接中断请求,或先前的连接中断请求的确认 */
CLOSE_WAIT

服务端(passive close)TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT./* The remote end has shut down, waiting for the socket to close. 等待从本地用户发来的连接中断请求 */

FIN_WAIT2

客户端接到服务端发来的ACK后,就进入了 FIN-WAIT-2 ./* Connection is closed, and the socket is waiting for a shutdown from the remote end. 从远程TCP等待连接中断请求 */

LAST_ACK

服务端一段时间后(CLOSE_WAIT后),接收到文件结束符的应用程序将调用CLOSE关闭连接。接着它的TCP也发送一个 FIN,等待对方的ACK.就进入了LAST-ACK ./* The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 等待原来发向远程TCP的连接中断请求的确认 */

TIME_WAIT 客户端(passive close)TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT./* The remote end has shut down, waiting for the socket to close. 等待从本地用户发来的连接中断请求 */
CLOSING 比较少见./* Both sockets are shut down but we still don’t have all our data sent. 等待远程TCP对连接中断的确认 */
CLOSED 服务端在接受到ACK包后,就进入了closed的状态。连接结束./* The socket is not being used. 没有任何连接状态 */
UNKNOWN 未知的Socket状态。/* The state of the socket is unknown. */

在tcp报文段中:

SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。
FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。

2.5 PID/Program
PID即进程id,Program即使用该socket的应用程序

netstat输出内容详解相关推荐

  1. [转]netstat输出内容详解

    netstat 输出内容详解 1.列出所有 tcp与udp 端口 netstat  -anput Active Internet connections (servers and establishe ...

  2. [转]netstat 输出内容详解,TCP链接握手对应state

    1.列出所有 tcp与udp 端口 2下面分析每一项的含义 2.1 关于Proto,Recv-Q,Send-Q等列的具体含义 Proto:协议名(tcp协议还是udp协议) recv-Q:网络接收队列 ...

  3. 思科网络设备 show version命令输出内容详解

    show version show version命令可用于检验和检修启动过程中使用的一些基本硬件和软件组件.验证设备的内存.接口和许可 Router#show version Cisco IOS S ...

  4. linux文件属性及 ls -l 命令输出结果详解

    目录 一.ls -l 输出的内容概略 二.ls -l 输出内容详解 1.命令 2.inode索引节点编号 3.文件类型 4.文件属性 5.目录或链接的个数 6.所有者及组 7.文件大小 8.文件最后修 ...

  5. python语言格式化输出_Python format()格式化输出方法详解

    原标题:Python format()格式化输出方法详解 format() 方法的语法格式如下: str.format(args) 此方法中,str 用于指定字符串的显示样式:args 用于指定要进行 ...

  6. matlab的NLP功能,pyhanlp 共性分析与短语提取内容详解

    pyhanlp 共性分析与短语提取内容详解 简介 HanLP中的词语提取是基于互信息与信息熵.想要计算互信息与信息熵有限要做的是 文本分词进行共性分析.在作者的原文中,有几个问题,为了便于说明,这里首 ...

  7. python中文编码-python中文编码与json中文输出问题详解

    前言 python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 ...

  8. Snort日志输出插件详解

    Snort日志输出插件详解 Snort是一款老×××的开源***检测工具,本文主要讨论他作为日志分析时的各种插件的应用.Snort的日志一般位于:/var/log/snort/目录下.可以通过修改配置 ...

  9. java json path_Java使用JSONPath解析JSON完整内容详解

    JsonPath是一种简单的方法来提取给定JSON文档的部分内容. JsonPath有许多编程语言,如Javascript,Python和PHP,Java. JsonPath提供的json解析非常强大 ...

最新文章

  1. Cloud Toolkit 应用部署、文件上传支持上传进度实时展示...
  2. GNN论文笔记: Graph Neural Networks with convolutional ARMA filters
  3. [CODEVS 1281] Xn数列
  4. Linux系统云主机教程,新开的linux云主机磁盘挂载教程
  5. CSS3及JS媒体查询教程
  6. flink运行原理_Flink运行架构剖析
  7. html5伪类触发机制,HTML5表单验证
  8. 信息学奥赛C++语言:输出学生序号与成绩
  9. 从入门到入土:基于Python实现百度查询返回结果真实url读取及域名读取
  10. PMP考试重点总结二——启动过程组
  11. 人文社科课题中计算机知识的作用,人文社科类项目申请书模板.doc
  12. 软考 程序员教程-第四版第五版变化
  13. 高德地图获取经纬度、高德地图坐标转为百度地图坐标
  14. 一文介绍完整:python猴子补丁python monkey patch 没听过?
  15. python可以构建sem模型_Python Pandas Series.sem()用法及代码示例
  16. eplan PLC画图
  17. Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)
  18. office2016选中、编辑突然变慢
  19. LiDAR 完整指南介绍:激光探测和测距
  20. 宝塔接php支付,支付宝免签约辅助AlipaySupervisor宝塔面板使用教程

热门文章

  1. kali 安装步骤失败,选择并安装软件包,失败解决方法 “换源”
  2. No SecurityManager accessible to the calling code
  3. Android Studio 最新汉化包下载及安装方法,持续更新 IDEA
  4. 云计算演义(7)中国云计算离世界有多远?
  5. SVN文件没有对勾感叹号的状态提示
  6. 深度学习EMA的注意事项
  7. GUID Partition Table(GUID磁盘分区表):GPT
  8. jflow-core 代码
  9. B样条基函数的定义及系数的意义
  10. shell函数(用法及定义)