MC, 09:48 czwartek, 13.07.2017 r.
Ilustracja do artykułu: Linux lsof - Sprawdzamy które procesy łączą się z Internetem

Linux lsof - Sprawdzamy które procesy łączą się z Internetem

Zdarzyła mi się ostatnio sytuacja, w której zauważyłem znaczną aktywność sieciową systemu pomimo braku jawnie uruchomionych procesów. Pytanie o źródło tej aktywności oraz miejsce, z jakim występuje wymiana informacji, pojawiło się zatem naturalnie. W tym wpisie chciałbym pokazać, jak możemy szybko sprawdzić, które procesy korzystają z zasobów Internetu i z jakimi hostami się łączą.

Na systemach Linux wszystko jest plikiem

To utarte hasło dobrze znane wszystkim użytkownikom systemów z rodziny Linuksów okazuje się być kluczowe dla postawionego we wstępie problemu. Bo czy jeśli powiem, że komenda lsof ma za zadanie wypisać wszystkie pliki otwarte w systemie, wraz z procesami, które je otwierają, to mamy poczucie, że informacja ta jakkolwiek przybliża nas do rozwiązania? Nie, jeśli zapomnieć o tym, że gniazda sieciowe również przyjmują postać plików, jak to właśnie ma miejsce w systemach Linux. Pozostaje więc kwestia odpowiedniego odfiltrowania zwróconych rezultatów. Autor programu przewidział taką potrzebę i z tego powodu udostępnił flagę -i, która przekazana do polecenia lsof, zleci zwrócenie wyłącznie plików odpowiadających za połączenia sieciowe (przy pomocy tej flagi możemy również zadać wzorzec adresowy!).

Przejdźmy do działania

Wyposażeni w odpowiednie narzędzia, wprawmy machinę w ruch i zobaczmy, jak wygląda konsumpcja sieciowa w systemie:

$ lsof -i
COMMAND     PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
firefox    8527 mateusz  138u  IPv4 475306      0t0  TCP 192.168.1.7:40019->ams16s29-in-f46.1e100.net:https (ESTABLISHED)
firefox    8527 mateusz  153u  IPv4 470231      0t0  TCP 192.168.1.7:52572->ams16s29-in-f35.1e100.net:https (ESTABLISHED)
skypeforl 10604 mateusz   92u  IPv4 353798      0t0  TCP 192.168.1.7:59743->40.77.226.194:https (ESTABLISHED)
skypeforl 10604 mateusz  137u  IPv4  30273      0t0  TCP 192.168.1.7:54445->40.69.196.70:https (ESTABLISHED)

Powyższe wywołanie pokazuje nam, że ruch sieciowy powodowany jest przez dwa procesy: przeglądarkę Firefox i komunikator Skype. Widzimy ponadto jakie identyfikatory PID mają wspomniane procesy, a także, z jakimi hostami się łączą i po jakich protokołach. Daje to więc już dość szczegółowy obraz połączeń sieciowych w systemie i jest odpowiedzią na zarysowany problem.

Zachęcam do zostawienia swojej opinii w sekcji komentarzy.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: