netstat 命令用于显示与 IP TCP  UDP 和 ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat 是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP 监听,进程内存管理的相关报告。

  如果你的计算机有时候收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用 netstat 查一查为什么会出现这些情况了。

  1.命令格式:

    netstat [参数] [网络类型][IP]

  2.命令功能:

    netstat 用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

  3.命令参数:

    -a或 -all    显示所有连接中的 socket

    -A  列出该网络类型连接的相关地址

    -c  持续列出网络状态

    -C  显示路由器配置的缓存信息

    -e  显示网络其他相关信息

    -F  显示FIB  

    -g  显示多重广播功能群组组员名单

    -h  在线帮助

    -i  显示网络界面信息表单

    -l  显示监控中的服务器的socket。

    -m  显示伪装的网络连接

    -n  直接使用IP地址,而不通过域名服务器

    -N  显示网络硬件外围设备的符号链接名称

    -o  显示计时器

    -p  显示正在使用socket的程序识别码和程序名称

    -r  显示 Routing Table

    -s  显示网络工作信息统计表

    -t  显示TCP 传输协议的连线情况

    -u  显示UDP传输协议的连线情况

    -v  显示指令执行过程

    -V  显示版本信息

    -w  显示RAW传输协议的连接情况

    -x  此参数的效果和指定“-A unix” 参数相同

    -ip  此参数的效果和指定“ -A  inet” 参数相同

  4.使用实例:

  实例1:无参数使用

  命令:netstat

  从整体上看,netstat的输出结果可以分为两个部分:

  一个是 Active  Internet  connections ,称为有源TCP 连接,其中 “Recv-Q” 和“Send-Q”指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况一般不常见。

  另一个是 Active  UNIX   domain  sockets,称为有源 Unix 域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

  proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,state显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

  套接口类型:

  -t  TCP  

  -u  UDP  

  -raw  RAW类型

  --Unix  UNIX域类型

  --ax25  AX25类型

  --ipx  ipx类型

  --netrom    netrom类型

  状态说明:

  LISTEN:侦听来自远方的TCP端口的连接请求

  SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了,变肉鸡了)

  SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)

  ESTABLISHED:代表一个打开的连接

  FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认

  FIN-WAIT-2:从远程TCP等待连接中断请求

  CLOSE-WAIT:等待从本地用户发来的连接中断请求

  CLOSING:等待远程TCP对连接中断的确认

  LAST-ACK:等待原来的发现远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)

  TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认

  CLOSED:没有任何连接状态

  实例2:列出所有端口

  命令:netstat  -a

       显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。

  实例3:显示当前UDP连接状况

  命令:  netstat  -nu

  实例4:显示UDP端口号的使用情况

  命令:  netstat  -apu

  实例5:显示网卡列表

  命令:  netstat   -i

  实例6:显示组播组的关系

  命令:  netstat  -g

  实例7:显示网络统计信息

  命令:  netstat   -s

    按照各个协议分别显示其统计数据,如果我们的应用程序(如WEB浏览器)运行速度比较慢,或者不能显示web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。

  实例8:显示监听的套接口

  命令:

    netstat  -l

  实例9:显示所有已建立的有效连接

  命令:

    netstat  -n

  实例10:显示有关于以太网的统计数据

  命令:

    netstat  -e

    用于显示关于以太网的统计数据,它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量。

  实例11:显示关于路由表的信息

  命令:  netstat  -r

  实例12:列出所有 TCP  端口

  命令:  netstat  -at

  实例13:统计机器中网络连接各个状态个数

  命令:  netstat  -a |  awk  '/^tcp/  {++S[$NF]}  END  {for(a  in  S)  print  a,  S[a]}'

  实例14:把状态全部取出来后使用 uniq  -c  统计后在进行排序

  命令:  netstat  -nat  |awk  '{print $6} ' | sort  | uniq -c  -------------这条命令很有意思

  实例15:查看连接某服务端口最多的IP地址

  命令:  netstat  -nat  |  grep  "192.168.1.12:8080"  | awk '{print $5}' | awk  -F:  '{print $4}' | sort | uniq -c | sort -nr | head -20

  实例16:找出 程序运行的端口

  命令:  netstat  -ap  |  grep  ssh

  实例17:在 netstat  输出中显示 PID 和进程名称

  命令:  netstat  -pt

    netstat  -p  可以与其它开关一起使用,就可以添加  “PID/进程名称”  到 netstat  输出中,这样  debugging  的时候可以很方便的发现特定端口运行的程序。

  实例18:找出运行在指定端口的进程

  命令:  netstat  -anpt |  grep  ':8080'  这样的话我们就可以先找出运行在该端口的进程ID,然后再通过 ps 命令就可以找到具体的应用程序了。

  

     

每天一个linux命令(43)--netstat命令的更多相关文章

  1. Linux系统采用netstat命令查看DDOS攻击的方法

    Linux系统采用netstat命令查看DDOS攻击的方法 来源:互联网 作者:佚名 时间:07-05 15:10:21 [大 中 小] 这篇文章主要为大家介绍了Linux系统采用netstat命令查 ...

  2. SS命令和Netstat命令比较

    在早期运维工作中,查看服务器连接数一般都会用netstat命令.其实,有一个命令比netstat更高效,那就是ss(Socket Statistics)命令!ss命令可以用来获取socket统计信息, ...

  3. linux常用命令:netstat 命令

    netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...

  4. Linux中使用netstat命令的基本操作,排查端口号的占用情况

    Linux中netstat命令详解 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的状态信息.Netstat用于显示与I ...

  5. Linux学习:netstat命令

    Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态等.对于开发来说,很多时候用于查看端口占用情况. 执行netstat命令,其输出结果可以分成两部分: 1)一是“Active ...

  6. 【Linux常见命令】netstat命令

    netstat - Print network connections, routing tables, interface statistics, masquerade connections, a ...

  7. Linux系统运行netstat命令时的过三关斩一将

    1.简介 这篇文章主要是记录在日常工作中遇到的一些问题,将其都总结整合到一起,方便查看,提高工作效率.小伙伴们看到标题可能觉得奇怪,不是过五关斩六将而是过三关斩一将.慢慢地往后看发现其中奥秘. 2.过 ...

  8. linux网络操作 netstat命令

    关闭与启动网卡 ifdown 网卡设备名 #禁用该网卡设备 ifup网卡设备名 #启用该网卡设备 查看网络状态 netstat  命令 ​ -t 列出tcp协议端口 -u 列出udp协议端口 -n 不 ...

  9. Linux中的netstat命令详解

    功能说明 netstat是基于Netstat这个命令行工具的指令,它可以用来查询系统上的网络套接字连接情况,包括tcp,udp以及Unix套接字:另外它还能列出路由表,接口状态和多播成员等信息. 主要 ...

随机推荐

  1. python实现二叉树

    初学python,需要实现一个决策树,首先实践一下利用python实现一个二叉树数据结构.建树的时候做了处理,保证建立的二叉树是平衡二叉树. # -*- coding: utf-8 -*- from ...

  2. CentOS Linux解决 Device eth0 does not seem to be present

    通过OVF部署Linux主机后提示 ringing up interface eth0:  Device eth0 does not seem to be present,delaying initi ...

  3. K-Means 算法(转载)

    K-Means 算法 在数据挖掘中, k-Means 算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 问题 K-Means ...

  4. 第十八篇、OC_使用OAStackView FDStackView (第三方框架)可以使用在ios 7及以上的版本

    UILabel *view1 = [[UILabel alloc]init]; view1.text = @"Label1"; view1.backgroundColor = [U ...

  5. Java获取异常堆栈信息

    方法一: public static String getStackTrace(Throwable t) { StringWriter sw = new StringWriter(); PrintWr ...

  6. Java Swing JScrollPane 设置滚动量

    JScrollPane.getVerticalScrollBar().setUnitIncrement(20); 参考:http://bbs.csdn.net/topics/320249228

  7. Flex4 flash builder保留MXML转换的AS代码

    Flex4 flash builder保留MXML转换的AS代码 项目->属性->Flex编译器 | 附加的编译参数 加上 -keep 生成的Test005-interface.as文件: ...

  8. Flex回声消除的最佳方法

    Adobe Flash Player 已经成为音频和视频播放的非常流行的工具.实际上,目前大多数因特网视频均使用 Flash Player观看. Flash Player 通过将许多技术进行组合可以提 ...

  9. 使用Flex构建Web和移动参考应用程序

    范例文件 Shopping Cart Sales Dashboard Expense Tracker 需要的其他产品 Android 2.2及更高版本或Android 3.0及更高版本的设备 仅仅在F ...

  10. Codeforces374A

    A. Inna and Pink Pony time limit per test1 second memory limit per test 256 megabytes input standard ...