netstat_netstat 命令 - CSDN
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-06-10 20:37:48
    netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships netstat - 打印网络连接、路由表、接口统计、伪装连接和多播成员关系 ...

    ##netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships##
    ##netstat - 打印网络连接、路由表、接口统计、伪装连接和多播成员关系##


    参数


    usage: netstat [-veenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
           netstat [-vnNcaeol] [<Socket> ...]
           netstat { [-veenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]
    
            -r, --route                display routing table            #显示路由表
            -I, --interfaces=<Iface>   display interface table for <Iface>  #显示网络接口表
            -i, --interfaces           display interface table  #显示网络接口表
            -g, --groups               display multicast group memberships      #显示多播组成员
            -s, --statistics           display networking statistics (like SNMP)    #显示网络统计数据,如IP/ICMP/SNMP/..各协议统计。
            -M, --masquerade           display masqueraded connections     #显示伪装的连接
    
            -v, --verbose              be verbose   #详细信息
            -n, --numeric              don't resolve names     #不做名字解析
            --numeric-hosts            don't resolve host names     #不做主机名解析
            --numeric-ports            don't resolve port names     #不做端口名解析
            --numeric-users            don't resolve user names     #不做用户名解析
            -N, --symbolic             resolve hardware names   
            -e, --extend               display other/more information   #显示更多信息,用户名,inode
            -p, --programs             display PID/Program name for sockets     #显示pid和程序名字
            -c, --continuous           continuous listing   #持续的列出相关信息
    
            -l, --listening            display listening server sockets     #显示处于监听状态的套接字
            -a, --all, --listening     display all sockets (default: connected)     #显示所有的套接字
            -o, --timers               display timers       #显示计时器
            -F, --fib                  display Forwarding Information Base (default)       #使用-rF查看路由表时,显示转发信息
            -C, --cache                display routing cache instead of FIB     #使用-rC查看路由表时,显示详细的路由缓存
            -T, --notrim               stop trimming long addresses     #停止修剪长地址
            -Z, --context              display SELinux security context for sockets     #显示套接字的SELINUX上下文
    
      <Iface>: Name of interface to monitor/list.
      <Socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
      <AF>=Use '-A <af>' or '--<af>'; default: inet
      List of possible address families (which support routing):
        inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
        netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
        x25 (CCITT X.25) 
    

    举例:


    1 . 查看网络链接状态

        -a 显示所有状态的socket  
        -n 不做名字解析,不加此参数,80端口会显示成http,127.0.0.1显示成localhost,uid为0显示成root等等    
        -e 显示更多信息如用户,inode
        -p 显示pid和程序名字
        -t 显示tcp链接
        -u 显示udp链接
        -x 显示unix套接字    
    
               
    
      netstat -anpte   #查看tcp链接
    
    [root@jia1-LinuxPerformance ~]# netstat -anpte
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name   
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      0          10294      1821/sshd           
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      0          10594      1923/master         
    tcp        0     52 172.16.2.106:22             124.65.173.246:50809        ESTABLISHED 0          10826      1967/sshd           
    tcp        0      0 172.16.2.106:54076          100.100.100.200:80          TIME_WAIT   0          0          -                   
    tcp        0      0 172.16.2.106:60382          140.205.140.205:80          ESTABLISHED 0          9273       1471/AliYunDun      
    tcp        0      0 172.16.2.106:54070          100.100.100.200:80          TIME_WAIT   0          0          -     
    
     netstat -anpue   #查看udp链接
     
    [root@jia1-LinuxPerformance ~]# netstat -anpue
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name   
    udp        0      0 0.0.0.0:68                  0.0.0.0:*                               0          9200       1678/dhclient       
    udp        0      0 0.0.0.0:68                  0.0.0.0:*                               0          8655       1069/dhclient       
    udp        0      0 172.16.2.107:123            0.0.0.0:*                               0          10366      1832/ntpd           
    udp        0      0 172.16.2.106:123            0.0.0.0:*                               0          10365      1832/ntpd           
    udp        0      0 127.0.0.1:123               0.0.0.0:*                               0          10364      1832/ntpd           
    
     netstat -anpxe   #查看unix套接字链接
     
    [root@jia1-LinuxPerformance ~]# netstat -anpxe
    Active UNIX domain sockets (servers and established)
    Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
    unix  2      [ ACC ]     STREAM     LISTENING     9249   1471/AliYunDun      /tmp/Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>
    unix  2      [ ACC ]     STREAM     LISTENING     9251   1471/AliYunDun      /usr/local/aegis/Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>
    unix  2      [ ACC ]     STREAM     LISTENING     7047   1/init              @/com/ubuntu/upstart
    unix  10     [ ]         DGRAM                    8814   1140/rsyslogd       /dev/log
    unix  2      [ ACC ]     STREAM     LISTENING     10600  1923/master         public/cleanup
    unix  2      [ ACC ]     STREAM     LISTENING     10607  1923/master         private/tlsmgr
    unix  2      [ ACC ]     STREAM     LISTENING     10611  1923/master         private/rewrite
    unix  2      [ ACC ]     STREAM     LISTENING     10615  1923/master         private/bounce
    unix  2      [ ACC ]     STREAM     LISTENING     10619  1923/master         private/defer
    unix  2      [ ACC ]     STREAM     LISTENING     10623  1923/master         private/trace
    unix  2      [ ACC ]     STREAM     LISTENING     10627  1923/master         private/verify
    unix  2      [ ACC ]     STREAM     LISTENING     10631  1923/master         public/flush
    unix  2      [ ACC ]     STREAM     LISTENING     10635  1923/master         private/proxymap
    unix  2      [ ACC ]     STREAM     LISTENING     10639  1923/master         private/proxywrite
    unix  2      [ ACC ]     STREAM     LISTENING     10643  1923/master         private/smtp
    unix  2      [ ACC ]     STREAM     LISTENING     10647  1923/master         private/relay
    unix  2      [ ACC ]     STREAM     LISTENING     10651  1923/master         public/showq
    unix  2      [ ACC ]     STREAM     LISTENING     10655  1923/master         private/error
    unix  2      [ ACC ]     STREAM     LISTENING     10659  1923/master         private/retry
    unix  2      [ ACC ]     STREAM     LISTENING     10663  1923/master         private/discard
    unix  2      [ ACC ]     STREAM     LISTENING     10667  1923/master         private/local
    unix  2      [ ACC ]     STREAM     LISTENING     10671  1923/master         private/virtual
    unix  2      [ ]         DGRAM                    7622   483/udevd           @/org/kernel/udev/udevd
    unix  2      [ ACC ]     STREAM     LISTENING     10675  1923/master         private/lmtp
    unix  2      [ ACC ]     STREAM     LISTENING     10679  1923/master         private/anvil
    unix  2      [ ACC ]     STREAM     LISTENING     10683  1923/master         private/scache
    unix  2      [ ]         DGRAM                    13412  2216/anacron        
    unix  2      [ ]         DGRAM                    10874  1967/sshd           
    unix  2      [ ]         DGRAM                    10719  1940/qmgr           
    unix  2      [ ]         DGRAM                    10693  1939/pickup         
    unix  2      [ ]         DGRAM                    10690  1941/crond          
    unix  3      [ ]         STREAM     CONNECTED     10686  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10685  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10682  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10681  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10678  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10677  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10674  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10673  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10670  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10669  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10666  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10665  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10662  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10661  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10658  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10657  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10654  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10653  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10650  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10649  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10646  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10645  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10642  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10641  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10638  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10637  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10634  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10633  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10630  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10629  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10626  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10625  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10622  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10621  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10618  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10617  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10614  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10613  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10610  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10609  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10606  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10605  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10603  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10602  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10599  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10598  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10596  1923/master         
    unix  3      [ ]         STREAM     CONNECTED     10595  1923/master         
    unix  2      [ ]         DGRAM                    10556  1923/master         
    unix  2      [ ]         DGRAM                    10321  1832/ntpd           
    unix  3      [ ]         STREAM     CONNECTED     9248   1471/AliYunDun      
    unix  3      [ ]         STREAM     CONNECTED     9247   1471/AliYunDun      
    unix  3      [ ]         STREAM     CONNECTED     9246   1471/AliYunDun      
    unix  3      [ ]         STREAM     CONNECTED     9245   1471/AliYunDun      
    unix  2      [ ]         DGRAM                    9170   1678/dhclient       
    unix  3      [ ]         STREAM     CONNECTED     8775   1118/auditd         
    unix  3      [ ]         STREAM     CONNECTED     8774   1118/auditd         
    unix  3      [ ]         DGRAM                    7636   483/udevd           
    unix  3      [ ]         DGRAM                    7635   483/udevd    
    

    2 . 查看路由表

       netstat -r和route命令输出是差不多的。
       
    [root@jia1-LinuxPerformance ~]# netstat -r
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    172.16.2.0      *               255.255.255.0   U         0 0          0 eth0
    172.16.2.0      *               255.255.255.0   U         0 0          0 eth1
    link-local      *               255.255.0.0     U         0 0          0 eth0
    link-local      *               255.255.0.0     U         0 0          0 eth1
    default         172.16.2.253    0.0.0.0         UG        0 0          0 eth0
    default         172.16.2.253    0.0.0.0         UG        0 0          0 eth1
    [root@jia1-LinuxPerformance ~]# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    172.16.2.0      *               255.255.255.0   U     0      0        0 eth0
    172.16.2.0      *               255.255.255.0   U     0      0        0 eth1
    link-local      *               255.255.0.0     U     1002   0        0 eth0
    link-local      *               255.255.0.0     U     1003   0        0 eth1
    default         172.16.2.253    0.0.0.0         UG    0      0        0 eth0
    default         172.16.2.253    0.0.0.0         UG    1001   0        0 eth1
    
    netstat -rF和netstat -rC两个命令的区别是一个输出的是路由表,一个输出的是路由缓存。
    默认netstat -r输出的是netstat -rF结果。-F为默认参数
    
    [root@jia1-LinuxPerformance ~]# netstat -rF
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    172.16.2.0      *               255.255.255.0   U         0 0          0 eth0
    172.16.2.0      *               255.255.255.0   U         0 0          0 eth1
    link-local      *               255.255.0.0     U         0 0          0 eth0
    link-local      *               255.255.0.0     U         0 0          0 eth1
    default         172.16.2.253    0.0.0.0         UG        0 0          0 eth0
    default         172.16.2.253    0.0.0.0         UG        0 0          0 eth1
    [root@jia1-LinuxPerformance ~]# netstat -rC
    Kernel IP routing cache
    Source          Destination     Gateway         Flags   MSS Window  irtt Iface
    140.205.140.205 172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    10.143.0.46     172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.3.2     172.16.2.253           1500 0          0 eth0
    172.16.2.106    10.143.0.45     172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.5.3     172.16.2.253           1500 0          0 eth0
    100.100.5.2     172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    10.143.33.51    172.16.2.253           1500 0          0 eth0
    100.100.5.1     172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    10.143.33.50    172.16.2.253           1500 0          0 eth0
    203.107.6.88    172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    10.143.33.50    172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.2.136   172.16.2.253           1500 0          0 eth0
    100.100.3.1     172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    100.100.5.3     172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.5.2     172.16.2.253           1500 0          0 eth0
    172.16.2.106    10.143.33.49    172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.3.1     172.16.2.253           1500 0          0 eth0
    172.16.2.106    120.25.115.20   172.16.2.253           1500 0          0 eth0
    172.16.2.106    203.107.6.88    172.16.2.253           1500 0          0 eth0
    172.16.2.106    124.65.173.246  172.16.2.253           1500 0          0 eth0
    172.16.2.106    10.143.0.46     172.16.2.253           1500 0          0 eth0
    100.100.3.3     172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    100.100.3.3     172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.3.2     172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.3.3     172.16.2.253           1500 0          0 eth0
    100.100.5.3     172.16.2.106    172.16.2.106    l     65535 0          0 lo
    124.65.173.246  172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    10.143.0.44     172.16.2.253           1500 0          0 eth0
    120.25.115.20   172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    140.205.140.205 172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.3.1     172.16.2.253           1500 0          0 eth0
    100.100.2.136   172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    10.143.0.45     172.16.2.253           1500 0          0 eth0
    172.16.2.106    10.143.0.44     172.16.2.253           1500 0          0 eth0
    172.16.2.106    120.25.115.20   172.16.2.253           1500 0          0 eth0
    172.16.2.106    10.143.33.49    172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.5.1     172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.2.138   172.16.2.253           1500 0          0 eth0
    172.16.2.106    203.107.6.88    172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.5.1     172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.2.138   172.16.2.253           1500 0          0 eth0
    100.100.3.2     172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    100.100.5.2     172.16.2.253           1500 0          0 eth0
    100.100.2.138   172.16.2.106    172.16.2.106    l     65535 0          0 lo
    172.16.2.106    10.143.33.51    172.16.2.253           1500 0          0 eth0
    172.16.2.106    100.100.2.136   172.16.2.253           1500 0          0 eth0
    

    3 . 查看网络统计数据,netstat -s展示各协议的统计信息

    [root@jia1-LinuxPerformance ~]# netstat -s
    Ip:
        4440 total packets received
        4 with invalid addresses
        0 forwarded
        0 incoming packets discarded
        4436 incoming packets delivered
        4269 requests sent out
    Icmp:
        806 ICMP messages received
        0 input ICMP message failed.
        ICMP input histogram:
            echo requests: 804
            echo replies: 2
        806 ICMP messages sent
        0 ICMP messages failed
        ICMP output histogram:
            echo request: 2
            echo replies: 804
    IcmpMsg:
            InType0: 2
            InType8: 804
            OutType0: 804
            OutType8: 2
    Tcp:
        79 active connections openings
        1 passive connection openings
        3 failed connection attempts
        0 connection resets received
        2 connections established
        2840 segments received
        2494 segments send out
        16 segments retransmited
        0 bad segments received.
        5 resets sent
    Udp:
        790 packets received
        0 packets to unknown port received.
        0 packet receive errors
        953 packets sent
    UdpLite:
    TcpExt:
        3 resets received for embryonic SYN_RECV sockets
        71 TCP sockets finished time wait in fast timer
        44 delayed acks sent
        Quick ack mode was activated 1 times
        652 packets header predicted
        516 acknowledgments not containing data received
        1283 predicted acknowledgments
        1 congestion windows recovered after partial ack
        0 TCP data loss events
        10 other TCP timeouts
        1 DSACKs sent for old packets
        1 DSACKs received
    IpExt:
        InOctets: 329641
        OutOctets: 1297221
    

    4 . 查看网络接口信息

    [root@jia1-LinuxPerformance ~]# netstat -i
    Kernel Interface table
    Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0       1500   0     4502      0      0      0     4353      0      0      0 BMRU
    eth1       1500   0        2      0      0      0        3      0      0      0 BMRU
    lo        65536   0        0      0      0      0        0      0      0      0 LRU
    
    展开全文
  • Netstat 的10个基本用法

    万次阅读 2016-05-07 22:52:19
    Netstat 简介 Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有...

    Netstat 简介

    Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理员的必备利器。在这篇教程中,我会列出几个例子,教大家如何使用 netstat 去查找网络连接信息和系统开启的端口号。

    以下的简单介绍来自 netstat 的 man 手册:

    netstat - 打印网络连接、路由表、连接的数据统计、伪装连接以及广播域成员。

    1. 列出所有连接

    第一个要介绍的,是最简单的命令:列出所有当前的连接。使用 -a 选项即可。

    $ netstat -a
    
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 enlightened:domain      *:*                     LISTEN     
    tcp        0      0 localhost:ipp           *:*                     LISTEN     
    tcp        0      0 enlightened.local:54750 li240-5.members.li:http ESTABLISHED
    tcp        0      0 enlightened.local:49980 del01s07-in-f14.1:https ESTABLISHED
    tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
    udp        0      0 enlightened:domain      *:*                                
    udp        0      0 *:bootpc                *:*                                
    udp        0      0 enlightened.local:ntp   *:*                                
    udp        0      0 localhost:ntp           *:*                                
    udp        0      0 *:ntp                   *:*                                
    udp        0      0 *:58570                 *:*                                
    udp        0      0 *:mdns                  *:*                                
    udp        0      0 *:49459                 *:*                                
    udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*                             
    udp6       0      0 ip6-localhost:ntp       [::]:*                             
    udp6       0      0 [::]:ntp                [::]:*                             
    udp6       0      0 [::]:mdns               [::]:*                             
    udp6       0      0 [::]:63811              [::]:*                             
    udp6       0      0 [::]:54952              [::]:*                             
    Active UNIX domain sockets (servers and established)
    Proto RefCnt Flags       Type       State         I-Node   Path
    unix  2      [ ACC ]     STREAM     LISTENING     12403    @/tmp/dbus-IDgfj3UGXX
    unix  2      [ ACC ]     STREAM     LISTENING     40202    @/dbus-vfs-daemon/socket-6nUC6CCx
    

    上述命令列出 tcp, udp 和 unix 协议下所有套接字的所有连接。然而这些信息还不够详细,管理员往往需要查看某个协议或端口的具体连接情况。

    2. 只列出 TCP 或 UDP 协议的连接

    使用 -t 选项列出 TCP 协议的连接:

    $ netstat -at
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 enlightened:domain      *:*                     LISTEN     
    tcp        0      0 localhost:ipp           *:*                     LISTEN     
    tcp        0      0 enlightened.local:36310 del01s07-in-f24.1:https ESTABLISHED
    tcp        0      0 enlightened.local:45038 a96-17-181-10.depl:http ESTABLISHED
    tcp        0      0 enlightened.local:37892 ABTS-North-Static-:http ESTABLISHED
    .....
    

    使用 -u 选项列出 UDP 协议的连接:

    $ netstat -au
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    udp        0      0 *:34660                 *:*                                
    udp        0      0 enlightened:domain      *:*                                
    udp        0      0 *:bootpc                *:*                                
    udp        0      0 enlightened.local:ntp   *:*                                
    udp        0      0 localhost:ntp           *:*                                
    udp        0      0 *:ntp                   *:*                                
    udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*                             
    udp6       0      0 ip6-localhost:ntp       [::]:*                             
    udp6       0      0 [::]:ntp                [::]:*
    

    上面同时显示了 IPv4 和 IPv6 的连接。

    3. 禁用反向域名解析,加快查询速度

    默认情况下 netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名。这会降低查找速度。如果你觉得 IP 地址已经足够,而没有必要知道主机名,就使用 -n 选项禁用域名解析功能。

    $ netstat -ant
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
    tcp        0      0 192.168.1.2:49058       173.255.230.5:80        ESTABLISHED
    tcp        0      0 192.168.1.2:33324       173.194.36.117:443      ESTABLISHED
    tcp6       0      0 ::1:631                 :::*                    LISTEN
    

    上述命令列出所有 TCP 协议的连接,没有使用域名解析技术。So easy ? 非常好。

    4. 只列出监听中的连接

    任何网络服务的后台进程都会打开一个端口,用于监听接入的请求。这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来。使用 -l 选项列出正在监听的套接字。

    $ netstat -tnl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
    tcp6       0      0 ::1:631                 :::*                    LISTEN
    

    现在我们可以看到处于监听状态的 TCP 端口和连接。如果你查看所有监听端口,去掉 -t 选项。如果你只想查看 UDP 端口,使用 -u 选项,代替 -t 选项。

    注意:不要使用 -a 选项,否则 netstat 会列出所有连接,而不仅仅是监听端口。

    5. 获取进程名、进程号以及用户 ID

    查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的。举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 http 服务是否已经启动,或者 http 服务是由 apache 还是 nginx 启动的,这时候你可以看看进程名。

    使用 -p 选项查看进程信息。

    ~$ sudo netstat -nlpt
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1144/dnsmasq    
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      661/cupsd       
    tcp6       0      0 ::1:631                 :::*                    LISTEN      661/cupsd
    

    使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在 root 权限之下。

    相比进程名和进程号而言,查看进程的拥有者会更有用。使用 -ep 选项可以同时查看进程名和用户名。

    $ sudo netstat -ltpe
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
    tcp        0      0 enlightened:domain      *:*                     LISTEN      root       11090       1144/dnsmasq    
    tcp        0      0 localhost:ipp           *:*                     LISTEN      root       9755        661/cupsd       
    tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN      root       9754        661/cupsd
    

    上面列出 TCP 协议下的监听套接字,同时显示进程信息和一些额外信息。

    这些额外的信息包括用户名和进程的索引节点号。这个命令对网管来说很有用。

    注意 - 假如你将 -n 和 -e 选项一起使用,User 列的属性就是用户的 ID 号,而不是用户名。

    6. 打印统计数据

    netstat 可以打印出网络统计数据,包括某个协议下的收发包数量。

    下面列出所有网络包的统计情况:

    $ netstat -s
    Ip:
        32797 total packets received
        0 forwarded
        0 incoming packets discarded
        32795 incoming packets delivered
        29115 requests sent out
        60 outgoing packets dropped
    Icmp:
        125 ICMP messages received
        0 input ICMP message failed.
        ICMP input histogram:
            destination unreachable: 125
        125 ICMP messages sent
        0 ICMP messages failed
        ICMP output histogram:
            destination unreachable: 125
    ... OUTPUT TRUNCATED ...
    

    如果想只打印出 TCP 或 UDP 协议的统计数据,只要加上对应的选项(-t 和 -u)即可,so easy。

    7. 显示内核路由信息

    使用 -r 选项打印内核路由信息。打印出来的信息与 route 命令输出的信息一样。我们也可以使用 -n 选项禁止域名解析。

    $ netstat -rn
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
    192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
    

    8. 打印网络接口

    netstat 也能打印网络接口信息,-i 选项就是为这个功能而生。

    $ netstat -i
    Kernel Interface table
    Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0       1500 0     31611      0      0 0         27503      0      0      0 BMRU
    lo        65536 0      2913      0      0 0          2913      0      0      0 LRU
    

    上面输出的信息比较原始。我们将 -e 选项和 -i 选项搭配使用,可以输出用户友好的信息。

    $ netstat -ie
    Kernel Interface table
    eth0      Link encap:Ethernet  HWaddr 00:16:36:f8:b2:64  
              inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::216:36ff:fef8:b264/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:31682 errors:0 dropped:0 overruns:0 frame:0
              TX packets:27573 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:29637117 (29.6 MB)  TX bytes:4590583 (4.5 MB)
              Interrupt:18 Memory:da000000-da020000 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:2921 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2921 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:305297 (305.2 KB)  TX bytes:305297 (305.2 KB)
    

    上面的输出信息与 ifconfig 输出的信息一样。

    9. netstat 持续输出

    我们可以使用 netstat 的 -c 选项持续输出信息。

    $ netstat -ct
    

    这个命令可持续输出 TCP 协议信息。

    10. 显示多播组信息

    选项 -g 会输出 IPv4 和 IPv6 的多播组信息。

    $ netstat -g
    IPv6/IPv4 Group Memberships
    Interface       RefCnt Group
    --------------- ------ ---------------------
    lo              1      all-systems.mcast.net
    eth0            1      224.0.0.251
    eth0            1      all-systems.mcast.net
    lo              1      ip6-allnodes
    lo              1      ff01::1
    eth0            1      ff02::fb
    eth0            1      ff02::1:fff8:b264
    eth0            1      ip6-allnodes
    eth0            1      ff01::1
    wlan0           1      ip6-allnodes
    wlan0           1      ff01::1
    

    更多用法

    目前为止我们列出了 netstat 的基本用法,现在让我们一起来 geek 吧~

    打印 active 状态的连接

    active 状态的套接字连接用 "ESTABLISHED" 字段表示,所以我们可以使用 grep 命令获得 active 状态的连接:

    $ netstat -atnp | grep ESTA
    (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.1.2:49156       173.255.230.5:80        ESTABLISHED 1691/chrome     
    tcp        0      0 192.168.1.2:33324       173.194.36.117:443      ESTABLISHED 1691/chrome
    

    配合 watch 命令监视 active 状态的连接:

    $ watch -d -n0 "netstat -atnp | grep ESTA"
    

    查看服务是否在运行

    如果你想看看 http,smtp 或 ntp 服务是否在运行,使用 grep。

    $ sudo netstat -aple | grep ntp
    udp        0      0 enlightened.local:ntp   *:*                                 root       17430       1789/ntpd       
    udp        0      0 localhost:ntp           *:*                                 root       17429       1789/ntpd       
    udp        0      0 *:ntp                   *:*                                 root       17422       1789/ntpd       
    udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*                              root       17432       1789/ntpd       
    udp6       0      0 ip6-localhost:ntp       [::]:*                              root       17431       1789/ntpd       
    udp6       0      0 [::]:ntp                [::]:*                              root       17423       1789/ntpd       
    unix  2      [ ]         DGRAM                    17418    1789/ntpd
    

    从这里可以看到 ntp 服务正在运行。使用 grep 命令你可以查看 http 或 smtp 或其它任何你想查看的服务。

    好了,netstat 的大部分功能都介绍过了,如果你想知道 netstat 更高级的功能,阅读它的手册吧(man netstat)。

    欢迎在下面留下你的反馈和建议。


    原文地址:

    http://www.linuxidc.com/Linux/2014-01/94644.htm

    展开全文
  • Linux下netstat命令详解

    万次阅读 多人点赞 2019-02-11 12:05:36
    Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各...

    一、介绍

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

     

    二、输出信息描述

    执行netstat后输出如下:

    [root@sy-suz-srv51 ~]# netstat
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 k8sdev.sui:sun-sr-https k8sdev.suiyi.com.:34880 SYN_RECV
    tcp        0      0 k8sdev.suiyi.com.c:2379 10.1.62.21:47910        ESTABLISHED
    tcp        0      0 k8sdev.suiyi.com.c:2379 k8sdev.suiyi.com.:37790 ESTABLISHED
    tcp        0      0 sy-suz-srv:pcsync-https 10.1.62.162:49200       ESTABLISHED
    tcp        0      0 k8sdev.suiyi.com.:52866 k8sdev.sui:sun-sr-https ESTABLISHED
    tcp        0      0 k8sdev.suiyi.com.:37728 k8sdev.suiyi.com.c:2379 ESTABLISHED
    tcp        0      0 k8sdev.sui:sun-sr-https k8sdev.suiyi.com.:52852 ESTABLISHED
    tcp        0      0 k8sdev.sui:sun-sr-https 10.1.62.162:32841       ESTABLISHED
    tcp        0      0 sy-suz-srv:pcsync-https sy-suz-srv51:60094      ESTABLISHED
    tcp        0      0 localhost:webcache      localhost:40136         ESTABLISHED
    tcp        0      0 k8sdev.suiyi.com.:35466 10.1.62.21:sun-sr-https ESTABLISHED
    tcp        0      0 k8sdev.suiyi.com.:34358 10.1.62.21:sun-sr-https ESTABLISHED
    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
    unix  3      [ ]         STREAM     CONNECTED     21675
    unix  3      [ ]         STREAM     CONNECTED     47538
    unix  3      [ ]         STREAM     CONNECTED     124585242 /var/run/docker/containerd/docker-containerd.sock
    unix  3      [ ]         STREAM     CONNECTED     21658
    unix  2      [ ]         STREAM     CONNECTED     30160
    unix  3      [ ]         STREAM     CONNECTED     33750    /run/systemd/journal/stdout
    unix  3      [ ]         STREAM     CONNECTED     124614293 @/containerd-shim/moby/c44e49ee0f86d8a4109afb176701795c64f44655abb1861275bbd3b2a9f76394/shim.sock
    unix  3      [ ]         STREAM     CONNECTED     124609611 @/containerd-shim/moby/a736ba153c07f0bbf099ae1a1069530e35bfa28ae93f8f235d6c35a6c5ed9ce7/shim.sock
    unix  3      [ ]         STREAM     CONNECTED     124601653 @/containerd-shim/moby/20d3fd59d03455d45b1da2636fca25d0edd79dac1947c17045a797eb8506157c/shim.sock
    

    netstat的输出结果可以分为两个部分

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

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

    列名解释:

    Proto:显示连接使用的协议。

    RefCnt:表示连接到本套接口上的进程号。

    Types:显示套接口的类型。

    State:显示套接口当前的状态。

    Path:表示连接到套接口的其它进程使用的路径名。

     

    三、netstat常见参数

    -a (all) 显示所有选项,默认不显示LISTEN相关。
    -t (tcp) 仅显示tcp相关选项。
    -u (udp) 仅显示udp相关选项。
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服务状态。

    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令。

    LISTEN和LISTENING的状态只有用-a或者-l才能看到。

     

    四、netstat网络状态详解

    一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手

    如图:

    SYN:(同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。

    ACK:(确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。

    FIN:(结束标志,FINish)用来结束一个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关闭连接。这导致它的TCP也发送一个 FIN,等待对方的ACK.就进入了LAST-ACK , The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 等待原来发向远程TCP的连接中断请求的确认。

    TIME_WAIT:在主动关闭端接收到FIN后,TCP就发送ACK包,并进入TIME-WAIT状态。 The socket is waiting after close to handle packets still in the network.等待足够的时间以确保远程TCP接收到连接中断请求的确认。

    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. 没有任何连接状态。

    TIME_WAIT状态的形成只发生在主动关闭连接的一方。
    主动关闭方在接收到被动关闭方的FIN请求后,发送成功给对方一个ACK后,将自己的状态由FIN_WAIT2修改为TIME_WAIT,而必须再等2倍 的MSL(Maximum Segment Lifetime,MSL是一个数据报在internetwork中能存在的时间)时间之后双方才能把状态 都改为CLOSED以关闭连接。目前RHEL里保持TIME_WAIT状态的时间为60秒。

    Linux的相关keepalive参数

    1、tcp_keepalive_time – INTEGER

    How often TCP sends out keepalive messages when keepalive is enabled.(Default: 2hours)

    一个连接需要TCP开始发送keepalive探测数据包之前的空闲时间,以秒为单位。

    2、tcp_keepalive_probes – INTEGER

    How many keepalive probes TCP sends out, until it decides that the connection is broken. (Default value: 9)

    发送TCP keepalive探测数据包的最大数量,默认是9.如果发送9个keepalive探测包后对端仍然没有响应,就关掉这个连接。

    3、tcp_keepalive_intvl – INTEGER

    How frequently the probes are send out. Multiplied by tcp_keepalive_probes it is time to kill not responding connection,
    after probes started. Default value: 75sec i.e. connection will be aborted after ~11 minutes of retries.

    发送两个TCP keepalive探测数据包的间隔时间,默认是75秒。

     

    五、常用netstat相关命令

    1、列出所有端口 #netstat -a

    2、列出所有 tcp 端口 #netstat -at

    3、列出所有 udp 端口 #netstat -au

    4、只显示监听端口 #netstat -l

    5、只列出所有监听 tcp 端口 #netstat -lt

    6、只列出所有监听 udp 端口 #netstat -lu

    7、列出所有监听 UNIX 端口 #netstat -lx

    8、显示所有端口的统计信息 #netstat -s

    9、显示 TCP 或 UDP 端口的统计信息 #netstat -st 或 -su

    10、 输出中显示 PID 和进程名称 #netstat -p

    11、netstat 输出中不显示主机,端口和用户名 (host, port or user)

    当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

    同样可以加速输出,因为不用进行比对查询。

    #netstat -an

    如果只是不想让这三个名称中的一个被显示,使用以下命令

    # netsat -a --numeric-ports
    # netsat -a --numeric-hosts
    # netsat -a --numeric-users

    12、持续输出 netstat 信息  #netstat -c

    13、找出程序运行的端口 #netstat  -ap | grep ':80'

    14、查看连接某服务端口最多的的IP地址(前20个)

    #netstat -nat | grep "10.1.62.23:443" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20

    15、TCP各种状态列表 

    #netstat -nat |awk '{print $6}'

    统计数量

    #netstat -nat |awk '{print $6}'|sort|uniq -c

    排序

    #netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

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

    16、直接统计tcp数量监听的数量

    #netstat -ant | wc -l

    参考文献:https://www.cnblogs.com/ggjucheng/p/2316661.html

    https://www.cnblogs.com/jackhub/p/3782598.html

    展开全文
  • netstat详解

    千次阅读 2019-05-20 12:06:12
    netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。 语法: netstat [选项] 参数: -a或--all:显示所有连线中的Socket; -A<...

    netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

    语法:

    netstat [选项]

    参数:

    -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"参数相同。

    使用实例

    实例1:列出所有端口

    命令:

    netstat -a      # 列出所有端口

    netstat -at     # 列出所有TCP端口

    netstat -au    # 列出所有UDP端口

    netstat -ax    # 列出所有unix端口

    netstat -atnlp    # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名

    输出: 

    说明:

    下面分析每一项的含义

    Proto:协议名(tcp协议还是udp协议);

    recv-Q:网络接收队列

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

    send-Q:网路发送队列

    对方没有收到的数据或者说没有Ack的,还是本地缓冲区.

    如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快;

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

    Local Address 解释

    1)Local Address 部分的0.0.0.0:873表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip),比如你的服务器是有172.172.230.210和

    172.172.230.11两个ip地址,那么0.0.0.0:873此时表示监听172.172.230.210,172.172.230.211,127.0.0.1三个地址的873端口

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

    3)192.168.1.81:2288这是因为我们在启动的时候指定了192.168.1.81:2288参数,如果不指定的话,会监听0.0.0.0:2288

    Foreign Address解释

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

    State解释

    链路状态,共有11种

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

    LISTEN :首先服务端需要打开一个socket进行监听,状态为LISTEN./*The socket is listening for incoming  connections. 侦听来自远方TCP端口的连接请求 */

    SYN_SENT:客户端通过应用程序调用connect进行activeopen.于是客户端tcp发送一个SYN以请求建立一个连接.之后状态SYN_SENT。/*The socket is actively attempting to establish aconnection. 在发送连接请求后等待匹配的连接请求 */

    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:主动关闭(activeclose)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态./* The socket is closed, and the connection is shutting down. 等待远程TCP的连接中断请求,或先前的连接中断请求的确认 */

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

    FIN_WAIT2:主动关闭端接到ACK后,就进入了FIN-WAIT-2./* Connection is closed, and the socket is waiting for a shutdownfrom the remote end. 从远程TCP等待连接中断请求 */

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

    TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态。/* Thesocket is waiting after close to handle packets still in the network.等待足够的时间以确保远程TCP接收到连接中断请求的确认*/

    CLOSING:比较少见./* Bothsockets are shut down but we still don’t have all our datasent. 等待远程TCP对连接中断的确认 */

    CLOSED:被动关闭端在接受到ACK包后,就进入了closed的状态。连接结束./*The socket is not being used. 没有任何连接状态 */

    UNKNOWN:未知的Socket状态。/* Thestate of the socket is unknown. */

    备注

    SYN: (同步序列编号,SynchronizeSequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。

    ACK: (确认编号,AcknowledgementNumber)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。

    FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。

     

    实例2:显示每个协议的统计信息

    命令:

    netstat -s     # 显示所有端口的统计信息

    netstat -st    # 显示所有TCP的统计信息

    netstat -su    # 显示所有UDP的统计信息

    实例3:显示核心路由信息

    命令:

    netstat -r     # 显示所有端口的统计信息

    netstat -rn    # 显示所有TCP的统计信息

    输出:

    说明:

    Destination:目标网络或者主机。

    Gateway:网关地址,如果没有设置则为*。

    Genmask:目标网络掩码;如果默认路由则用"0.0.0.0"。

    Flags标志说明:

    U Up表示此路由当前为启动状态

    H Host,表示此网关为一主机

    G Gateway,表示此网关为一路由器

    R Reinstate Route,使用动态路由重新初始化的路由

    D Dynamically,此路由是动态性地写入

    M Modified,此路由是由路由守护程序或导向器动态修改

    ! 表示此路由当前为关闭状态

    Iface:对于这个路由,数据包将要发送到那个接口(网卡)。

    观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • netstat输出内容详解

    万次阅读 多人点赞 2018-10-10 17:39:27
    netstat 输出内容详解 1.列出所有 tcp与udp 端口 netstat -tulnp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Progra...
  • 在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询 netstat命令各个参数说明如下: -a 或–all 显示所有连线中的Socket。 -A <...
  • netstat命令的作用

    千次阅读 2019-06-04 13:37:07
    netstat命令的作用 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 输出信息含义 从整体上看,...
  • netstat 的10个基本用法

    万次阅读 多人点赞 2018-06-19 16:46:42
    Netstat 简介Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有...
  • netstat -i和-s

    千次阅读 2019-03-15 08:50:56
    netstat -i和netstat -s平时感觉不是经常用到,有点陌生,学习一下。 netstat -i 打印网络接口信息 [root@localhost ~]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR ...
  • Linux中的netstat命令详解

    万次阅读 2017-03-08 17:24:20
    前面我们学习了网络的有关基础知识,今天我们来介绍一个Linux下面的关于网络的一个重要指令——netstat.功能说明netstat是基于Netstat这个命令行工具的指令,它可以用来查询系统上的网络套接字连接情况,包括tcp,udp...
  • 一、netstat解释 netstat命令(net statistics缩写的拼接)直译过来即是“网络统计”之意。为查看网络端口统计情况,查找应用程序所占端口情况而使用最常见的命令。监控TCP/IP网络的非常有用的工具,它可以显示...
  • netstat端口监听使用

    2020-06-01 22:46:24
    netstat 用于显示网络信息:网络连接、路由表、接口状态等; 常见命令如下: netstat -a 列出所有端口 (包括监听和未监听的) 列出tcp 端口 :netstat -at 列出udp 端口: netstat -au 列出所有处于监听状态的 ...
  • netstat

    2018-11-06 23:53:39
    在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。 Netstat是控制台命令,是一个监控TCP/IP网络的非常...
  • netstat命令输出结果分析

    万次阅读 2016-04-12 11:15:28
    netstat命令一般用来查看IP/Port占用情况,在网络程序员那里就可以用于检测数据发送/接收的端口是否正确。比如最近在做“视频实时传输”项目时就是用它发现问题的。所以有必要看懂netstat命令输出结果的含义,下面给...
  • netstat端口状态查看命令详解

    万次阅读 2016-06-16 12:45:28
    所以整理了一份详细的netstat命令详解。 一、netstat命令使用方法以及参数结束 NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval] 然后详细解释一下各个参数的含义 参数 参数...
  • Linux之netstat用法详解

    2018-06-14 22:22:14
    在linux一般使用netstat 来查看系统端口使用情况步。 netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的 netstat命令的功能是显示网络连接、路由表和...
  • netstat -ano 查看机器端口占用情况

    万次阅读 2013-12-24 09:42:58
    windows下dos命令窗口输入netstat -ano即可查看端口使用情况,如果要查看指定端口是否被占用可以使用命令netstat -ano|findstr 端口号,例如要查看8080端口号是否已经被占用就使用命令netstat -ano|findstr 8080 ...
  • Netstat命令详解(windows下)

    万次阅读 2016-02-28 10:29:07
    Netstat 用于显示与IP 、TCP 、UDP 和ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。   如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP 可以容许...
  • netstat工具源码剖析

    千次阅读 2018-03-23 19:58:51
    netstat工具源码剖析netstat是监控TCP/IP网络的工具,可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。...
  • ss和netstat的区别

    2020-07-11 13:17:14
    文章目录简介netstat参数和使用ss(socket statistics)参数和使用 简介 netstat和ss都是网络相关的监控,netstat在协议栈中每一层都可以做监控统计:TCP、路由表、网络接口、协议等,但是在Linux中,netstat已经不...
1 2 3 4 5 ... 20
收藏数 229,569
精华内容 91,827
关键字:

netstat