有没有一种方法可以监视我的服务器传输了多少字节?

时间:2019-01-31 17:52:20

标签: php tor

因此最近我看到了一个网站:https://0day.rocks/,其中有一段文字说明该服务器是Tor节点。但是在此之下是自上次重置以来服务器已传输的字节数(TB)。我已经在其他网站上看到过类似的事情,但是我对如何在php中做到这一点非常感兴趣(如果可能的话)。只是说我不是要您为我编写代码,我只是想让某人告诉我阅读什么或从哪里开始等。

2 个答案:

答案 0 :(得分:0)

就像评论中讨论的那样,您并不是严格地寻找php解决方案,因此,我建议在Web服务器级别记录传入和传出的流量。

例如,

Apache已经具备了这种能力。只需启用mod_status(https://httpd.apache.org/docs/2.4/mod/mod_status.html),它可以提供以下信息:

  • 每个工作程序[...]的状态以及该工作程序服务的字节总数
  • 服务的访问总数和字节数
  • 平均给出每秒的请求数,每秒服务的字节数以及每个请求的平均字节数

似乎也可以从apache访问日志中获取字节。看到这个:https://serverfault.com/questions/14613/how-can-i-see-how-much-bandwidth-each-apache-virtual-host-is-using

NGINX,Tomcat等其他Web服务器应具有类似的功能。

答案 1 :(得分:0)

在Linux上,很容易查询接口统计信息,该统计信息将统计传输的所有字节,而不仅仅是Tor或Apache传输的字节。

直接从Tor控制器收集0day的统计信息,跟踪其自身的流量使用情况。

如果您的公共接口是eth0,则可以从以下文件中获取和传输字节:

/sys/class/net/eth0/statistics/tx_bytes
/sys/class/net/eth0/statistics/rx_bytes

使用系统可预测的网络接口命名,该接口看起来更像enp3s0f0

或者,您也可以从/proc/net/dev中解析信息,但是前两个更容易。

在PHP中,任何用户都可以使用file_get_contents阅读显示在页面上的内容。如果需要,可以使用this之类的答案将字节转换为另一个单位。

有关网络统计信息的内核文档可以在这里找到:https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net-statistics