1.3.2 查看Linux服务器的网络连接(2)
3.netstat
netstat命令的功能是显示网络连接、路由表和网络接口的信息,可以让用户得知目前都有哪些网络连接正在运作。
下面是它的重要参数,以及详细的说明文字。
-A:显示任何关联的协议控制块的地址。主要用于调试。
-a:显示所有套接字的状态。在一般情况下不显示与服务器进程相关联的套接字。
-i:显示自动配置接口的状态。那些在系统初始引导后配置的接口状态不在输出之列。
-m:打印网络存储器的使用情况。
-n:打印实际地址,而不是对地址的解释或显示主机、网络名之类的符号。
-r:打印路由选择表。
-f address:family会对于给出名字的地址簇打印统计数字和控制块信息。到目前为止,它***支持的地址簇是inet。
-I interface:表示只打印给出名字的接口状态。
-p protocol-name:表示只打印给出名字的协议的统计数字和协议控制块信息。
-s:打印每个协议的统计数字。
-t:表示在输出显示中用时间信息代替队列长度信息。
我们用得最多的也最习惯的有两个参数,即netstat -an,如下所示:[root@localhost ~]# netstat -an| grep -v unix
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign AddressState
tcp0 0 127.0.0.1:22080.0.0.0:*LISTEN
tcp0 0 0.0.0.0:7400.0.0.0:*LISTEN
tcp0 0 0.0.0.0:33060.0.0.0:*LISTEN
tcp0 0 0.0.0.0:1110.0.0.0:*LISTEN
tcp0 0 0.0.0.0:800.0.0.0:*LISTEN
tcp0 0 127.0.0.1:6310.0.0.0:*LISTEN
tcp0 0 127.0.0.1:250.0.0.0:*LISTEN
tcp0 0 127.0.0.1:60100.0.0.0:*LISTEN
tcp0 0 127.0.0.1:22070.0.0.0:*LISTEN
tcp0 0 203.93.236.146:80117.34.91.54:4991TIME_WAIT
tcp0 0 203.93.236.146:80117.34.91.54:1066TIME_WAIT
tcp0 0 203.93.236.146:80117.34.91.54:3067TIME_WAIT
tcp0 0 ::ffff:127.0.0.1:8005:::*LISTEN
tcp0 0 :::8009:::*LISTEN
tcp0 0 :::8080:::*LISTEN
tcp0 0 :::22:::*LISTEN
tcp0 0 ::1:6010:::*LISTEN
tcp1 0 ::ffff:203.93.236.146:41844::ffff:203.93.236.146:3306CLOSE_WAIT
tcp1 0 ::ffff:203.93.236.146:42287::ffff:203.93.236.146:3306CLOSE_WAIT
tcp1 0 ::ffff:203.93.236.146:42289::ffff:203.93.236.146:3306CLOSE_WAIT
tcp0 52 ::ffff:203.93.236.146:22::ffff:220.249.72.138:23527ESTABLISHED
udp0 0 0.0.0.0:581530.0.0.0:*
udp0 0 0.0.0.0:7340.0.0.0:*
udp0 0 0.0.0.0:7370.0.0.0:*
udp0 0 0.0.0.0:53530.0.0.0:*
udp0 0 0.0.0.0:1110.0.0.0:*
udp0 0 0.0.0.0:6310.0.0.0:*
udp0 0 :::33835:::*
udp0 0 :::5353:::*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Pathnetstat -an
参数中state的含义如下所示。
LISTEN:侦听来自远方的TCP端口的连接请求。
SYN-SENT:在发送连接请求后等待匹配的连接请求。
SYN-RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认。
ESTABLISHED:代表一个打开的连接,我们常用此作为并发连接数。
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认。
FIN-WAIT-2:从远程TCP等待连接中断请求。
CLOSE-WAIT:等待从本地用户发来的连接中断请求。
CLOSING:等待远程TCP对连接中断的确认。
LAST-ACK:等待原来发向远程TCP的连接中断请求的确认。
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认。
CLOSED:没有任何连接状态。
这里跟大家介绍一个我们经常在工作中用到的shell命令组合,它是用来查看服务器网络连接状态并汇总的,命令如下:[root@localhost ~]# netstat -an| awk '/^tcp/ {++S[$NF]}
END {for(a in S) print a, S[a]}'
TIME_WAIT 21
ESTABLISHED 185
LISTEN 9
参数说明:
CLOSED:没有连接是活动的或正在进行的。
LISTEN:服务器在等待进入呼叫。
SYN_RECV:一个连接请求已经到达,等待确认。
SYN_SENT:应用已经开始,打开一个连接。
【责任编辑:云霞 TEL:(010)68476606】
点赞 0