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

8565
igorsantos07

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

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

27

9 ответов на вопрос

19
jtimberman

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 

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

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

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

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

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

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

sudo nethogs eth0

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

очень интересно! = D Решить мою проблему лучше, чем комбо iftop + netstat. Не то чтобы оба не хороши, они классные, но не для того, что мне было нужно. = D igorsantos07 14 лет назад 0
это, кажется, не имеет пакетного режима. Nicholas DiPiazza 8 лет назад 0
9
Nicholas

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

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

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

sudo netstat -ntp

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

Поскольку я не могу голосовать «принято» как для вас, так и для «iftop», я приму его - который показал мне ТОЧНО, когда и как кто-то потребляет мою пропускную способность, - и проголосую за вас, потому что с помощью netstat я мог знать, кто Я должен убить. Спасибо! igorsantos07 15 лет назад 0
Кроме того, вы можете использовать `lsof -i tcp: 80`, чтобы сконцентрировать ваш поиск на одном порту. Эта конкретная версия будет перечислять все процессы, подключенные по TCP-порту 80. nagul 15 лет назад 0
2
timn

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

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

bmon

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

bwm-ng

2
Jamieson Becker

nload is a great tool for monitoring bandwidth in real time and easily installed in Ubuntu or Debian with 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 

Another excellent tool is iftop, also easily 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 

Don't forget about the classic and powerful sar and netstat utilities on older *nix!

1
alex

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

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

0
th3dude

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

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

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

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

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