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

mah*_*n3d 40 linux apache-2.2

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

我使用了以下

netstat -anp |grep 80 |wc -l
Run Code Online (Sandbox Code Playgroud)

这返回了

2542
Run Code Online (Sandbox Code Playgroud)

但从我的谷歌分析我知道同时用户不超过 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 ?
Run Code Online (Sandbox Code Playgroud)

小智 66

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

netstat -anp | grep :80 | grep ESTABLISHED | wc -l
Run Code Online (Sandbox Code Playgroud)

另外,请注意不要在 port grep 语句中使用冒号。仅查找 80 可能会导致 pid 和其他端口的错误结果,这些端口碰巧在其输出中包含字符 80。

  • `grep -w 80` 解决了这个问题,并消除了像 `8093` 这样的东西。 (6认同)

Isk*_*ren 6

ss -tn src :80 or src :443
Run Code Online (Sandbox Code Playgroud)

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

免责声明:我意识到这是一个古老的问题,但它仍然是 Google 的最佳结果,所以我认为它值得利用现代实用程序来回答。


Guy*_*ham 5

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

netstat -ant | grep :<port_num> | awk '{print $6}' | sort | uniq -c | sort -n
Run Code Online (Sandbox Code Playgroud)

例如:

netstat -ant | grep :8000 | awk '{print $6}' | sort | uniq -c | sort -n
Run Code Online (Sandbox Code Playgroud)

可能的输出可能是:

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
Run Code Online (Sandbox Code Playgroud)

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

干杯,

伙计。