1.使用
netstat -[rn]
netstat -[antulpc]
2.参数
1)与路由有关
-r:列出路由表,功能如同route这个命令
-n:不使用主机名与服务名称,使用IP与port number,如同route -n
2)与网络接口有关
-a:列出所有的连接状态,包括tcp,udp,unix socket等;
-t:仅列出tcp的连接;
-u:仅列出udp的连接;
-l:仅列出已经在listening(监听)的服务的网络状态;
-p:列出PID与program的文件名;
-c:后跟数字,表示每隔几秒更新一次;
3.输出
TCP/IP的网络接口部分和传统的Unix socket部分
Proto:该连接的数据包协议,主要为TCP/UDP等数据包;
Recv-Q:由非用户程序连接所复制而来的总bytes数;
Send-Q:由远程主机发送而来,但不具有ACK标志的总bytes数,也指主动连接SYN或其他标志的数据包所占的bytes数;
Local Address:本地端的地址,可以是IP(-n时),也可以是主机名;
Foreign Address:远程主机IP与port number;
stat:状态栏,主要有:
ESTABLISHED:已建立连接的状态;
SYN_SENT:发出主动连接(SYN标志)的数据包;
SYN_RECV:接收到一个要求连接的主动连接数据包;
FIN_WAIT1:该套接字服务(socket)已中断,该连接正在断线中;
FIN_WAIT2:该连接已挂断,但正在等待对方主机响应断线确认的数据包;
TIME_WAIT:该连接已挂断,但socket还在网络上等待结束;
LISTEN:通常在监听port,可使用-l查阅;
4.可配合awk统计连接数
netstat -n | awk '/^tcp/{++state[$NF]} END{for (i in state) print i "\t"state[i]}'