一、netstat命令简介
netstat是一个用于显示网络连接信息的命令行工具,它可以显示当前主机的网络连接、路由表、接口状态等信息。它可以帮助我们了解网络连接状态以及了解网络的性能问题
二、netstat命令参数
-a 显示所有连接状态 -t 仅显示TCP连接 -u 仅显示UDP连接 -n 显示IP地址和端口号,不进行域名解析 -p 显示应用程序名称和PID -r 显示路由表 -s 显示网络统计信息
三、查看当前主机的TCP连接状态
使用netstat命令查看当前主机的TCP连接状态,使用以下命令:
netstat -natp
参数说明:
-n:不进行域名解析
-a:显示所有连接状态
-t:只显示TCP连接
-p:显示应用程序名称和PID信息
通过该命令可得到一个如下所示的输出:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1142/cupsd tcp 0 0 192.168.1.100:22 192.168.1.234:53640 ESTABLISHED 1327/ssh tcp 0 0 192.168.1.100:22 192.168.1.234:53546 ESTABLISHED 1387/ssh tcp6 0 0 ::1:631 :::* LISTEN 1142/cupsd
输出中每一行对应一个连接,其中:
Proto:协议,如tcp、udp
Recv-Q:接收队列的长度
Send-Q:发送队列的长度
Local address:本地IP地址和端口号
Foreign address:远程IP地址和端口号
State:连接状态
PID/Program name:连接对应的进程ID和进程名
四、查看连接状态为LISTEN的TCP连接
使用netstat命令查看连接状态为LISTEN的TCP连接,使用以下命令:
netstat -natp |grep LISTEN
参数说明:
-n:不进行域名解析
-a:显示所有连接状态
-t:只显示TCP连接
-p:显示应用程序名称和PID信息
grep LISTEN:过滤出连接状态为LISTEN的连接
通过该命令可得到一个如下所示的输出:
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1142/cupsd tcp6 0 0 ::1:631 :::* LISTEN 1142/cupsd
输出中每一行对应一个连接,其中:
Proto:协议,如tcp、udp
Recv-Q:接收队列的长度
Send-Q:发送队列的长度
Local address:本地IP地址和端口号
Foreign address:远程IP地址和端口号
State:连接状态
PID/Program name:连接对应的进程ID和进程名
五、查看网络连接状态和连接数
使用netstat命令查看网络连接状态和连接数,使用以下命令:
netstat -s
参数说明:
-s:显示网络统计信息,包括TCP、UDP、IP等信息
通过该命令可得到一个如下所示的输出:
Ip: 5945415 total packets received 0 forwarded 0 incoming packets discarded 5945414 incoming packets delivered 5311657 requests sent out 7 dropped because of missing route Tcp: 219 active connections openings 0 passive connection openings 1 failed connection attempts 0 connection resets received 0 connections established 3455138 segments received 5312005 segments send out 146171 segments retransmited 0 bad segments received. 1 resets sent Udp: 74540 packets received 68 packets to unknown port received. 0 packet receive errors 74497 packets sent Raw: 0 received 0 sent
通过这个命令可以看到TCP、UDP、IP等的统计信息,如:
active connections openings:当前打开的连接数
passive connection openings:已经打开等待连接的连接数
failed connection attempts:连接失败的次数
segments received:接收的数据包数
segments sent out:发送的数据包数
segments retransmited:超时的重传数据包数
六、总结
通过使用netstat命令,我们可以方便地了解当前主机的网络连接状态,包括连接状态、IP地址、端口号,以及连接对应的进程信息,对于系统的排错、性能分析和网络管理都非常有帮助。