porady i wskazówki dotyczące netstat

13

W tym samym stylu, co pytania „Przydatne wiersze poleceń” (dla Windows , Linux i Mac ), myślę, że przydałoby się mieć „użyteczne sposoby korzystania z pytań narzędzia x”. Strony podręcznika informują o tym, jakie parametry działają, ale niekoniecznie o tym, dlaczego ich użyjesz, co oznacza wynik, jakie użyteczne rzeczy robi polecenie, których nigdy nie poznasz bez obszernych eksperymentów lub jak uzyskać odpowiedź, której naprawdę chcesz.

Chciałbym wiedzieć o netstat . Wydaje się, że powinienem być w stanie ustalić, które procesy wykorzystują przepustowość, a nawet jak szybko system wykorzystuje przepustowość. Wygląda również na przydatne do wykrywania niechcianych połączeń (prawdopodobnie virii) i zapewnia wszelkiego rodzaju informacje o routingu (z którymi musiałem się bawić tylko, gdy próbowałem zmusić PDA Sharp Zaurus do korzystania z TCP / IP przez USB). Innymi słowy, to brzmi jak kopalnia złota i miałem nadzieję, że niektórzy z was podzielą się znalezionymi przez siebie bryłkami.

W odpowiedzi podaj wersję netstat i swój system operacyjny. Byłoby miło zobaczyć przykładowe wyniki i wiedzieć, co to znaczy. Oznacziłem to pytanie jako wiki społeczności i mam nadzieję, że zrobisz to samo w swoich odpowiedziach, aby inni ludzie, znając inny system operacyjny, mogli wydać prawie równoważne polecenie, jeśli wiedzą, w tej samej odpowiedzi i wtedy możemy głosować, które odpowiedzi są najbardziej przydatne.

Clinton Blackmore
źródło

Odpowiedzi:

4

Pokaż lokalne nasłuchujące porty TCP / UDP i proces, do którego należą:

sudo netstat -tulpn
cmcginty
źródło
4
Mac prawie równoważny wydaje się być „sudo lsof -i -n -P | grep LISTEN”. (Ommitting flag -n i -P spowoduje wyszukiwanie nazw hostów i portów).
Clinton Blackmore,
1
Clinton - to jedno fantastyczne polecenie.
SpacemanSpiff
3

Tabele routingu Netstat

[Zostało to przetestowane w systemie Mac OS X 10.5.7. Podejrzewam, że wynik jest prawie taki sam na wszystkich platformach, jak wskazano do pracy w systemie Solaris.]

netstat -r 

da ci tablicę routingu.

netstat -nr

jest taki sam, ale da ci surowe adresy IP zamiast wyszukiwania nazw komputerów. Jego dane wyjściowe wyglądają tak (tylko dłużej):

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.40.250     UGSc       19        1    en1
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH          1     3140    lo0
169.254            link#5             UCS         0        0    en1
169.254.33.92      127.0.0.1          UHS         0        0    lo0
192.168.40         link#5             UCS        11        0    en1
192.168.40.1       0:17:f2:ca:a0:94   UHLW        0        0    en1   1150
...

Internet6:
Destination                             Gateway                         Flags      Netif Expire
::1                                     link#1                          UHL         lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc          lo0
fe80::1%lo0                             link#1                          UHL         lo0
fe80::%en0/64                           link#4                          UC          en0
...
ff02::/32                               link#7                          UC          en2
ff02::/32                               link#8                          UC          en3

Kolumny:

Miejsce docelowe i brama: miejscem docelowym jest adres (lub zakres adresów), do którego możemy chcieć wysłać informacje. Wszystkie dane wysłane do tego miejsca docelowego trafią do powiązanej bramy. Brama wie, dokąd przesłać dane do następnego „przeskoku” w podróży. Jeśli chcemy wysłać dane do miejsca docelowego, które nie ma wpisu w tabeli routingu, przejdzie przez bramę domyślną.

Flagi: Strona man / info zawiera wszystkie flagi. Oto, co oznaczają ustawienia w mojej domyślnej bramie:

UGSc
U       - RTF_UP           Route usable
 G      - RTF_GATEWAY      Destination requires forwarding by intermediary
  S     - RTF_STATIC       Manually added
   c    - RTF_PRCLONING    Protocol-specified generate new routes on use

To ciekawe, że twierdzi, że jest dodawany ręcznie, ponieważ przeszedł przez DHCP.

Odsyłacze: „Pole refcnt podaje bieżącą liczbę aktywnych zastosowań trasy. Protokoły zorientowane na połączenie zwykle utrzymują jedną trasę przez czas trwania połączenia, podczas gdy protokoły bezpołączeniowe uzyskują trasę podczas wysyłania do tego samego miejsca docelowego.” (Strona podręcznika man)

Use: „Pole use podaje liczbę pakietów wysłanych tą trasą”.

Netif: „Wpis interfejsu wskazuje interfejs sieci używany dla trasy”.

Na moim komputerze Mac

  • lo0 to interfejs pętli zwrotnej.
  • en0 to ethernet.
  • en1 jest bezprzewodowy.
  • en2 i en3 są używane przez maszynę wirtualną.

Wygasają: na stronie podręcznika dla innej wersji netstat: „Wyświetla czas (w minutach) pozostały do ​​upływu trasy”.

Clinton Blackmore
źródło
2

W systemie Windows:

c:>netstat -a | find /c "TCP"
68

Pokazuje liczbę połączeń TCP / IP. Przydatne, jeśli rozwiązujesz problemy z wysokimi sieciami, w których brakuje portów TCP i potrzebujesz zwiększyć MaxUserPorts .

Christopher_G_Lewis
źródło
OS X 10.5.7 equiv: netstat -a | grep -c tcp
Clinton Blackmore
2

Szybkość transmisji / odbioru

Na Macu [OS X 10.5.7]:

netstat -i -w 10

[Zobacz odpowiedź Chucka na uwagi na temat używania w systemach Solaris i Linux.]

Dane wyjściowe wyglądają tak:

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
       794     0    1166796        763     0      50358     0
       789     0    1167773        765     0      52542     0
       792     0    1166548        765     0      51174     0
       796     0    1167262        598     0      40152     0
       929     0    1278561        846     0      65625     0
       563     0     815570        530     0      36828     0
        32     0       4360          1     0        774     0
         9     0        705          0     0        684     0
         9     0        631          0     0          0     0

To pokazuje, ile pakietów i bajtów zostało przesłanych w danym przedziale czasu. (10 sekund w tym przykładzie). Byłem połączony z youtube i pobierałem ponad 1 MB co interwał, dopóki nie zamknąłem karty przeglądarki i stawka spadła.

Może się to okazać przydatne, jeśli czekasz na zakończenie przesyłania lub pobierania. Monitoruj tempo, a gdy drastycznie spadnie, wiesz, że zostało to zrobione.

Zauważ, że powyższe polecenie pokazuje całą przepustowość na wszystkich interfejsach. Aby zawęzić zakres do konkretnego interfejsu (w tym przykładzie Wi-Fi), użyj -Iflagi, ponieważ:

netstat -I en1 -w 10
Clinton Blackmore
źródło
1

Windows:

Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Pokazuje aktywne połączenia TCP, ale brak aktywności UDP.

Netstat -an
  (Show all connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Wyświetla wszystkie aktywne połączenia TCP, a także nasłuchuje połączeń TCP i UDP. Nie pokazuje tutaj wychodzącej aktywności UDP.

Mikrofon
źródło
Na razie dodam komentarz, ale gdy będę mieć wystarczającą liczbę przedstawicieli, zmienię odpowiedź. netstat w ekwiwalencie Mac OS X 10.5.7 - dodaj -p tcp, aby był ograniczony do protokołu tcp. to znaczy. netstat -p tcp -nlubnetstat -p tcp -an
Clinton Blackmore
Inną przydatną parą przełączników w systemie Windows są -o (pokazuje PID będący właścicielem każdego gniazda) i -b (pokazuje nazwę procesu będącego właścicielem każdego gniazda). Szczególnie przydatny przy badaniu maszyn, które, jak podejrzewasz, zostały naruszone.
Murali Suriar
netstat -nt robi to samo (tylko numeryczne i tcp)
Jauder Ho
1

Windows

netstat -b

Wyświetl proces za pomocą połączenia

użytkownik640
źródło
1

Windows 7 (być może jednak wcześniejszy):

netstat -ano

wyświetla listę aktywnych sesji z powiązanymi PID

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING       1724

lub, aby zapisać krok

netstat -anb

(z podwyższonego monitu CMD) podaje nazwę procesu

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2048           0.0.0.0:0              LISTENING
TristanK
źródło
1

Jestem pewien, że odkrywam na nowo koło, ale tutaj jest prosty skrypt Perla do uruchamiania netstat i sortowania danych wyjściowych, tak aby obecnie najczęściej podłączone adresy IP były wyświetlane na górze. Najlepiej jest to stosować w programie „Watch” do aktualizacji w 2-sekundowych odstępach.

Aktualizacja: znaczące przepisanie 2013-02-11, aby pozbyć się wielu problemów i wyświetlić nazwy hostów

Przykładowe dane wyjściowe:

Distant inbound connections: 2
   85.93.216.17:772               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
   80.90.47.155:443               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
Distant outbound connections: 3
   80.90.63.61                    --> 80.90.63.48:25      :    2        smtp.m-plify.net                      2 x TIME_WAIT
   85.93.216.17                   --> 85.93.216.18:772    :    1        maya.m-plify.net                      1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
   127.0.0.1                      --> 127.0.0.1:9355      :   20                                              1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:4713      :   10                                             10 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:9353      :    9                                              4 x TIME_WAIT, 5 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:3306      :    8                                              6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:5445      :    5                                              1 x ESTABLISHED, 4 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:9354      :    2                                              2 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:7998      :    1                                              1 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:3351      :    1                                              1 x ESTABLISHED
   127.0.0.1                      --> 127.0.0.1:32000     :    1                                              1 x ESTABLISHED
David Tonhofer
źródło
0

Solaris:

netstat -nr
(displays routing table)
Milner
źródło
0

Z książki Wicked Cool Shell Scripts:

Skrypt # 90.1 : Co 'n' minut, zbieraj wartości netstats (przez crontab)

Skrypt 90.2 : Przeanalizuj uruchomiony dziennik wydajności netstat, identyfikując ważne wyniki i trendy.

(Uwielbiam tę książkę - warto ją kupić!)

gharper
źródło
0

W systemie Solaris wiele osób przyzwyczaja się do wykonywania polecenia „netstat -i 1” w celu uzyskania liczby uruchomionych pakietów. Linux netstat ma bezużyteczną wersję tej funkcji, ponieważ pokazuje surową liczbę, a nie różnicę. Aby uzyskać podobne wyniki, wykonaj „sar -n DEV 1 0”. Rozważmy w rzeczywistości „LANG = C sar -n DEV 1 0 | grep interfacename” (sar umieszcza czas z AM i PM na początku linii w niektórych lokalizacjach, więc najlepiej jest przyzwyczaić się do ciągłego działania ”LANG = C sar "na wypadek, gdybyś kiedykolwiek go przeanalizował).

Carlito
źródło
Aby uzyskać przykładowe dane wyjściowe i użycie komputera Mac, zobacz serverfault.com/questions/11289/netstat-tips-and-tricks/… .
Clinton Blackmore,
0

W systemie Solaris

netstat -k

Pokazuje podsumowanie różnych statystyk. Przydatny do sprawdzania błędów itp.

Jauder Ho
źródło
0

Ponieważ nikt jeszcze o tym nie wspomniał:

netstat -s 

zapewnia mnóstwo przydatnych statystyk według protokołu w systemie Linux.

dmourati
źródło