Skip to main content

Jak korzystać z polecenia Netstat na Macu

Konsola w sieci - polecenia CMD Windows do zarządzania połączeniami sieciowymi (Kwiecień 2024)

Konsola w sieci - polecenia CMD Windows do zarządzania połączeniami sieciowymi (Kwiecień 2024)
Anonim

Polecenie netstat w macOS jest poleceniem Terminal używanym do wyświetlania szczegółowych informacji o komunikacji sieciowej twojego Maca. Komunikacja sieciowa obejmuje wszystkie sposoby komunikacji komputera Mac ze światem zewnętrznym, we wszystkich portach i we wszystkich aplikacjach. Po opanowaniu netstat, użytkownicy komputerów Mac mogą szybko zrozumieć, jakie połączenia wykonuje ich komputer i dlaczego.

Uruchamianie Netstat

Polecenie netstat jest domyślnie dostępne na komputerach Mac. Nie trzeba go pobierać ani instalować.

Aby uruchomić netstat, otwórz okno Terminal. Jeśli nie znasz terminalu, znajdziesz go w /Applications/Utilities/Terminal.app. Rodzaj netstat i naciśnij klawisz Enter, aby wykonać polecenie.

Zauważysz, że ogromna ilość tajemniczego tekstu zacznie się przewijać na ekranie. Jest to normalne i oczekiwane. Bez żadnych dodatkowych opcji netstat zgłosi wszystkie aktywne połączenia sieciowe na komputerze Mac. Biorąc pod uwagę liczbę funkcji, jakie wykonuje współczesne urządzenie sieciowe, można oczekiwać, że lista będzie długa. Standardowy raport netstat może przebiegać znacznie ponad 1000 linii.

Filtrowanie wyników netstat jest niezbędne do zrozumienia, co dzieje się na aktywnych portach Mac. Możesz filtrować wyniki netstat za pomocą wbudowanych flag. Te flagi pozwalają na ustawienie opcji, ograniczając zakres i wyjście netstat.

Flagi i opcje Netstat

Aby zobaczyć wszystkie dostępne opcje netstat, wpisz man netstat w wierszu polecenia. Spowoduje to wyświetlenie strony man netstat. Możesz także zobaczyć wersję online strony man netstat.

netstat -AabdgiLlmnqrRsSvWx -do kolejka -fa address_family -JA berło -p protokół -w czekać

Netstat na MacOS nie działa tak samo, jak netstat w systemie Windows lub netstat w systemie Linux. Użycie flag lub składni tych implementacji netstat może nie spowodować oczekiwanego zachowania.

Wskazówka: Jeśli powyższy skrót wygląda na zupełnie niezrozumiały, naucz się czytać składnię poleceń.

-r wyświetla tabelę routingu pokazującą, jak pakiety są kierowane dookoła sieci.

-p protokół wyświetla ruch związany z określonym protokołem sieciowym. Pełną listę protokołów można znaleźć w / etc / protocols, tym ważniejsze są udp i tcp.

-v zwiększa szczegółowość, szczególnie przez dodanie kolumny pokazującej identyfikator procesu (PID) powiązany z każdym otwartym portem.

-JA berło dostarcza dane pakietowe dla określonego interfejsu. Wszystkie dostępne interfejsy mogą być wyświetlane z flagą -i, ale en0 jest zwykle domyślnym wychodzącym interfejsem sieciowym. Zwróć uwagę na małą literę.

-sol wyświetla informacje związane z połączeniami multiemisji.

-s pokazuje statystyki sieci dla wszystkich protokołów, niezależnie od tego, czy są aktywne.

-n pomija oznaczone zdalne adresy nazwami. Drastycznie przyspiesza to wyjście netstata przy jednoczesnym poświęcaniu ograniczonej ilości informacji.

-za obejmuje porty serwera w wynikach polecenia netstat, które nie są zawarte w domyślnych danych wyjściowych.

Netstat Przykłady

Aby nasze zrozumienie było praktyczne, spójrzmy na kilka przykładów netstat.

netstat -apv TCP

Ta komenda zwróci tylko połączenia TCP na komputerze Mac, w tym otwarte porty i aktywne porty. Będzie również używał szczegółowych danych wyjściowych, wymieniając PID powiązane z każdym połączeniem.

netstat -a | grep -i "listen"

To połączenie netstat i grep ujawni otwarte porty na twoim Macu. Otwarte porty to porty, które nasłuchują na wiadomość. Jeśli nie znasz składni, postaci fajki | służy do wysyłania danych wyjściowych z jednego polecenia do innego polecenia. Wydajemy dane wyjściowe polecenia netstat do grep, co pozwala nam wyszukać słowo kluczowe "listen" i znaleźć nasze wyniki.

Dostęp do netstat za pośrednictwem Network Utility

Oprócz w pełni funkcjonalnego wykorzystania za pośrednictwem interfejsu wiersza poleceń Terminal, niektóre funkcje netstat są również dostępne za pośrednictwem aplikacji Network Utility. Ta wbudowana aplikacja macOS znajduje się w katalogu / Applications / Utilities / Network Utility.app. Otwórz aplikację i kliknij Netstat zakładka, aby uzyskać dostęp do interfejsu graficznego dla netstat.

Opcje w programie Network Utility są znacznie bardziej ograniczone niż dostępne w linii poleceń. Cztery wybory przycisku radiowego uruchamiają wstępnie ustawione polecenie netstat i wyświetlają dane wyjściowe na ekranie poniżej.

Komendy netstat dla każdego przycisku opcji są następujące:

  • Wyświetl informacje o tablicy routingu uruchamia netstat -r
  • Wyświetlanie kompleksowych statystyk sieci dla każdego protokołu uruchamia netstat -s
  • Wyświetl informacje o multiemisji uruchamia netstat -g
  • Wyświetla stan wszystkich bieżących połączeń gniazd uruchamia netstat

Uzupełnianie netstatem za pomocą lsof

Faktem jest, że implementacja netstat dla macOS nie obejmuje dużej części funkcjonalności, której użytkownicy oczekują i potrzebują. Mimo że ma swoje zastosowania, netstat nie jest prawie tak użyteczny na macOS, jak w systemie Windows. Inna komenda, lsof, może zastąpić wiele brakujących funkcji.

lsof wyświetla wszystkie pliki aktualnie otwarte przez dowolne aplikacje. Może to również służyć do sprawdzania otwartych portów powiązanych z aplikacjami. Uruchom lsof -i, a zobaczysz listę wszystkich aplikacji komunikujących się przez Internet. Zazwyczaj jest to cel podczas używania netstat na komputerach z systemem Windows. Jednak jedynym sensownym sposobem na wykonanie tego zadania na macOS nie jest netstat, ale lsof.

Wyświetlanie każdego otwartego pliku lub połączenia internetowego jest często przytłaczająco szczegółowe.Właśnie dlatego lsof zawiera wiele flag do ograniczania wyników z określonymi kryteriami. Istnieje wiele przydatnych flag, które rozszerzają narzędzie polecenia. Najważniejsze z nich znajdują się poniżej. Aby uzyskać dodatkowe informacje, w tym więcej flag i technicznych wyjaśnień dotyczących implementacji każdej flagi, sprawdź stronę man lub uruchom człowiek lsof na monicie terminalu.

flagi i opcje lsof

-ja wyświetla wszystkie otwarte połączenia sieciowe i nazwę procesu, który korzysta z połączenia. Dodanie 4, jak w -i4, wyświetli tylko połączenia IPv4. Zamiast tego dodajesz 6 (-i6) wyświetli tylko połączenia IPv6.

The -ja flaga może również zostać rozwinięta w celu określenia dalszych szczegółów. -iTCP lub -iUDP zwróci tylko połączenia TCP i UDP. -iTCP: 25 zwróci tylko połączenia TCP na porcie 25. Zakres portów można określić za pomocą myślnika, tak jak -i -iCP: 25-50.

Użycie [email protected] spowoduje zwrócenie tylko połączeń z adresem IPv4 1.2.3.4. Adresy IPv6 można określić w ten sam sposób. Prekursora @ można również używać do określania nazw hostów w ten sam sposób, ale nie można jednocześnie używać zarówno zdalnych adresów IP, jak i nazw hostów.

-s zazwyczaj wymusza na lsof wyświetlenie rozmiaru pliku. Ale w połączeniu z -ja flaga, -s działa inaczej. Zamiast tego pozwala użytkownikowi określić protokół i status polecenia do zwrócenia.

-p ogranicza lsof do określonego ID procesu (PID). Wiele PID można ustawić za pomocą commons, na przykład -p 123,456,789. Identyfikatory procesów można również wykluczyć za pomocą ^, jak w 123, ^ 456, co w konkretny sposób wyklucza PID 456.

-P wyłącza konwersję numerów portów na nazwy portów, przyspieszając produkcję.

-n wyłącza konwersję numerów sieci na nazwy hostów. Używane z -P powyżej, może znacznie przyspieszyć wyjście lsof.

-u użytkownik zwraca tylko polecenia należące do określonego użytkownika.

Przykłady

Podobnie jak netstat, zobaczenie kilku przykładów lsof pomoże przećwiczyć nasze zrozumienie.

lsof -nP [email protected]: 513

To złożone polecenie wyświetli listę wszystkich połączeń TCP z nazwą hosta lsof.itap i port 513. Uruchamia również lsof bez łączenia nazw z adresami IP i portami, dzięki czemu polecenie działa zauważalnie szybciej.

lsof -iTCP -sTCP: LISTEN

Spowoduje to zwrócenie każdego połączenia TCP ze statusem SŁUCHAĆ. To pokazuje wszystkie otwarte porty TCP na twoim Macu. Zawiera również listę procesów związanych z otwartymi portami. Jest to znacząca aktualizacja w stosunku do netstat, który wymienia maksymalnie PID.

sudo lsof -i -u ^ $ (whoami)

Zwraca wszystkie połączenia nie posiadany przez aktualnie zalogowanego użytkownika. To polecenie różni się nieco od pozostałych, więc podzielimy je szczegółowo.

Daszek ^ służy do negacji. Wszystko, co pasuje do tekstu po karetce zostanie usunięte z wyników. Otrzymujemy nazwę aktualnie zalogowanego użytkownika, uruchamiając kim jestem wewnątrz komendy lsof, otoczony $() aby umożliwić lsof dostęp do swoich danych wyjściowych jako tekst. Uruchamianie z sudo pozwala zobaczyć zadania, które nie należą do ciebie. Uruchomienie tego polecenia bez sudo zwróci pustą listę.

Inne polecenia sieciowe

Inne komendy sieciowe terminalu, które mogą zainteresować analizę sieci, to arp, ping i ipconfig.