如何查明什么或谁在使用我的带宽?

如何查明什么或谁在使用我的带宽?

说实话,我的服务器管理能力很差,但我的老板让我帮忙。他的服务器带宽限制为 2GB/天,今天他收到公司的警告,说他超出了带宽限制,使用了……24GB。

由于他太远,这是不可能的,他问我是否可以找出问题所在。我不知道从哪里开始或做什么。

任何信息都会有帮助,我怎样才能找出问题所在。

机器运行的是 Ubuntu 12.04。最奇怪的是,根据从主机商收到的图表,只使用了传出传输。

编辑

感谢您的建议,我将运行 tcpdump 并尝试检查结果

答案1

如需立即监控,您可以使用伊夫托普。这将向您显示当前活动的连接及其使用的带宽。一旦您确定了高流量连接,请找到本地端口号并使用它netstat查找该连接属于哪个进程。

sudo netstat -tpn | grep 12345

对于长期监测我建议暗态。这可以为您提供每个主机和端口的细分信息,让您可以弄清楚流量与什么相关。

答案2

我建议安装 ntop。

http://www.ntop.org/

将其放在主机网关/路由器位置并观察一天/一周的流量。Ntop 提供了一个 Web UI,您可以在其中按 IP/端口/协议查看细分信息。

答案3

最好的工具可能是伊夫托普,并且可以通过 sudo apt-get install iftop 轻松获取。它将根据罪魁祸首 IP/主机名显示输出:

             191Mb      381Mb                 572Mb       763Mb             954Mb
└────────────┴──────────┴─────────────────────┴───────────┴──────────────────────
box4.local            => box-2.local                      91.0Mb  27.0Mb  15.1Mb
                      <=                                  1.59Mb   761kb   452kb
box4.local            => box.local                         560b   26.8kb  27.7kb
                      <=                                   880b   31.3kb  32.1kb
box4.local            => userify.com                         0b   11.4kb  8.01kb
                      <=                                  1.17kb  2.39kb  1.75kb
box4.local            => b.resolvers.Level3.net              0b     58b    168b
                      <=                                     0b     83b    288b
box4.local            => stackoverflow.com                   0b     42b     21b
                      <=                                     0b     42b     21b
box4.local            => 224.0.0.251                         0b      0b    179b
                      <=                                     0b      0b      0b
224.0.0.251           => box-2.local                         0b      0b      0b
                      <=                                     0b      0b     36b
224.0.0.251           => box.local                           0b      0b      0b
                      <=                                     0b      0b     35b


─────────────────────────────────────────────────────────────────────────────────
TX:           cum:   37.9MB   peak:   91.0Mb     rates:   91.0Mb  27.1Mb  15.2Mb
RX:                  1.19MB           1.89Mb              1.59Mb   795kb   486kb
TOTAL:               39.1MB           92.6Mb              92.6Mb  27.9Mb  15.6Mb

不要忘记旧版 *nix 上的经典而强大的 sar 和 netstat 实用程序!

另一个很棒的工具是载入,一个用于实时监控带宽的绝佳工具,可以使用 sudo apt-get install nload 轻松安装在 Ubuntu 或 Debian 中。

Device eth0 [10.10.10.5] (1/2):
=====================================================================================
Incoming:


                               .         ...|
                               #         ####|
                           .. |#|  ...   #####.         ..          Curr: 2.07 MBit/s
                          ###.###  #### #######|.     . ##      |   Avg: 1.41 MBit/s
                         ########|#########################.   ###  Min: 1.12 kBit/s
             ........    ###################################  .###  Max: 4.49 MBit/s
           .##########. |###################################|#####  Ttl: 1.94 GByte
Outgoing:
            ##########  ###########    ###########################
            ##########  ###########    ###########################
            ##########. ###########   .###########################
            ########### ###########  #############################
            ########### ###########..#############################
           ############ ##########################################
           ############ ##########################################
           ############ ##########################################  Curr: 63.88 MBit/s
           ############ ##########################################  Avg: 32.04 MBit/s
           ############ ##########################################  Min: 0.00 Bit/s
           ############ ##########################################  Max: 93.23 MBit/s
         ############## ##########################################  Ttl: 2.49 GByte

答案4

看一下tcpdump。它可以转储所有网络流量(不仅仅是名称所暗示的 tcp),然后您可以使用 Wireshark 等应用程序读取这些流量。在 Wireshark 中,可以非常轻松地过滤某些类型的数据,甚至可以绘制网络 I/O 图表。

另一个有用的工具可能是 netstat,它可以显示正在进行的网络连接列表。也许有些连接不应该存在。Tcpdump 更有用(捕获几分钟,然后检查是否已经可以看到源),但 netstat 可能会给你一个快速概览。

顺便说一句,读到这篇文章时,我首先想到的是您的服务器上有恶意软件,或者有人利用它进行放大攻击。但要检查这一点,您需要先运行 tcpdump。

编辑:请注意,tcpdump 可能需要以 root 身份运行,也许您需要使用sudo tcpdump

另一处编辑:由于我真的找不到一个好的网页来链接一般的放大攻击,这里有一个简短的版本:

DNS 等协议在 UDP 上运行。UDP 流量是无连接的,因此您可以非常轻松地伪造其他人的 IP 地址。由于 DNS 答案通常比查询大,因此可以将其用于 DoS 攻击。攻击者发送查询,请求 DNS 服务器对给定名称的所有记录,并告诉 DNS 服务器该请求来自 X。此 X 是攻击者想要进行 DoS 攻击的目标。然后 DNS 服务器友好地回复,将(较大的,例如 4kB)回复发送给 X。

这是放大效应,因为攻击者发送的数据比 X 实际接收的数据少。DNS 并不是唯一可能出现这种情况的协议。

相关内容