我有一个网络服务器,我需要检查当时服务器上的连接数,
我用过
netstat -anp |grep 80 |wc -l
这返回了
2542
但从我的谷歌分析中我知道同时在线的用户数不超过 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 ?
答案1
尝试仅计算已建立的连接数:
netstat -anp | grep :80 | grep ESTABLISHED | wc -l
另外,请注意不要在 port grep 语句中使用冒号。如果只查找 80,则 pid 和其他端口的输出中恰好包含字符 80,可能会导致错误结果。
答案2
ss -tn src :80 or src :443
这将显示到本地端口 80 或 443 的所有连接(如果需要,添加/修改端口)。
免责声明:我意识到这是一个老问题,但它仍然是谷歌的最佳结果,所以我认为它值得利用现代实用程序来回答。
答案3
服用@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
希望这对您有所帮助,如您对上述内容有任何详细说明和/或评论,请提出。
干杯,
哥们。