Linux命令之netstat

/ NetworkCommand / 没有评论 / 774浏览

netstat作用

netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况

参数

-a或--all:显示所有连线中的Socket;

-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;

-c或--continuous:持续列出网络状态;

-C或--cache:显示路由器配置的快取信息;

-e或--extend:显示网络其他相关信息;

-F或--fib:显示FIB;

-g或--groups:显示多重广播功能群组组员名单;

-h或--help:在线帮助;

-i或--interfaces:显示网络界面信息表单;

-l或--listening:显示监控中的服务器的Socket;

-M或--masquerade:显示伪装的网络连线;

-n或--numeric:直接使用ip地址,而不通过域名服务器;

-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;

-o或--timers:显示计时器;

-p或--programs:显示正在使用Socket的程序识别码和程序名称;

-r或--route:显示Routing Table;

-s或--statistice:显示网络工作信息统计表;

-t或--tcp:显示TCP传输协议的连线状况;

-u或--udp:显示UDP传输协议的连线状况;

-v或--verbose:显示指令执行过程;

-V或--version:显示版本信息;

-w或--raw:显示RAW传输协议的连线状况;

-x或--unix:此参数的效果和指定"-A unix"参数相同;

--ip或--inet:此参数的效果和指定"-A inet"参数相同。

查看ip连接情况

netstat -lntup

显示监控中的服务器的Socket 直接使用ip地址 显示TCP传输协议的连线状况 显示UDP传输协议的连线状况 显示正在使用Socket的程序识别码和程序名称

netstat -r

显示核心路由信息

netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr

查看连接web服务端口最多的的IP地址(端口为80)

root@front:~# netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
5 	 124.165.227.299
3 	 172.18.252.199
2 	 117.136.86.99
2 	 100.100.25.399
1 	 61.150.84.99
1 	 59.41.244.99
1 	 36.43.176.999
1 	 202.100.34.999
1 	 172.18.252.199
1 	 171.88.55.99
1 	 113.200.204.199
1 	 113.138.98.199
1 	 113.138.96.199
1 	 110.251.68.186
1 	 106.11.68.999
1 	 101.226.226.999

查看目前tcp连接状态

netstat -an|awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}'
root@front:~# netstat -an|awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}'
FIN_WAIT2 49
LISTEN 8
CLOSE_WAIT 2
TIME_WAIT 38
ESTABLISHED 519
LAST_ACK 4
FIN_WAIT1 6
参数说明:
CLOSED:没有连接活动或正在进行的;
LISTEN:服务器正在等待的进入呼叫;
SYN_RECV:一个连接请求已经到达,等待确认;
SYN_SENT:应用已经开始,打开一个连接;
ESTABLISHED:正常数据传输状态,也可以近似的理解为当前服务器的并发数;
FIN_WAIT1:应用已经完成;
FIN_WAIT2:另一边同意释放;
ITMED_WAIT:等待所有分组死掉;
CLOSING:两边同时尝试关闭;
TIME_WAIT:另一边已初始化一个释放;
LAST_ACK:等待所有分组死掉;