检查端口80上活动连接的数量?


27

我有一个网络服务器,我需要在给定的时间检查服务器中的连接数,

我用以下

netstat -anp |grep 80 |wc -l

这与

2542

但是从我的Google Analytics(分析)中,我知道同时用户不超过100。

is this correct ? 
if not how to i get the active number of connections ? 
is this sign of a victim of DOS attack how do i know that ?

使用,ss您可以更快地过滤端口和状态:ss -nt dport == :80 and state connected
eckes

连接数不是用户数。每个用户浏览器可以同时打开多个连接。相反,虽然很少见,但使用同一代理的多个用户只能通过一个连接出现。
Patrick Mevzek '17

Answers:


50

尝试仅计算已建立的连接:

netstat -anp | grep :80 | grep ESTABLISHED | wc -l

另外,请注意不要在port grep语句中使用冒号。仅查找80可能会导致PID和其他端口的输出结果错误,而pid和其他端口恰好有字符80。


5
grep -w 80解决了这个问题,并消除了类似的问题8093
迈克尔·汉普顿

1
是的,您是对的:80也可能会引入误报。
d34dh0r53,2012年

@MichaelHampton grep -w 80和:80也会计算传出的HTTP连接(如果有)。netstat -ntp | awk'{print $ 4}'| grep -w80。是的,我太在乎bikeshed的颜色了:) :)。

这一个是律改善.. 的netstat -an | grep -w 80 | grep -i建立| awk {'print $ 5'} | 切-d:-f1 | 排序| uniq -c | 排序-n
user169015

2

使@ d34dh0r53回答“更进一步”(朝着具有“更广泛”的观点的答案)迈出一步,您还可以使用以下方法检查根据其状态排序的所有连接:

netstat -ant | grep :<port_num> | awk '{print $6}' | sort | uniq -c | sort -n

例如:

netstat -ant | grep :8000 | awk '{print $6}' | sort | uniq -c | sort -n

可能的输出可能是:

1 CLOSING
1 established
1 FIN_WAIT2
1 Foreign
2 CLOSE_WAIT
6 FIN_WAIT1
7 LAST_ACK
7 SYN_RECV
37 ESTABLISHED
44 LISTEN
297 TIME_WAIT

希望能对您有所帮助,请提出您对上述内容的详细说明和/或评论。

干杯,

伙计


1

您可以简单地将IP地址放在其中,而不必担心将多个垃圾,sed和awks串在一起。

netstat -anp | grep -c $(hostname -i):80

使用$(hostname -i)将允许在任何盒子,静态/动态IP等上使用此命令。


0
ss -tn src :80 or src :443

这将显示到本地端口80或443的所有连接(如果需要,添加/修改端口)。

免责声明:我知道这是一个古老的问题,但它仍然是Google的最高结果,因此我认为使用现代实用程序应该得到答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.