【问题标题】:Is there a way of monitoring how many bytes has my server tranferred?有没有办法监控我的服务器传输了多少字节?
【发布时间】:2019-01-31 17:52:19
【问题描述】:

所以最近我看到了一个这个网站:https://0day.rocks/ 并且有一个关于这个服务器是 Tor 节点的文本。但在这之下是服务器自上次重置以来传输的字节数(TB)。我已经在其他网站上看到过类似的东西,但我对如何在 php 中执行此操作非常感兴趣(如果可能的话)。只是说我不是要你为我编写代码,我只是希望有人告诉我要阅读什么或从哪里开始等。提前致谢。

【问题讨论】:

  • 我不会写这个作为答案,因为你专门询问了 php,但你可能想在网络服务器级别(例如 apache2)记录这个,所以你不必实现这样的计数器在每个单独的 PHP 文件中。有关更多信息,请参阅此serverfault.com/questions/14613/…
  • 我认为你解决了它:D 我不是严格寻找 php 解决方案,所以你可以把它写成答案。

标签: php tor


【解决方案1】:

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

0day 的统计数据直接从 Tor 控制器收集,该控制器跟踪它自己的流量使用情况。

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    例如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 等其他网络服务器应该具有类似的功能。

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 2020-01-12
      • 2022-01-17
      • 1970-01-01
      • 2019-03-21
      • 2011-06-19
      相关资源
      最近更新 更多