Jak monitorować użycie sieci dla procesów w systemie Linux
Dostęp do internetu jest konieczny; jednak można zapytać, które aplikacje Linuksa zużywają najwięcej pojemności sieci na swoim urządzeniu. Na szczęście kilka konwencjonalnych narzędzi linuksowych ułatwia identyfikację procesów, które wyczerpują przepustowość. Poniżej znajduje się lista takich programów:
nethogi
nethogs to program, który dla połączeń internetowych robi to samo, co htop lub top dla wykorzystania procesora i pamięci. Pokazuje migawkę, które procesy uzyskują dostęp do sieci.
Podobnie jak narzędzia takie jak top, htop czy atop, nethogs działa na pełnym ekranie i okresowo odświeża, aby zapewnić aktualny przegląd połączeń sieciowych przypisanych do poszczególnych procesów.
Uzyskanie nethogów można łatwo osiągnąć za pomocą menedżera pakietów, co znacznie upraszcza ten proces.
Na przykład w Debianie i Ubuntu:
sudo apt install nethogs
A na Arch Linuxie:
sudo pacman -S nethogs
W rodzinie Red Hat:
sudo dnf install nethogs
Aby pomyślnie wykonać nethogs, konieczne jest, aby użytkownik posiadał uprawnienia administracyjne poprzez przyznanie uprawnień administratora.
sudo nethogs
Można skonfigurować nethogs do wykonania przez zwykłego użytkownika poprzez wykonanie następującego polecenia:
sudo setcap "cap_net_admin,cap_net_raw\+pe" /path/to/nethogs
Aby wykorzystać nethogs, konieczne jest podanie pełnej ścieżki pliku wykonywalnego, zastępując „/path/to/nethogs” w wierszu poleceń rzeczywistą ścieżką uzyskaną za pomocą metody takiej jak użycie polecenia „co”. Zapewnia to, że program jest zlokalizowany i wykonywany poprawnie.
which nethogs
lz
Podczas gdy lsof służy jako narzędzie do katalogowania otwartych plików, jest równie biegły w identyfikowaniu otwartych połączeń sieciowych. Korzystając z opcji -i
, można uzyskać kompleksową inwentaryzację połączeń internetowych, które są aktualnie utrzymywane przez aktywne procesy w systemie operacyjnym. W świetle faktu, że w systemach opartych na Linuksie nawet obiekty nieplikowe są traktowane jako takie, ta cecha staje się szczególnie godna uwagi.
Aby wyświetlić aktualną listę aktywnych połączeń internetowych na komputerze, możesz użyć następującego polecenia w terminalu lub oknie wiersza polecenia:
lsof -i
Użycie polecenia „lsof” może dostarczyć informacji dotyczących procesów utrzymujących aktywne połączenia internetowe, w tym ich identyfikatora procesu (PID), deskryptora pliku, typu połączenia internetowego, rozmiaru, protokołu i powiązanej oficjalnej nazwy pliku.
Dostępność opcji -i4
i -i6
umożliwia użytkownikom monitorowanie połączeń sieciowych przy użyciu protokołu internetowego w wersji 4 (IPv4) lub protokołu internetowego w wersji 6 (IPv6).
Jest wysoce prawdopodobne, że już zainstalowałeś Lsof, ponieważ jest on preinstalowany w wielu dystrybucjach Linuksa lub można go łatwo zainstalować w tych, w których go nie ma.
W Debianie i Ubuntu wpisz:
sudo apt install lsof
A na Archu:
sudo pacman -S lsof
W rodzinie dystrybucji Red Hat:
sudo dnf install lsof
statystyka sieci
Netstat to wyjątkowo solidne narzędzie, które daje użytkownikom możliwość rozpoznawania aktywnych połączeń sieciowych w ich systemie. Nie zawiera jednak informacji dotyczących konkretnych procesów, z którymi powiązane są te połączenia. Podobnie jak w przypadku lsof, takie szczegóły można uzyskać, korzystając z opcji wiersza poleceń.
Netstat to komponent zawarty w pakiecie net-tools, który można łatwo zainstalować w wielu dystrybucjach Linuksa poprzez wykorzystanie standardowego systemu zarządzania pakietami, który towarzyszy każdej odpowiedniej dystrybucji.
Na przykład w Debianie lub Ubuntu:
sudo apt install net-tools
W Arch Linuxie:
sudo pacman -S net-tools
Aby uzyskać narzędzie netstat w dystrybucji Linuksa, takiej jak Fedora, CentOS lub RHEL, wykonaj następujące polecenie w terminalu:
sudo dnf install net-tools
W domyślnej konfiguracji wykonanie polecenia netstat
w wierszu polecenia udostępnia szczegółowe informacje, takie jak protokół sieciowy, adres IP i stan połączenia. Jednak użycie opcji -p
powoduje wyświetlenie dodatkowej kolumny zawierającej identyfikator procesu i odpowiednią nazwę pliku wykonywalnego powiązanego z każdym aktywnym połączeniem.
netstat -p
Uruchomienie polecenia „netstat” bez żadnych dodatkowych opcji spowoduje wygenerowanie kompleksowego raportu zawierającego szczegółowe informacje o wszystkich aktywnych połączeniach sieciowych w danym momencie przed zakończeniem wykonywania. Korzystając z flagi „-c”, można uzyskać dostęp do bieżącego konta powiązań sieciowych, które jest regularnie odświeżane o nowe dane.
netstat -pc
Podejście to przypomina korzystanie z aplikacji zaprojektowanej dla ekranów, takiej jak net hogs, ale korzyść polega na skierowaniu wyników do innego programu, takiego jak grep lub paginator, w celu dokładniejszego zbadania:
netstat -p | grep 'systemd'
Aby uzyskać pełny wgląd w połączenia sieciowe obecne w twoim systemie, konieczne jest wykonanie polecenia „netstat” z uprawnieniami administratora, tj. Uruchomienie polecenia jako użytkownik root.
sudo netstat
Teraz możesz zobaczyć, które aplikacje dla systemu Linux pochłaniają Twoją przepustowość
Linux, podobnie jak wiele współczesnych systemów operacyjnych, wykazuje głęboką współzależność z Internetem. Czasami rozpoznanie, które procesy zużywają przepustowość, może być trudne. Na szczęście narzędzia takie jak nethogs, lsof i netstat zapewniają nieocenioną pomoc w identyfikowaniu procesów utrzymujących aktywne połączenia sieciowe.
W niektórych przypadkach pomimo ustalonych powiązań może wystąpić nieprawidłowe zachowanie. W dziedzinie systemów operacyjnych Linux jest prostym zadaniem położenie kresu wszelkim niepożądanym procesom, które mogą się pojawić.