Jak śledzić użycie sieci LAN? (AKA „top for LAN”)

27

Istnieje zła aplikacja, która pochłania CAŁĄ przepustowość wysyłania (jestem Brazylijczykiem, to tylko ~ 35 kb / s) przez około 80% czasu, kiedy mój komputer jest włączony.

Chciałbym wiedzieć, czy jest jakiś sposób, aby śledzić to użycie i dowiedzieć się, co robi aplikacja.

igorsantos07
źródło

Odpowiedzi:

12

Co z nethogami ? Moim zdaniem jest o wiele bardziej humanitarny. Wyświetla listę poleceń / programów korzystających z sieci i przepustowości dla każdego z nich w czasie rzeczywistym.

Zainstaluj go w systemach Ubuntu / Debian z:

sudo apt-get install nethogs

Uruchom go, aby monitorować interfejs sieciowy w następujący sposób:

Sudo Nethogs eth0

alternatywny tekst

vulcan_hacker
źródło
bardzo interesujące! = D Napraw mój problem lepiej niż kombinacja iftop + netstat. Nie, że oba nie są dobre, są niesamowite, ale nie do tego, czego potrzebowałem. = D
igorsantos07
to nie wydaje się mieć trybu wsadowego.
Nicholas DiPiazza
19

iftopto program oparty na konsoli / powłoce podobny do topu, który może korzystać z biblioteki pcap (używanej także przez tcpdump i wireshark). Jest dostępny dla Ubuntu z Universe.

sudo aptitude install iftop
sudo iftop

Podczas uruchamiania aktualizacji w systemie Ubuntu:

alternatywny tekst

Dzięki netstat możesz dowiedzieć się, jaki proces jest podłączony do określonego portu lub adresu IP. W przypadku portów dobrym pomysłem jest przedrostek dwukropkiem.

sudo netstat -plantu | grep "some_port_number_or_ip_address"

Na przykład, aby spojrzeć na otwarte połączenia dla 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 

Możesz także szukać otwartych połączeń portów za pomocą 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)

Możesz uzyskać więcej informacji o otwartych plikach z lsof z -p PID.

sudo lsof -p 2376

(Wiele wyników z tego tłumionych)

jtimberman
źródło
Za pomocą tego programu mogłem ustalić, gdzie IT zjada moje połączenie ... a dzięki netstat mogłem ustalić, kto to robi. Muszę zaznaczyć obie odpowiedzi jako poprawne! XD
igorsantos07
Naprawdę nie sądzę, aby edytowanie odpowiedzi i dodawanie nowych informacji było sprawiedliwe ... ale nie mogę wymyślić żadnego innego rozwiązania, więc .. jeszcze raz dziękuję =]
igorsantos07
2
@Igoru Po prostu poprawiam odpowiedź, aby ludzie otrzymywali bardziej odpowiednie informacje, jeśli szukają pytań podobnych do twoich.
jtimberman
1
Zaraz ... czy to system Ubuntu? Wygląda jak OS X.
Ślimak mechaniczny
Ssh'd do systemu Ubuntu z mojego komputera Mac.
jtimberman
9

ntop jest twoim przyjacielem. Pakiety znajdują się w repozytoriach Linux i Macports.

Mikołaj
źródło
2
ntop to świetny program, ale jest do tego prawdopodobnie przesadzony i nadmiernie skomplikowany.
jtimberman
Nie sądzę, że jest przyjazny, jak chciałbym ... Myślę, że jest tyle informacji na temat tego, czego potrzebuję. A twoja odpowiedź nie jest dokładnie ... pomocna. Ale i tak dziękuję =]
igorsantos07
5

Oprócz użycia iftop do identyfikacji adresu i portu używającego przepustowości, możesz użyć netstat do identyfikacji procesu

sudo netstat -ntp

Spowoduje to wyświetlenie wszystkich otwartych połączeń TCP i dołączenie do nich nazwy / identyfikatora procesu.

Rog
źródło
Ponieważ nie mogę głosować na „zaakceptowano” dla was i iftop, zaakceptuję go - to pokazało mi DOKŁADNIE, kiedy i jak ktoś zjadł moje pasmo - i głosowałem, netstatponieważ mogłem wiedzieć, kogo powinienem zabić. Dziękuję Ci!
igorsantos07
Możesz też użyć lsof -i tcp:80do skoncentrowania wyszukiwania na jednym porcie. Ta konkretna wersja wyświetli listę wszystkich procesów połączonych na porcie 80 TCP.
Nagul
2

Moim zdaniem interfejs użytkownika iftop nie jest dobrze zaprojektowany. W praktyce przeglądanie adresów IP lub nazw hostów w czasie rzeczywistym prawie nigdy nie jest konieczne. Gdybym potrzebował, listę wszystkich obecnych połączeń, po prostu wybrałbym netstat, jak wyjaśnił jtimberman.

Dla moich celów lepiej nadaje się Bmon niż iftop. Ma bardzo uproszczony interfejs użytkownika z obsługą wielu interfejsów i rysowaniem „wykresów”. Oto zrzut ekranu:

bmon

Jeśli nie potrzebujesz wszystkich funkcji oferowanych przez bmon, bwm-ng może być idealnym narzędziem dla Ciebie. Pokazuje tylko bieżącą zajętą ​​przepustowość na interfejs - nie więcej i nie mniej:

bwm-ng

timn
źródło
2

nload jest doskonałym narzędziem do monitorowania przepustowości w czasie rzeczywistym i jest łatwy do zainstalowania w Ubuntu lub Debian dzięki 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

Innym doskonałym narzędziem jest iftop , również łatwo 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

Nie zapomnij o klasycznych i potężnych narzędziach sar i netstat na starszych * nix!

Jamieson Becker
źródło
1

Wireshark to także bardzo dobra (wieloplatformowa) aplikacja do monitorowania ruchu sieciowego. Oto opis ze strony:

Wireshark jest wiodącym na świecie analizatorem protokołów sieciowych i jest de facto (i często de jure) standardem w wielu branżach i instytucjach edukacyjnych.

alex
źródło
0

Możesz to zrobić na poziomie routera, w zależności od oprogramowania wewnętrznego. Na przykład, jeśli korzystasz z DD-WRT , możesz śledzić zużycie w czasie i według urządzenia.

th3dude
źródło
W rzeczywistości uważam, że używanie mojego routera ADSL tylko do rozwiązania tego małego problemu jest przesadą i nadmiernie skomplikowane. Myślę, że to prosta sprawa do rozwiązania. Ale dziękuję za pomoc!
igorsantos07
0

Zainstaluj zaporę ogniową i przynajmniej tymczasowo zablokuj wszystkie połączenia wychodzące. Powinien cię powiadomić, gdy coś spróbuje nawiązać połączenie, w którym momencie powinieneś mieć swojego winowajcę :-)

Oto jeden z wielu artykułów online, który zawiera informacje na temat instalowania zapory na Ubuntu:
http://linux.com/news/enterprise/systems-management/8256-installing-a-firewall-on-ubuntu

Joel Martinez
źródło
Wydaje mi się, że mam już UFW w moim Ubuntu .. W każdym razie myślę, że byłoby to trochę kłopotów z rozwiązaniem przy takim podejściu. Problem nie pojawia się cały czas, jest przerywany, ale dość częsty. Ale jeśli inne aplikacje z informacjami internetowymi zawiodą, dam firewallowi szansę! Dziękuję Ci!
igorsantos07