linux 命令之 netstat

netstat命令的作用是显示IP、TCP、UDP和ICMP等协议相关的统计信息以及当前TCP/IP网络的连接状况。

netstat常用参数:

-a : 显示所有连线中的socket。
-c : 持续列出网络状态。
-e : 显示网络中的其他相关信息。
-g : 显示多重广播功能群组组员名单。
-h : 显示帮助信息。
-i : 显示指定网络接口信息的所有信息。
-l : 显示监控中的服务器socket。
-M : 显示伪装的网络连接。
-n : 直接使用IP地址,而不通过域名服务器。(以数字的方式显示域名)
-N : 显示网络硬件外围设备的负号链接名称。
-o : 显示计时器。
-p : 显示正在使用socket的程序识别码和程序名称。
-r : 显示内核路由表信息。
-s : 显示各个网络协议的统计信息。
-t : 显示TCP传输协议的连接状况。
-u : 显示UDP传输协议的连接状况。
-v : 显示命令的执行过程。
-V : 显示版本信息。
-w : 显示RAW传输协议的连接状况。
实例说明:
$ netstat | more
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        1      0 gino-virtual-mach:53480 mistletoe.canonica:http CLOSE_WAIT 
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  19     [ ]         DGRAM                    8229     /dev/log
unix  2      [ ]         STREAM     CONNECTED     16135    
unix  3      [ ]         STREAM     CONNECTED     15104    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     15103    
unix  3      [ ]         STREAM     CONNECTED     15041    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     15040    
unix  3      [ ]         STREAM     CONNECTED     15039    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     15038    
unix  3      [ ]         STREAM     CONNECTED     15032    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     15031    
unix  3      [ ]         STREAM     CONNECTED     15029    @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     15028    
unix  3      [ ]         STREAM     CONNECTED     15907    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     15027    
unix  3      [ ]         STREAM     CONNECTED     14700    /home/gino/.pulse/37d4c46e1e7da45a62e08f6500000005-runtime/native
unix  3      [ ]         STREAM     CONNECTED     14699    
unix  3      [ ]         STREAM     CONNECTED     14660    
unix  3      [ ]         STREAM     CONNECTED     14659    
unix  3      [ ]         STREAM     CONNECTED     14656    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     14655    
unix  3      [ ]         STREAM     CONNECTED     14654    @/tmp/.ICE-unix/1905
unix  3      [ ]         STREAM     CONNECTED     14653    
unix  3      [ ]         STREAM     CONNECTED     14652    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     14651    
unix  3      [ ]         STREAM     CONNECTED     14650    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     14649    
unix  3      [ ]         STREAM     CONNECTED     14082    @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     14081    
unix  3      [ ]         STREAM     CONNECTED     14648    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     14078    
unix  3      [ ]         STREAM     CONNECTED     14039    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     14597    
unix  3      [ ]         STREAM     CONNECTED     14555    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     14554    
unix  3      [ ]         STREAM     CONNECTED     14552    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     14551    
unix  3      [ ]         STREAM     CONNECTED     14007    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     14006    
unix  3      [ ]         STREAM     CONNECTED     14550    @/tmp/dbus-3NPVW2eGgt
unix  3      [ ]         STREAM     CONNECTED     14549    
unix  3      [ ]         STREAM     CONNECTED     14004    @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     14003    
unix  3      [ ]         STREAM     CONNECTED     13939    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     14474    
--More--
以上输出结果可以看出,netstat的输出结果可以分为两个部分:一部分称为有源TCP 连接或、有源UDP 连接的Active Internet connections,该部分显示TCP | UDP连接情况。另一部分称为有源UNIX域套接字的Active Internet connections,这部分显示UNIX域套接口的连接情况。 注意:Proto 表示连接使用的协议;RefCnt  表示连接到本套接口上的进程号;Type表示套接口的类型;State表示套接口当前的状态;Path表示连接到套接口的其他进程所使用的路径名。

$ 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      2485      0      0 0          1258      0      0      0 BMRU
lo        16436 0       106      0      0 0           106      0      0      0 LRU
Iface表示设备;MTU表示设备最大传输单元;Met表示设备度量值;RX-OK表示接收了多少包;RX-ERR表示接收错误的包;RX-DRP表示接收丢弃的包;RX-OVR表示误差遗失的包。Flg表示接口标记:
B	已经设置了一个广播地址
L	该接口是一个回送设备
M	接收所有数据包(混乱模式)
N	避免跟踪,并在该接口上禁用ARP
P	点到点链接
R	接口正在运行
U	接口处于“活动”状态


$ netstat -ta  ##查看本机TCP传输协议的连接状况
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:netbios-ssn           *:*                     LISTEN     
tcp        0      0 *:sunrpc                *:*                     LISTEN     
tcp        0      0 *:41620                 *:*                     LISTEN     
tcp        0      0 localhost:domain        *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 *:38168                 *:*                     LISTEN     
tcp        0      0 *:35770                 *:*                     LISTEN     
tcp        0      0 *:51770                 *:*                     LISTEN     
tcp        0      0 *:microsoft-ds          *:*                     LISTEN     
tcp        0      0 *:nfs                   *:*                     LISTEN     
tcp        0      0 *:60965                 *:*                     LISTEN     
tcp        1      0 gino-virtual-mach:53480 mistletoe.canonica:http CLOSE_WAIT 
tcp6       0      0 [::]:59819              [::]:*                  LISTEN     
tcp6       0      0 [::]:netbios-ssn        [::]:*                  LISTEN     
tcp6       0      0 [::]:41391              [::]:*                  LISTEN     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:50392              [::]:*                  LISTEN     
tcp6       0      0 [::]:microsoft-ds       [::]:*                  LISTEN     
tcp6       0      0 [::]:52703              [::]:*                  LISTEN     
tcp6       0      0 [::]:43233              [::]:*                  LISTEN     
tcp6       0      0 [::]:nfs                [::]:*                  LISTEN   
利用-a参数,netstat显示出所有的套接字。另外还可以根据端口号,判断出一条连接是否是外部连接。对于呼叫方主机来说,列出的端口号应该一直是一个整数,而对于服务端口正在使用中的被呼叫方来说,netstat采用的则是取自/etc/services  文件的象征性服务名。
Proto 				通信协议
Recv-Q				接收队列中的数据量
Send-Q				发送队列中的数据量
Local Address			本地主机名和端口号
Foreign Address			远程主机名和端口号
State				通信状态。LISTEN表示处于侦听状态
$ netstat -nr   ##查看本机内核路由表信息
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
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
Destination 显示的是目标主机/网络的IP地址;Gateway 显示的是路由条目所指的网关。Genmask显示的是理由的相关描述,在为具体的IP地址找出最适当的路由时,内核将查看路由表内的所有条目,再对找到的路由与目标木有比较之前,将IP地址和Genmask进行按位 “与” 计算。 Flags显示了不同的标记,这些标记的说明如下: 
G	采用网关的路由
U	准备使用的接口处于 “活动” 状态
H	通过该路由,只能抵达一台主机
D	路由表的条目是由ICMP重定向消息生成的
M	路由表条目已被ICMP重定向消息修改

$ netstat -es  ##显示以太网网络接口的统计信息和所有协议的统计信息
Ip:
    2758 total packets received
    2 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    2756 incoming packets delivered
    1455 requests sent out
Icmp:
    1 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        echo requests: 1
    1 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        echo replies: 1
IcmpMsg:
        InType8: 1
        OutType0: 1
Tcp:
    9 active connections openings
    0 passive connection openings
    0 failed connection attempts
    0 connection resets received
    0 connections established
    2216 segments received
    1029 segments send out
    18 segments retransmited
    0 bad segments received.
    0 resets sent
Udp:
    498 packets received
    0 packets to unknown port received.
    0 packet receive errors
    336 packets sent
UdpLite:
TcpExt:
    2 TCP sockets finished time wait in fast timer
    6 delayed acks sent
    2029 packet headers predicted
    16 acknowledgments not containing data payload received
    3 predicted acknowledgments
    3 other TCP timeouts
    3 connections aborted due to timeout
IpExt:
    InMcastPkts: 111
    OutMcastPkts: 109
    InBcastPkts: 176
    OutBcastPkts: 74
    InOctets: 3211167
    OutOctets: 97155
    InMcastOctets: 8136
    OutMcastOctets: 8046
    InBcastOctets: 21885
    OutBcastOctets: 9406
执行结果表明,对于以太网网络接口 eth0 的不同层次和类型的网络协议分别进行了统计。这些协议包括 IP、ICMP、ICMPMSG、TCP、UDP、UDPLITE、TCPEXT、IPEXT。对于IP层的数据包,则会统计显示接收到的总数据包、转送的数据包数、丢弃的数据包数、收到后再传送的数据包数和发出请求的次数等信息。











你可能感兴趣的:(linux命令)