Narzędzie wiersza poleceń LSOF jest bardzo przydatne dla administratorów systemów i programistów, umożliwiając im:
- Określ procesy, które aktualnie wykorzystują konkretny plik lub port, co jest szczególnie ważne w przypadku konfliktów portów
- Wykryj pliki, które zostały usunięte, ale nadal są otwarte przez procesy, które mogą prowadzić do niepotrzebnego zużycia miejsca; Komenda LSOF służy do identyfikowania i adresowania takich przypadków
- Pomaga w skutecznym rozwiązywaniu problemów z błędami, takimi jak „port jest już używany”.
- Śledź aktywność sieciową i otwieraj połączenia sieciowe w celach monitorowania
- Zbadaj wzorce dostępu do plików, przyczyniając się do identyfikacji potencjalnych naruszeń bezpieczeństwa
W tym samouczku dowiesz się, jak używać polecenia LSOF do monitorowania portów w czasie rzeczywistym.
Podstawowa składnia polecenia LSOF
Składnia polecenia LSOF jest następująca:
$ lsof [ opcje ] [ nazwy ]
Opcje to flagi używane z komendą LSOF. Nazwy reprezentują nazwy plików, identyfikatory PID (identyfikatory procesów), nazwy użytkowników lub pliki sieciowe (IPv4, IPv6). W zależności od podanych opcji polecenie LSOF wyświetla listę otwartych plików odpowiadających tym nazwom.
Monitoruj porty w czasie rzeczywistym za pomocą polecenia LSOF
LSOF jest domyślnie zawarty w wielu systemach Linux. Musisz ręcznie pobrać i zainstalować jeden z dostępnych pakietów, jeśli nie jest on zainstalowany. Aby sprawdzić instalację LSOF w systemie, użyj następującego polecenia, aby wyświetlić zainstalowaną wersję:
$ lsof -W
Należy pamiętać, że aby użyć polecenia LSOF z odpowiednimi uprawnieniami, niektóre informacje o procesach i połączeniach sieciowych mogą wymagać podwyższonych uprawnień administratora, a do uruchomienia polecenia z uprawnieniami administracyjnymi może być konieczne użycie polecenia „sudo”.
Lista plików sieciowych
Po uruchomieniu polecenia LSOF z opcją „-i” wyświetlane są informacje o procesach mających połączenia sieciowe, takie jak gniazda nasłuchujące lub nawiązane połączenia.
$ lsof – tjPoprzednie polecenie wyświetla informacje o nazwie procesu (COMMAND), identyfikatorze procesu (PID), użytkowniku (USER), deskryptorze pliku (FD), typie połączenia (TYPE), adresach lokalnych i zdalnych oraz stanie połączenia. Powinieneś zobaczyć następujące dane wyjściowe:
Lista połączeń TCP
Możesz filtrować dane wyjściowe na podstawie określonych kryteriów, takich jak określone typy połączeń lub portów. Na przykład możesz użyć „lsof -i tcp”, aby wyświetlić tylko procesy powiązane z połączeniem TCP.
$ lsof -I protokół TCP: 1 - 1024Poprzednie polecenie filtruje informacje o procesach, które mają otwarte połączenia TCP w określonym zakresie portów od 1 do 1024. Może to być przydatne do identyfikowania, które procesy korzystają z dobrze znanych portów powiązanych z typowymi usługami.
Monitoruj określony port w czasie rzeczywistym
Korzystając z LSOF, możesz monitorować konkretny port w czasie rzeczywistym. Na przykład chcesz monitorować procesy związane z „HTTP” na porcie 80, który jest aktualizowany co 3 sekundy. Aby to zrobić, monitoruj port 80 w czasie rzeczywistym za pomocą następującego polecenia:
$ lsof -I : 80 -r3
Monitoruj port SSHD 22 w czasie rzeczywistym
Aby monitorować wszystkie połączenia SSHD działające na porcie 22, uruchom następującą komendę:
$ sudo lsof -I : 22 -r3To polecenie stale monitoruje i wyświetla w czasie rzeczywistym informacje o połączeniach sieciowych na porcie 22 co 3 sekundy. Jest to szczególnie przydatne do śledzenia zmian, takich jak nowe połączenia lub rozłączenia SSH, na bieżąco w czasie rzeczywistym.
Monitoruj zakres portów w czasie rzeczywistym
Aby w czasie rzeczywistym monitorować informacje o procesach, które mają otwarte połączenia TCP w określonym zakresie portów od 1 do 1024, możesz użyć następującego polecenia:
$ lsof -I protokół TCP: 1 - 1024 -r3
Monitoruj wszystkie porty w czasie rzeczywistym
Możesz monitorować wszystkie połączenia sieciowe w czasie rzeczywistym za pomocą polecenia LSOF. Na przykład chcesz stale monitorować i wyświetlać w czasie rzeczywistym informacje o połączeniach sieciowych co 5 sekund.
$ lsof -I -r5Poniższe dane wyjściowe zawierają szczegółowe informacje o procesach i powiązanych z nimi gniazdach sieciowych w czasie rzeczywistym co 5 sekund:
Podobnie możesz monitorować tylko „nawiązane” połączenia za pomocą polecenia LSOF:
$ lsof -I -I -r10
Wniosek
W tym samouczku nauczyliśmy się monitorować porty w czasie rzeczywistym za pomocą polecenia LSOF. To polecenie może również pomóc administratorom systemu i innym użytkownikom Linuksa w monitorowaniu połączeń sieciowych, w tym wszystkich aktywnych i otwartych portów. Mamy nadzieję, że ten przewodnik pomoże Ci zrozumieć, jak używać polecenia LSOF z różnymi opcjami i monitorować różne porty i procesy w czasie rzeczywistym.