Netstat命令示例及其用法
Netstat简介
假设有一种情况,我们想了解有关所有网络连接(传入或者传出)的详细信息。
它是一个实用程序,默认情况下,我们通常会在基于UNIX的计算机中找到它。
如果有效使用,它的功能非常强大。
Netstat会比其他任何工具更详细地告诉我们所有连接统计信息。
Netstat将向我们显示当前的实时网络活动。
Netstat也可以用于在我们通常通过运行“ route”命令获得的linux机器中显示路由表。
让我们看看使用netstat可以执行的所有技巧和技术,以向我们展示linux机器中的网络统计信息。
1.使用netstat显示路由表:
通常我们都使用route命令来显示我们的linux机器的路由表。
让我们看看如何使用netstat显示内核路由表
[root@myvm1 ~]# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eth0 [root@myvm1 ~]#
在上面的示例中,我们使用了“ n”和“ r”选项,我将解释它们是什么。
r =显然用于路由列表。
n =使用此选项将避免DNS查找(仅显示ip)
前三列是自我说明。
第四列显示用于与该网络通信的接口是否通过“ U”打开。
G代表使用网关。
第五列显示了MSS。
现在什么是MSS?
因此,有了一些联网。
MSS代表最大段大小。
通常,我们不需要担心MSS的价值,因为内核自己(基于NIC卡和其他网络因素)自行处理了所有这些工作。
将在另一篇文章中详细发布MSS,因为我们在这里讨论的是netstat而不是MSS !!!!
现在,第六列还是基于网络的列,它显示了窗口大小。
.将保留单独的窗口大小。
不好意思说,但是第七专列也是网络专列!! irtt代表初始往返时间。
其余一列代表界面。
2.让我们看看如何从Netstat检查界面详细信息
[root@myvm1 ~]# 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 815837 0 0 0 514080 0 0 0 BMRU lo 16436 0 548 0 0 0 548 0 0 0 LRU [root@myvm1 ~]#
上图显示了通过netstat命令的接口详细信息。
MTU和Met列显示最大透射率(MSS位于内部,MTU)。
Rx和Tx列显示已传输和已接收的数据包,无错误显示为(Rx-OK,Tx-OK)。
和errerfull显示为(Rx-ERR,Tx-ERR)
默认情况下,只需键入netstat即可为我们提供许多我们从未要求的信息。
但是主要的工作是从大量信息中隔离出需求。
这里有正确的linux技能。
3.查看使用Netstat打开哪些TCp端口
要查看计算机中打开了哪些tcp端口,可以将以下选项与netstat一起使用。
--tcp或者-t用于显示tcp连接。
--listening或者-l将显示所有监听端口
--programs或者-p将显示打开该端口的程序的PID详细信息
[root@myvm1 ~]# netstat --tcp --listening --programs -n Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:679 0.0.0.0:* LISTEN 3889/rpc.statd tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4291/mysqld tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3859/portmap tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3178/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4350/sendmail: acce tcp 0 0 :::80 :::* LISTEN 354/httpd tcp 0 0 :::22 :::* LISTEN 4152/sshd
当希望通过netstat查看所有协议(如tcp,udp,icmp等)的概述时,使用-s可能是一个有趣的选项。
-s选项的示例输出如下所示:
[root@myvm1 ~]# netstat -s Ip: 781419 total packets received 162 with invalid addresses 0 forwarded 0 incoming packets discarded 781257 incoming packets delivered 512934 requests sent out 1 dropped because of missing route Icmp: 50 ICMP messages received 0 input ICMP message failed. ICMP input histogram: destination unreachable: 10 timeout in transit: 3 echo requests: 13 echo replies: 24 53 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 11 echo request: 29 echo replies: 13 IcmpMsg: InType0: 24 InType3: 10 InType8: 13 InType11: 3 OutType0: 13 OutType3: 11 OutType8: 29 Tcp: 812 active connections openings 12384 passive connection openings 5 failed connection attempts 81 connection resets received 1 connections established 761204 segments received 509528 segments send out 163 segments retransmited 0 bad segments received. 5 resets sent Udp: 2885 packets received 11 packets to unknown port received. 0 packet receive errors 3143 packets sent TcpExt: 1 invalid SYN cookies received 6812 TCP sockets finished time wait in fast timer 4708 delayed acks sent 1001 delayed acks further delayed because of locked socket Quick ack mode was activated 31 times 7580 packets directly queued to recvmsg prequeue. 297993 packets directly received from backlog 7694595 packets directly received from prequeue 509783 packets header predicted 7728 packets header predicted and directly queued to user 67857 acknowledgments not containing data received 137274 predicted acknowledgments TCPDSACKUndo: 28 76 congestion windows recovered after partial ack 0 TCP data loss events 42 retransmits in slow start 113 other TCP timeouts 22 DSACKs sent for old packets 133 DSACKs received 6 connections reset due to early user close 10 connections aborted due to timeout IpExt: InMcastPkts: 985 OutMcastPkts: 609 InBcastPkts: 17106 OutBcastPkts: 6 [root@myvm1 ~]#
5.使用netstat持续监控所有流量,并持续活跃。
我们可以通过在netstat中使用-c选项来主动监视流量和连接。
将-c选项与所有前面提到的命令一起使用对于获取网络信息非常有用。
6.使用netstat查看ifconfig之类的信息:
如前所述,通过使用-i选项,我们可以从netstat获取接口统计信息。
与-i方法一起使用-e选项将改善输出,或者多或者少类似于接口的ifconfig输出。
请参阅下面的示例输出:
[root@myvm1 ~]# netstat -ie Kernel Interface table eth0 Link encap:Ethernet HWaddr 00:0C:29:93:A0:52 inet addr:192.168.159.128 Bcast:192.168.159.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe93:a052/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:816092 errors:0 dropped:0 overruns:0 frame:0 TX packets:514402 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:472160755 (450.2 MiB) TX bytes:223864906 (213.4 MiB) Interrupt:75 Base address:0x2024 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:16436 Metric:1 RX packets:548 errors:0 dropped:0 overruns:0 frame:0 TX packets:548 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:100017 (97.6 KiB) TX bytes:100017 (97.6 KiB) [root@myvm1 ~]#
7,查找ips建立的连接数
假设我们要查找ip地址建立的连接数。
我们可以使用以下命令找出答案。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n