netstat查看linux服务器网络连接状态

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

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

与路由 (route) 有关的参数说明:
-r :列出路由表(route table),功能如同 route 这个指令;
-n :不使用主机名称与服务名称,使用 IP 与 port number ,如同 route -n
与网路介面有关的参数:
-a :列出所有的连线状态,包括 tcp/udp/unix socket 等;
-t :仅列出 TCP 封包的连线;
-u :仅列出 UDP 封包的连线;
-l :仅列出有在 Listen (监听) 的服务之网路状态;
-p :列出 PID 与 Program 的档名;

-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:等待所有分组死掉

上一篇: 硬盘速度慢,最大读取只有3M/S   下一篇: 最小化权限的ssh账号-只能使用TCP转发

提交疑问

回顶部