一、netstat概述
netstat是一款非常常见的用于查看网络连接状态的命令行工具,它可以显示各种网络相关信息,包括路由表、网络接口状态、连接状态等等。在Linux系统中,netstat是一个非常常用的命令之一。
二、使用netstat查看TCP连接状态
1. 查看所有TCP连接状态
$ netstat -nat
上面的命令中,-n表示不域名解析,-a表示显示所有连接状态,-t表示只显示TCP连接状态。
输出结果包括本地地址、远程地址、状态等信息,如下所示:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp 0 448 10.10.10.10:22 123.123.123.123:12345 ESTABLISHED tcp6 0 0 :::80 :::* LISTEN
2. 查看指定端口的TCP连接状态
$ netstat -nat | grep 'LISTEN\|ESTABLISHED' | grep ':80'
上面的命令表示查看所有80端口的TCP连接状态。
三、使用netstat查看UDP连接状态
1. 查看所有UDP连接状态
$ netstat -nau
上面的命令中,-n表示不域名解析,-a表示显示所有连接状态,-u表示只显示UDP连接状态。
输出结果包括本地地址、远程地址、状态等信息,如下所示:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:123 0.0.0.0:* udp 0 0 10.10.10.10:123 0.0.0.0:* udp6 0 0 :::123 :::*
2. 查看指定端口的UDP连接状态
$ netstat -nau | grep ':53\s'
上面的命令表示查看所有53端口的UDP连接状态。
四、使用netstat查看路由表
1. 查看IP路由表
$ netstat -rn
输出结果包括目标地址、网关、掩码、接口名等信息,如下所示:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0 10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
2. 查看接口状态
$ netstat -i
输出结果包括接口名、MTU、MAC地址、IP地址等信息,如下所示:
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 1547 0 0 0 396 0 1058 0 BMRU lo 16436 0 1643 0 0 0 1643 0 0 0 LRU
五、总结
netstat是一款非常强大的网络调试工具,在Linux运维中经常被用来查看TCP和UDP连接状态以及路由表等信息。通过本篇文章的介绍,相信大家对netstat的使用已经有了一定的掌握。当然,除了本文介绍的内容以外,netstat还有很多其他的用法,感兴趣的同学可以继续深入了解。