Dostęp do sieci internetowej stał się nieodłącznym elementem naszej codzienności. Zastanawiasz się zapewne, które procesy działające w systemie Linux najbardziej obciążają twoje łącze? Na szczęście, dzięki kilku popularnym narzędziom, monitorowanie wykorzystania przepustowości przez poszczególne procesy jest w Linuksie wyjątkowo proste. Oto kilka z nich, które z pewnością Ci w tym pomogą.
MATERIAŁ WIDEO DNIA
PRZEWIŃ, BY PRZEJŚĆ DO TREŚCI
1. Nethogs
Nethogs to narzędzie, które dla ruchu sieciowego robi to, co htop czy top robią dla obciążenia procesora i pamięci. Ukazuje w czasie rzeczywistym, które konkretnie procesy korzystają z zasobów sieciowych.
Podobnie jak top, htop czy atop, Nethogs prezentuje informacje w trybie pełnoekranowym, odświeżając dane co kilka sekund. Pozwala to na bieżąco śledzić aktywność sieciową z podziałem na procesy.
Instalacja Nethogs jest bardzo intuicyjna i ogranicza się do użycia menedżera pakietów charakterystycznego dla Twojej dystrybucji.
Na przykład, w systemach Debian i Ubuntu instalacja odbywa się za pomocą komendy:
sudo apt install nethogs
Natomiast w Arch Linuxie:
sudo pacman -S nethogs
W systemach z rodziny Red Hat:
sudo dnf install nethogs
Aby uruchomić nethogs, niezbędne są uprawnienia administratora (root):
sudo nethogs
Możliwe jest też skonfigurowanie nethogs tak, aby mógł być uruchamiany przez zwykłego użytkownika. W tym celu należy użyć poniższego polecenia:
sudo setcap "cap_net_admin,cap_net_raw+pe" /path/to/nethogs
Pamiętaj, aby w powyższej komendzie zamienić „/ścieżka/do/nethogs” na rzeczywistą ścieżkę dostępu do pliku wykonywalnego nethogs. Możesz ją łatwo odnaleźć za pomocą polecenia:
which nethogs
2. Lsof
Lsof, chociaż służy głównie do wyświetlania otwartych plików, z powodzeniem może prezentować otwarte połączenia sieciowe. Opcja `-i` sprawia, że wyświetlana jest lista połączeń internetowych powiązanych z działającymi procesami. W końcu, w systemie Linux „wszystko jest plikiem”.
Aby wyświetlić aktywne połączenia sieciowe, skorzystaj z poniższej komendy:
lsof -i
Lsof wyświetli informacje o nazwie polecenia, które otworzyło dane połączenie, jego PID, deskryptor pliku, typ połączenia, rozmiar, protokół i pełną ścieżkę pliku powiązanego z połączeniem.
Opcje `-i4` i `-i6` pozwalają na wyświetlenie połączeń korzystających odpowiednio z protokołu IPv4 lub IPv6.
Jest bardzo prawdopodobne, że lsof jest już zainstalowany w Twoim systemie. Jeśli jednak go nie posiadasz, instalacja w popularnych dystrybucjach Linuxa jest bardzo prosta.
W systemach Debian i Ubuntu instalację przeprowadzisz za pomocą:
sudo apt install lsof
W Arch Linuxie:
sudo pacman -S lsof
Natomiast w dystrybucjach z rodziny Red Hat:
sudo dnf install lsof
3. Netstat
Netstat jest rozbudowanym narzędziem służącym do wyświetlania połączeń sieciowych w systemie. Domyślnie nie pokazuje, które procesy są powiązane z poszczególnymi połączeniami. Jednak, podobnie jak w przypadku lsof, odpowiednia opcja w wierszu poleceń umożliwia wyświetlenie tych informacji.
Netstat jest częścią pakietu net-tools. Możesz go zainstalować w większości dystrybucji Linuksa za pomocą domyślnego menedżera pakietów.
Na przykład, w systemach Debian lub Ubuntu:
sudo apt install net-tools
W Arch Linuxie:
sudo pacman -S net-tools
Aby zainstalować netstat w Fedorze, CentOS i RHEL, wykonaj:
sudo dnf install net-tools
Netstat możesz uruchomić bezpośrednio w wierszu poleceń. Domyślnie wyświetli informacje takie jak protokół, adres i stan połączenia. Opcja `-p` dodaje kolumnę, która prezentuje identyfikator procesu (PID) i nazwę polecenia.
netstat -p
Po uruchomieniu, netstat wyświetli listę wszystkich połączeń sieciowych, a następnie zakończy działanie. Użycie opcji `-c` sprawia, że lista jest na bieżąco aktualizowana:
netstat -pc
Działanie takie przypomina użycie narzędzia działającego w trybie pełnoekranowym, takiego jak Nethogs. Zaletą tego rozwiązania jest możliwość przekazania wyjścia z netstat do innych programów, takich jak grep czy pager, co pozwala na szczegółową analizę danych:
netstat -p | grep 'systemd'
Aby wyświetlić wszystkie procesy z aktywnymi połączeniami sieciowymi, konieczne może być uruchomienie netstat z uprawnieniami administratora (root):
sudo netstat
Teraz możesz łatwo monitorować, które aplikacje w systemie Linux zużywają Twoją przepustowość
Linux, podobnie jak wiele nowoczesnych systemów operacyjnych, jest silnie zintegrowany z Internetem. Czasami śledzenie, które procesy pochłaniają największą część przepustowości, bywa utrudnione. Dzięki narzędziom takim jak nethogs, lsof i netstat, możesz skutecznie monitorować procesy utrzymujące otwarte połączenia sieciowe.
Procesy, w przypadku połączeń, mogą czasami działać nieprawidłowo. W systemie Linux bez problemu możesz zakończyć działanie każdego takiego „nieuczciwego” procesu.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.