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

