我有一个包含视频内容(mp4 文件)的网站。
当人们观看视频时,他们会从我的网站下载视频文件。我想通过 Linux 终端了解活动连接的数量。它们可能是端口 80 上的 TCP 数据包。
然而:
$ netstat -an |grep :80 | wc -l
给出一个巨大的数字,~6-7k。我认为这不正确?
答案1
netstat
在 Linux 上已经过时并且被ss
您应该使用的替代。
类似这样的事情应该会给你你想要的东西:
$ ss -H state established '( sport = :https )' | wc -l
21
这将选择端口 443 上当前建立的连接,即连接到远程主机的连接,但不包括正在关闭的连接。
答案2
netstat -an
将为您提供活动连接以及其他所有内容。这包括侦听端口等。
如果您只能使用 netstat,您应该能够使用以下命令计算出已建立的连接数:
netstat -an | grep -w "<listening ip>:80" | grep ESTABLISHED | wc -l
这有点像黑客攻击,但只需计算进入你的监听 ip(端口 80)的已建立连接的数量即可。
如果您可以安装 ss,或者已经安装了它:
ss -nt dst <ip webserver is listening on>:80 | wc -l
以上内容应该会为您提供在端口 80 上以您的监听 IP 地址为目的地的所有连接的数量。
如果您正在寻找唯一的连接,您甚至可以通过使用“sort”然后“uniq -c”(前面是“wc -l”)来进一步缩小范围,以获得唯一连接的数量。
ss 非常有用:https://linux.die.net/man/8/ss