netstat的使用

netstat查询机器使用、监听的端口的具体情况 。

netstat查看linux服务器网络连接状态 维护linux服务器时,要经常查看服务器的网络连接状态,netstat是一个非常优秀的工具,通过netstat可以显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。

netstat -[rn] <==与路由有关的参数

netstat -[antulpc] <==与网路介面有关的参数参数: 与路由 (route)

有关的参数说明:

-r :列出路由表(route table),功能如同 route 这个指令;

-n :不使用主机名称与服务名称,使用 IP 与 port number ,如同 route

-n 与网路介面有关的参数: -a :列出所有的连线状态,一般有监听、已经建立的连接等,详见下表的状态说明 ,默认只显示已经连接的端口号。

-t :仅列出 TCP 封包的连线;

-u :仅列出 UDP 封包的连线;

-l :仅列出有在 Listen (监听) 的服务之网路状态;

-p :列出 PID 与 Program 的档名,与该端口使用相关的程序以及其pid 。

-c :可以设定几秒钟后自动更新一次,例如 -c 5 每五秒更新一次网路状态的显示;

-v :显示正在进行的工作。

下面这个语句是一个非常好的查看TCP连接状态的语句:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

返回结果示例:

LAST_ACK 5 SYN_RECV 30 ESTABLISHED 1597 FIN_WAIT1 51 FIN_WAIT2 504 TIME_WAIT 1057

以下是各种状态的描述

CLOSED:无连接是活动的或正在进行

ESTABLISED:已建立连线的状态;

SYN_SENT:发出主动连线 (SYN 标志) 的连线封包;

SYN_RECV:接收到一个要求连线的主动连线封包;

FIN_WAIT1:该插槽服务(socket)已中断,该连线正在断线当中;

FIN_WAIT2:该连线已挂断,但正在等待对方主机回应断线确认的封包;

TIME_WAIT:该连线已挂断,但 socket 还在网路上等待结束;

LISTEN:通常用在服务的监听 port !可使用『 -l 』参数查阅。

CLOSING:两边同时尝试关闭

TIME_WAIT:另一边已初始化一个释放

LAST_ACK:等待所有分组死掉

原文地址:https://www.cnblogs.com/serendipity/p/2148988.html