netstat 订阅
在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。如果你的计算机有时候接收到的数据包导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据包。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。一般用netstat -an 来显示所有连接的端口并用数字表示。netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。 [1]  使用时如果不带参数,netstat显示活动的 TCP 连接。 展开全文
在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。如果你的计算机有时候接收到的数据包导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据包。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。一般用netstat -an 来显示所有连接的端口并用数字表示。netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。 [1]  使用时如果不带参数,netstat显示活动的 TCP 连接。
信息
外文名
Netstat
显    示
IP、TCP、UDP和ICMP协议
命    令
显示网络连接、路由表、网络接口
中文名
网络信息统计
应    用
检验本机各端口的网络连接情况
Netstat格式
该命令的一般格式为 :netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval] [1]  命令中各选项的含义如下: -a 显示所有socket,包括正在监听的。  -c 每隔1秒就重新显示一遍,直到用户中断它。  -i 显示所有网络接口的信息,格式“netstat -i”。  -n 以网络IP地址代替名称,显示出网络连接情形。  -r显示核心路由表,格式同“route -e”。  -t 显示TCP协议的连接情况  -u 显示UDP协议的连接情况。  -v 显示正在进行的工作。  -p 显示建立相关连接的程序名和PID。  -b 显示在创建每个连接或侦听端口时涉及的可执行程序。  -e 显示以太网统计。此选项可以与 -s 选项结合使用。  -f 显示外部地址的完全限定域名(FQDN)。  -o显示与与网络计时器相关的信息。-s 显示每个协议的统计。  -x 显示 NetworkDirect 连接、侦听器和共享端点。  -y 显示所有连接的 TCP 连接模板。无法与其他选项结合使用。  interval 重新显示选定的统计,各个显示间暂停的 间隔秒数。按 CTRL+C 停止重新显示统计。如果省略,则 netstat 将打印当前的配置信息一次。Name接口的名字 Mtu 接口的最大传输单位Net/Dest 接口所在的网络Address 接口的IP地址Ipkts 接收到的数据包数目Ierrs 接收到时已损坏的数据包数目Opkts 发送的数据包数目Oeers 发送时已损坏的数据包数目Collisions 由这个接口所记录的网络冲突数目netstat -a——本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。netstat -b该参数可显示在创建网络连接和侦听端口时所涉及的可执行程序。netstat -s——本选项能够按照各个协议分别显示其统计数据。如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。netstat -e——本选项用于显示关于以太网的统计数据,它列出的项目包括传送数据报的总字节数、错误数、删除数,包括发送和接收量(如发送和接收的字节数、数据包数 [1]  ),或有广播的数量。可以用来统计一些基本的网络流量。netstat -r——本选项可以显示关于路由表的信息,类似于后面所讲使用routeprint命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。netstat -n——显示所有已建立的有效连接。netstat -p——显示协议名查看某协议使用情况
收起全文
精华内容
下载资源
问答
  • netstat 千次阅读
    2019-09-25 23:54:31
    前言

    在调试网络程序或者定位网络相关问题时,有一个命令不得不知,它就是netstat。netstat命令用于查看网络连接,路由表,网络接口统计数据, 虚拟连接等信息。netstat的选项很多,但是本文准备介绍一些netstat命令的实用技巧。

    查看某个端口是否被占用

    如果你遇到“Address already in use”的错误,那么你就需要好好看看是不是端口已经被占用了。-a(all)参数用于列出所有监听和非监听状态的连接。

    $ netstat -a|grep 6379
    tcp        0      0 *:6379                  *:*                     LISTEN     
    tcp6       0      0 [::]:6379               [::]:*                  LISTEN 

    这里我们可以看到,有一个tcp连接使用了6379端口,并且当前处于LISTEN状态,这些状态信息对于分析网络连接问题非常有帮助,我们将会在后面的文章中看到它们大放异彩。

    当然你也可以使用lsof命令中的方法来查看。

    查找占用端口的进程

    前面虽然知道已经有进程使用了6379端口,但是不知道是哪个进程,因此为了知道进程信息,需要使用-p(program)参数:

    $ netstat -ap|grep 6379
    tcp        0      0 *:6379                  *:*                     LISTEN      10011/redis-server 
    tcp6       0      0 [::]:6379               [::]:*                  LISTEN      10011/redis-server

    这个时候就可以看到是进程id为10011的redis-server进程占用了6379端口,至此要杀要剐就随你便了。

    查看指定协议的连接

    我们都知道,除了TCP之外还有UDP,如果我们想查看指定类型的连接呢?

    $ netstat -at   #-t,查看tcp连接
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 192.168.0.103:42468     113.96.233.139:https    ESTABLISHED
    tcp        0      0 192.168.0.103:59326     123.58.182.252:https    TIME_WAIT  
    tcp        0      0 192.168.0.103:59328     123.58.182.252:https    TIME_WAIT  
    (未显示完全)

    以此种方式,可以看到所有的TCP连接,而对于UDP连接,只需要使用-u(UDP):

    $ netstat -au
    udp        0      0 *:36305                 *:*                                
    udp        0      0 127.0.1.1:domain        *:*                                
    udp        0      0 *:bootpc                *:*                                
    udp        0      0 *:ipp                   *:*   
    
    (未显示完全))

    当然了,这两个参数也是可以一起用的。

    除此之外,还可以使用-4或-6来指定查看ipv4还是ipv6的连接:

    查看处于监听状态的连接

    对于还没有建立完整连接的服务器来说,它启动后正常的状态是LISTEN状态,如果只想查看处于该状态的连接,则可以使用-l(LISTEN)参数:

    $ netstat -l
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 127.0.1.1:domain        *:*                     LISTEN     
    tcp        0      0 localhost:5941          *:*                     LISTEN     
    tcp        0      0 localhost:ipp           *:*                     LISTEN     
    tcp        0      0 localhost:socks         *:*                     LISTEN     
    tcp        0      0 *:6379                  *:*                     LISTEN
    (未显示完全))

    这个时候记得不要带上-a参数,它会列出所有。

    而你如果要查看其他状态的连接,只需要结合grep使用即可,例如,查看ESTABLISHED状态的连接:

    $ netstat -anp |grep ESTAB
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    tcp        0      0 192.168.0.103:42468     113.96.233.139:443      ESTABLISHED 2613/chrome     
    tcp        0      0 192.168.0.103:38024     108.177.125.188:443     ESTABLISHED 2613/chrome     
    不解析主机,端口等信息

    不知道你有没有发现,在执行前面的命令的时候,速度很慢,让你一度怀疑是不是自己电脑太卡了。实际上,你观察前面的输出结果就会发现,很多连接的主机名和端口对应的应用都解析出来了,例如:

    123.58.182.252:https

    所以慢是因为它需要做解析,使用-n(numeric)参数就可以快速显示原始数字端口或地址了:

    $ netstat -anp
    持续输出连接信息

    你在定位网络相关问题的时候,总不想执行一次观察一次吧?能不能自动反复执行查看呢?当然可以啦!可以使用-c(continuous)参数:

    $ netstat -npc

    这样,它就会每隔一秒执行一次。

    查看用户和连接的iNode

    这条连接是哪个用户建立的呢?unix下一切皆文件,那么这个连接的iNode是多少呢?借助-e(extend)参数可以看到这些信息:

    $ netstat -ent
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      
    tcp        0      0 192.168.0.103:42468     113.96.233.139:443      ESTABLISHED 1000       134891     
    tcp        0      0 192.168.0.103:46556     121.9.246.106:443       TIME_WAIT   0          0          

    可以看到在使用-e参数后,多了最后两列,分别是user和Inode。而使用id命令可以知道该user到底是谁:

    $ id 1000
    uid=1000(hyb) gid=1000(hyb) groups=1000(hyb),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
    查看连接相关的定时器

    使用-o可以查看和连接相的定时器信息,

    $ netstat -nto
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
    tcp        0      0 192.168.0.103:42468     113.96.233.139:443      ESTABLISHED keepalive (18.69/0/0)
    tcp        1      1 192.168.0.103:43718     113.96.233.139:443      LAST_ACK    on (19.97/7/0)
    tcp        0      0 192.168.0.103:38024     108.177.125.188:443     ESTABLISHED keepalive (34.76/0/0)
    tcp        0      0 192.168.0.103:60362     123.58.182.252:443      TIME_WAIT   timewait (6.70/0/0)
    tcp6       0      0 127.0.0.1:9614          127.0.0.1:59736         ESTABLISHED off (0.00/0/0)

    最后的timer列相关字段含义如下:

    • keepalive keepalive的时间计时

    • on 重发的时间计时

    • off 没有时间计时

    • timewait 等待时间计时

    关于定时器的含义,需要对TCP协议有较多理解,这里就不展开了。

    查看数据包统计信息

    各种协议的数据包的收发情况如何呢?连接数量如何呢是用-s(statistics)参数可以查看:

    $ netstat -s
    (仅显示了TCP协议的结果)
    Tcp:
        3067 active connections openings
        1 passive connection openings
        173 failed connection attempts
        587 connection resets received
        10 connections established
        657576 segments received
        456349 segments send out
        2700 segments retransmited
        16 bad segments received.
        1321 resets sent
    查看路由信息

    使用-r(route)参数可以查看路由相关信息,例如:

    $ netstat -r
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    default         192.168.0.1     0.0.0.0         UG        0 0          0 wlp3s0
    link-local      *               255.255.0.0     U         0 0          0 wlp3s0
    192.168.0.0     *               255.255.255.0   U         0 0          0 wlp3s0

    当然你也可以借助route命令完成这样简单的工作。

    总结

    netstat命令是我们定位网络相关问题的利器,如果你还不会使用,那么最好花几分钟学习一下。netstat更详细的字段解释可以参考其手册。

    转载于:https://www.cnblogs.com/kcxg/p/11242567.html

    更多相关内容
  • Linux netstat命令 Linux netstat命令用于显示网络状态。 利用netstat指令可让你得知整个Linux系统的网络情况。 语法netstat [-acCeFghilMnNoprstuvVwx][-A][--ip] 参数说明: -a或–all 显示所有连线中的Socket。 -...
  • 摘要:VC/C++源码,系统相关,查看端口,Netstat VC实现的类似Windows Netstat命令查看开放端口的源码,并不是一个完整的程序。NPort.cpp : 显示端口及对应的文件名,相当于Netstat -noa命令. 适用于XP及较高级版本.所用...
  • 查看所有80端口的连接数 代码如下: netstat -nat|grep -i “80″|wc -l 对连接的IP按连接数量进行排序 代码如下: netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n 查看TCP连接状态 ...
  • 主要介绍了Linux下netstat一些常见用法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • Netstat命令详解

    2019-01-21 16:04:49
    netstat 命令的详细说明,凑字数很困难,慢慢凑
  • Netstat 命令

    2018-05-21 10:54:57
    Netstat 命令
  • 它会显示有关网络连接的有用信息,诸如netstat之类的实用程序通常不会向您提供这些信息,例如建立连接的时间,创建连接的确切命令以及建立连接的用户。 Windows用户注意事项:除非您以NT AUTHORITY\SYSTEM身份运行...
  • 主要介绍了netstat里面的0.0.0.0是什么意思的详细解释,需要的朋友可以参考下
  • 当前进程的所有的socket句柄、连接的端口如何看等这些恼人的问题,通过阅读"使用netstat命令进行网络问题排查的诀窍",就可以立马找到解决新问题的答案。 本文包含了10个典型的问题及netstat的实际使用方法、实际...
  • 在linux一般使用netstat 来查看系统端口使用情况步。  netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的  netstat命令的功能是显示网络连接、路由表...
  • Usage of ./go-netstat: -4 display only IPv4 sockets -6 display only IPv6 sockets -all display both listening and non-listening sockets -help display this help screen -lis display only ...
  • Linux命令之netstat

    2017-09-26 09:10:13
    Linux命令之netstat命令搜集,在Linux命令中,netstat无疑是很重要的一点。因此本人特意搜集了主要的netstat命令的使用
  • netstat查看端口占用命令.txt
  • openwrt-packages-netstat-nat

    2021-05-17 20:47:52
    openwrt-packages-netstat-nat 这是OpenWrt的软件包,已在OpenWrt 15.05.1 / LEDE 17.01.4上进行了测试。 如何安装二进制包 请参阅 。 如何建造 要构建这些软件包,请将以下行添加到OpenWrt buildroot中的feeds....
  • 简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 输出信息含义执行netstat后,其输出结果为 代码如下...
  • Netstat 用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 通过netstat可以查看网络连接、端口号等占用情况  查看进程和端口号相关:  1. 查看TCP/UDP端口:  ...
  • 在运维和管理 Linux 服务器的时候,我们最常用的一个命令就是 netstat,我常用这个命令来查看当前服务器上有哪些进程正在侦听端口,主要用来诊断网络服务的工作状态。 不过,最近有一次安装好一个 Ubuntu 发型版,...
  • NULL 博文链接:https://happyqing.iteye.com/blog/1933376
  • netstat用Python重写 欢迎使用netmatt — Python中一个简单的netstat -p |grep LISTEN替换 什么是文件? 从最早/最坏到最新/最好: net-listeners-callout.py 只需重新格式化netstat输出(需要root) ...
  • 本篇文章主要介绍了Linux netstat命令详解,现在分享给大家,也留给日后一个参考,有需要的可以了解一下。
  • Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
  • Netstat命令使用详解

    2020-10-01 08:00:24
    主要介绍了Netstat命令使用详解,Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况,需要的朋友可以参考下
  • 下面小编就为大家带来一篇详谈Linux netstat命令(高级面试必备)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • NetStat_delphi_Network_

    2021-09-29 01:55:20
    Sample for use netstat command on Delphi
  • netstat命令详解

    2019-07-02 13:53:05
    netstat命令详解
  • 易语言查看netstat源码
  • Windows 7 下VC实现的类似Netstat命令查看端口开放情况的程序。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 319,346
精华内容 127,738
关键字:

netstat