netstat命令可以用来查询整个系统的网络状态。百度百科的定义如下:

Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCPUDPICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

从上面的百科介绍我们可以看出,netstat命令在查询网络问题的时候十分有用。下面就来详细介绍下netstat的用法。

使用语法

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

参数说明

  • -a或--all 显示所有连线中的Socket。
  • -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
  • -c或--continuous 持续列出网络状态。
  • -C或--cache 显示路由器配置的快取信息。
  • -e或--extend 显示网络其他相关信息。
  • -F或--fib 显示FIB。
  • -g或--groups 显示多重广播功能群组组员名单。
  • -h或--help 在线帮助。
  • -i或--interfaces 显示网络界面信息表单。
  • -l或--listening 显示监控中的服务器的Socket。
  • -M或--masquerade 显示伪装的网络连线。
  • -n或--numeric 直接使用IP地址,而不通过域名服务器。
  • -N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
  • -o或--timers 显示计时器。
  • -p或--programs 显示正在使用Socket的程序识别码和程序名称。
  • -r或--route 显示Routing Table。
  • -s或--statistice 显示网络工作信息统计表。
  • -t或--tcp 显示TCP传输协议的连线状况。
  • -u或--udp 显示UDP传输协议的连线状况。
  • -v或--verbose 显示指令执行过程。
  • -V或--version 显示版本信息。
  • -w或--raw 显示RAW传输协议的连线状况。
  • -x或--unix 此参数的效果和指定"-A unix"参数相同。
  • --ip或--inet 此参数的效果和指定"-A inet"参数相同。

使用实例


[root@SHA-L0161171 arthas]$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:8004 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:11052 0.0.0.0:* LISTEN
tcp 0 0 172.24.248.108:8004 192.168.202.31:57588 ESTABLISHED
tcp 0 0 127.0.0.1:51092 127.0.0.1:8091 TIME_WAIT
tcp 0 0 172.24.248.108:8004 192.168.202.38:32283 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.38:58923 TIME_WAIT
tcp 0 0 172.24.248.108:8004 192.168.202.32:39983 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.37:38230 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.34:5081 ESTABLISHED
tcp 0 0 172.24.248.108:8004 192.168.202.32:17240 ESTABLISHED
tcp 0 0 127.0.0.1:38784 127.0.0.1:12050 TIME_WAIT ... Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 3 [ ] DGRAM 18442 /run/systemd/notify
unix 2 [ ] DGRAM 18444 /run/systemd/cgroups-agent
unix 2 [ ] DGRAM 23822 /var/run/chrony/chronyd.sock
unix 8 [ ] DGRAM 18455 /run/systemd/journal/socket
unix 18 [ ] DGRAM 18457 /dev/log
unix 2 [ ] DGRAM 14151 /var/run/nscd/socket
unix 2 [ ] DGRAM 584 /run/systemd/shutdownd
unix 3 [ ] STREAM CONNECTED 124439388 /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 42312 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 39909

上面的输出包含两个部分:

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

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

对于Internet connections部分输出参数,做下重点介绍

  • Proto:表示连接使用的协议,常见的有tcpudptcp6等;

  • Recv-Q:指接收队列,这个数字一般都应该是0,如果不是则表示数据包正在队列中堆积。拿Tomcat服务器举个列子:当Tcp连接建立后,Tomcat服务器中会有一个accepter线程取出这个连接让worker线程处理,现在假如连接建立的速度远远大于accepter线程取连接的速度,那么连接就在队列中堆积,此时Recv-Q就会大于0;还有一种可能就是系统遭遇到了Dos攻击,已经不能再响应外部请求;

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

  • Local Address:表示本地地址,这个字段一般有三种形式的值:

    • 172.24.248.108:8004 : 这种形式的值是最常见的值,表示本机有个ip地址是172.24.248.108,有个程序正在使用本机的8004端口和外部程序建立连接;
    • 0.0.0.0:8004 : 这种形式的值看起来比较奇怪,其实其中的0.0.0.0表示的是所有能表示本机的ip地址。我们知道机器是可以配置多块网卡的,比如现在我们的机器配置了两个网卡,其中一块配置的地址是172.24.248.108,另外一块配置的地址是172.24.248.109,那么这边的0.0.0.0就是表示172.24.248.108、172.24.248.109和127.0.0.1这三个IP。
    • :::8004 : 其中的::表示全0的IP地址,比如::

      网络状态诊断工具——netstat命令的更多相关文章

      1. Windows自带强大的入侵检测工具——Netstat 命令 查询是否中木马

        Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是否有被中木马, ...

      2. 网络监控之一:netstat命令

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

      3. 列车网络智能诊断工具链—MVB智能诊断仪

        由于MVB网络采用分布式网络结构,各组网设备分布在不同电气柜,甚至是在不同车辆上,各组网设备往往来自于不同供应商,这给MVB网络调试及诊断带来了很大的难度.目前MVB网络调试及故障排查,主要是通过仪器 ...

      4. iOS完美的网络状态判断工具

        大多数App都严重依赖于网络,一款用户体验良好的的app是必须要考虑网络状态变化的.iOSSinger下一般使用Reachability这个类来检测网络的变化. Reachability 这个是苹果开 ...

      5. Linux使用netstat查看网络状态

        查看本机的网络状态.使用netstat查看网络状态.显示系统端口使用情况.UDP类型的端口.TCP类型的端口.只显示所有监听端口.只显示所有监听tcp端口. 命令使用举例 命令 说明 netstat ...

      6. Linux netstat 命令

        1. netstat命令用于显示系统的网络信息,包括网络连接 .路由表 .接口状态2. 一般我们使用 netstat 来查看本机开启了哪些端口,查看有哪些客户端连接 常见用法如下: [root@loc ...

      7. 【Linux】- netstat 命令

        Linux netstat命令用于显示网络状态.利用netstat指令可让你得知整个Linux系统的网络情况. 语法 netstat [-acCeFghilMnNoprstuvVwx][-A<网 ...

      8. Linux网络配置、文件及命令

        Linux的网络配置是曾一直是我学习Linux的埋骨之地,投入了大量的精力和心神但是自己的虚拟机就是联不了网.原来一个大意,我一躺就是一年半.在这里简单的谈谈我对网络的微微认识. VMware的联网模 ...

      9. Android开发之强大的网络判断工具,判断是否联网,判断是wifi还是3g网络等java工具代码类

        作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, 转载请说明出处. 给大家分享一个Android开发者常用的工具类.主要针对网络判断的 功能强大.下面 ...

      随机推荐

      1. android service中stub作用是什么?

        AIDL(android 接口描述语言)是一个IDL语言,它可以生成一段代码,可以使在一个android设备上运行的两个进程使用内部通信进程进行交互.如果你需要在一个进程中(例如:在一个Activit ...

      2. tensorflow学习笔记(三十四):Saver(保存与加载模型)

        Savertensorflow 中的 Saver 对象是用于 参数保存和恢复的.如何使用呢? 这里介绍了一些基本的用法. 官网中给出了这么一个例子: v1 = tf.Variable(..., nam ...

      3. hdu 1077 (圆交)

        Problem - 1077 我们可以知道,当这个单位圆可以覆盖到最多的点的时候,必定最少有两个点位于这个圆的圆周上,于是就有网上众多的O(N^3)的枚举两个在圆上的点的暴搜做法. 然而这题是可以用圆 ...

      4. UI2CODE智能生成代码——组件识别篇

        1.背景 在<UI2CODE——整体设计篇>中,我们介绍了UI2CODE工程的整体流程: 在组件识别这个环节,需要有一种处理布局信息的方法,来解析和计算控件间的布局关系(比如识别业务组件( ...

      5. @总结 - 10@ Miller-Rabin素性测试与Pollard-Rho因数分解

        目录 @1 - 素性测试:Miller-Rabin算法@ @1.1 - 算法来源@ @1.2 - 算法描述@ @1.3 - 算法实现@ @2 - 因数分解:Pollard-Rho算法@ @2.0 - ...

      6. @bzoj - 4381@ [POI2015] Odwiedziny

        目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一棵 n 个点的树,树上每条边的长度都为 1 ,第 i 个点 ...

      7. 20190608笔试题のCSS-属性继承

        以下的CSS属性哪些可以继承?(单选) A.   font-sizeB.   marginC.   widthD.   padding emmm,这题答案是A,看到这题我是能选对的,但又不由让我想到一 ...

      8. 如何创建私有pod三方库

        1.先登录github或者开源中国码云,创建远程仓库,用来存放库文件代码 仓库创建完成,得到远程仓库地址,并保存备用 2.创建本地代码库 打开终端,cd到你想创建的文件夹下,使用命令:pod lib ...

      9. Attention is all your need 谷歌的超强特征提取网络——Transformer

        过年放了七天假,每年第一件事就是立一个flag——希望今年除了能够将技术学扎实之外,还希望能够将所学能够用来造福社会,好像flag立得有点大了.没关系,套用一句电影台词为自己开脱一下——人没有梦想,和 ...

      10. 【知识小结】Git 个人学习笔记及心得

        https://mp.weixin.qq.com/s/D96dXYfu3XAA4ac456qo0g git架构 工作区:就是你在电脑里能看到的目录. 版本库:工作区有一个隐藏目录.git,,而是Git ...