Как отслеживать использование локальной сети? (AKA «топ для локальной сети»)

27

Есть злое приложение, которое потребляет ВСЕ мою пропускную способность загрузки (я бразилец, это всего ~ 35 кбит / с) примерно в 80% времени, когда мой компьютер включен.

Я хотел бы знать, есть ли способ отследить это использование и выяснить, что приложение делает это.

igorsantos07
источник

Ответы:

12

А как насчет nethogs ? На мой взгляд, это намного гуманнее. Перечисляет, какие команды / программы используют сеть и сколько пропускной способности для каждой из них в режиме реального времени.

Установите его в системах Ubuntu / Debian с помощью:

sudo apt-get установить nethogs

Запустите его для мониторинга вашего сетевого интерфейса следующим образом:

sudo nethogs eth0

альтернативный текст

vulcan_hacker
источник
очень интересно! = D Решить мою проблему лучше, чем комбо iftop + netstat. Не то чтобы оба не хорошие, они классные, но не для того, что мне было нужно. = D
igorsantos07
это, кажется, не имеет пакетного режима.
Николас ДиПьяцца
19

iftopпохожая на top программа на основе консоли / оболочки, которая может использовать библиотеку pcap (также используемую tcpdump и wireshark). Он доступен для Ubuntu из вселенной.

sudo aptitude install iftop
sudo iftop

При запуске обновления в системе Ubuntu:

альтернативный текст

С помощью netstat вы можете узнать, какой процесс подключен к определенному порту или IP. Для портов хорошей идеей будет префикс с двоеточием.

sudo netstat -plantu | grep "some_port_number_or_ip_address"

Например, чтобы посмотреть открытые соединения для ssh:

sudo netstat -plantu | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2376/sshd       
tcp        0      0 10.13.37.122:22         10.13.37.105:59130      ESTABLISHED 4033/sshd: jtimberm
tcp6       0      0 :::22                   :::*                    LISTEN      2376/sshd 

Вы также можете искать соединения с открытым портом с помощью lsof:

sudo lsof -i:22
COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    2376       root    3u  IPv4   5613      0t0  TCP *:ssh (LISTEN)
sshd    2376       root    4u  IPv6   5615      0t0  TCP *:ssh (LISTEN)
sshd    4033       root    3u  IPv4  11608      0t0  TCP 10.13.37.122:ssh->10.13.37.105:59130 (ESTABLISHED)
sshd    4086 jtimberman    3u  IPv4  11608      0t0  TCP 10.13.37.122:ssh->10.13.37.105:59130 (ESTABLISHED)

Вы можете получить больше информации об открытых файлах из lsof с -p PID.

sudo lsof -p 2376

(Много выхода из этого подавлено)

jtimberman
источник
С помощью этой программы я мог определить, где ИТ использует мое соединение ... и с помощью netstat я мог определить, кто это делает. Мне нужно пометить оба ответа как правильные! XD
igorsantos07
Я действительно не думаю, что будет справедливо отредактировать ваш ответ и добавить много новой информации ... но я не могу думать ни о каком другом решении, так что ... еще раз спасибо =]
igorsantos07
2
@Igoru Просто сделайте ответ лучше, чтобы люди получали больше актуальной информации, если они ищут вопросы, похожие на ваши.
jtimberman
1
Подождите ... это система Ubuntu? Похоже на OS X.
Механическая улитка
Я ssh'd в систему Ubuntu с моего Mac.
Jtimberman
9

Нет , твой друг. Пакеты находятся в репозиториях Linux и MacPort.

Николас
источник
2
ntop - отличная программа, но она, вероятно, излишняя и слишком сложная для этого.
jtimberman
Я не думаю, что это дружелюбно, как хотелось бы ... Я думаю, что есть так много информации для того, что мне нужно. И ваш ответ не совсем .... Хелф. Но все равно спасибо =]
igorsantos07
5

В дополнение к использованию iftop для определения адреса и порта, который использует пропускную способность, вы можете использовать netstat для идентификации процесса

sudo netstat -ntp

Это покажет все открытые соединения TCP и имя / идентификатор процесса, прикрепленные к каждому.

Рог
источник
Поскольку я не могу голосовать «принято» как для вас, так и для себя iftop, я приму его - это показало мне ТОЧНО, когда и как кто-то съел мою пропускную способность, - и проголосую за вас, потому что netstatя могу знать, кого я должен убить. Спасибо!
igorsantos07
Кроме того, вы можете использовать lsof -i tcp:80для сосредоточения поиска на одном порту. Эта конкретная версия будет перечислять все процессы, связанные с TCP-портом 80.
Nagul
2

На мой взгляд, пользовательский интерфейс iftop не очень хорошо продуман. На практике практически нет необходимости просматривать IP-адреса или имена хостов в реальном времени. Если бы мне было нужно, список всех текущих соединений, я бы просто пошел с netstat, как объяснил jtimberman.

Для моих целей лучше использовать bmon, чем iftop. Он имеет очень упрощенный пользовательский интерфейс с поддержкой нескольких интерфейсов и рисованием «графиков». Вот скриншот:

bmon

Если вам не нужны все функции, которые предлагает bmon, bwm-ng может быть идеальным инструментом для вас. Он показывает только текущую занятую полосу пропускания на интерфейс - не больше и не меньше:

BWM-нг

timn
источник
2

nload - это отличный инструмент для мониторинга пропускной способности в режиме реального времени, который легко устанавливается в Ubuntu или Debian с помощью sudo apt-get install nload.

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

Еще один отличный инструмент - iftop , также легко apt-get'able:

             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

Не забывайте о классических и мощных утилитах sar и netstat в старых * nix!

Джеймисон Беккер
источник
1

Wireshark также является очень хорошим (мультиплатформенным) приложением для мониторинга сетевого трафика. Вот описание с сайта:

Wireshark является ведущим в мире анализатором сетевых протоколов и стандартом де-факто (и часто де-юре) во многих отраслях и учебных заведениях.

Алекс
источник
0

Вы можете сделать это на уровне маршрутизатора в зависимости от вашей прошивки. Например, если вы используете DD-WRT , вы можете отслеживать использование по времени и по машине.

th3dude
источник
На самом деле, я думаю, что использование моего ADSL-роутера только для решения этой небольшой проблемы является чрезмерным и слишком сложным. Я думаю, что это легко решить. Но спасибо за вашу помощь!
igorsantos07
0

Установите брандмауэр и, по крайней мере временно, сделайте так, чтобы он блокировал все исходящие соединения. Он должен уведомлять вас, когда что-то пытается установить соединение, и в этот момент у вас должен быть виновник :-)

Вот одна из многих статей в Интернете, в которых вы найдете информацию об установке брандмауэра в Ubuntu:
http://linux.com/news/enterprise/systems-management/8256-install-a-firewall-on-ubuntu

Джоэл Мартинес
источник
Я думаю, что у меня уже есть UFW в моем Ubuntu .. В любом случае, я думаю, что это будет немного проблем с этим подходом. Проблема не возникает постоянно, это периодически, но немного часто. Но если другие сетевые приложения не будут работать, я попробую брандмауэр! Спасибо!
igorsantos07