您的位置:

了解网络连接状态?用netstat命令实现

一、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地址、端口号,以及连接对应的进程信息,对于系统的排错、性能分析和网络管理都非常有帮助。