Netstat

A netstat (network statistics, hálózati statisztika) egy parancssori eszköz, amely megjeleníti a hálózati kapcsolatokat (kimenő és bejövő kapcsolatot egyaránt), az irányítótáblákat, és más egyéb hálózati statisztikákat. Az alkalmazás elérhető Unix, Unix-szerű, és Windows NT alapú operációs rendszereken. Hálózati problémák megtalálására, továbbá a hálózat forgalmának és teljesítményének mérésére használják.[1]

Paraméterek

Az ehhez a parancshoz használt paramétereket kötőjel (-) előzi meg, ritkábban pedig perjel (/).

  • -a: megjelenít minden aktív kapcsolatot, illetve azokat a TCP és UDP portokat, amelyeken a számítógép „fülel”.
  • -b: megjeleníti azon bináris (futtatható) programok nevét, amelyek beleavatkoztak a kapcsolatok létrejöttébe, vagy „fülelnek” egy porton. Mac OS X rendszeren, ha ezt kombináljuk a -i kapcsolóval, megkapjuk a forgalmazott byte-k mennyiségét.
  • -e: megjeleníti az ethernet statisztikákat, mint pl. a küldött és fogadott bájtok mennyiségét. Ez a paraméter kombinálható a -s kapcsolóval.
  • -f: megjeleníti az idegen címek teljesen minősített tartományneveit (fully qualified domain names, FQDN). (Csak a Windows Vista, vagy újabb operációs rendszeren érhető el.)
  • -g: megjeleníti az IPv4 és IPv6 multicast csoporttagság-információit. (Csak újabb operációs rendszereken.)
  • -i: megjeleníti a hálózati interfészeket, és azok statisztikáit. (Nem elérhető Windows alatt.)
  • -n: megjeleníti az aktív TCP kapcsolatokat, ugyanakkor a címek és portszámok numerikusan kerülnek kijelzésre, semmiképp nem határozza meg azok neveit.
  • -m: megjeleníti a STREAM statisztikákat.
  • -o: megjeleníti az aktív TCP kapcsolatokat, és a kapcsolatokhoz tartozó folyamatok ID (PID) számát is. A PID alapján megtalálható az alkalmazás a Windows Feladatkezelő Folyamatok fülén. A paraméter kombinálható a -a, -n és -p kapcsolókkal is. A paraméter elérhető Microsoft Windows CP, Server 2003 (és Server 2000, egy hotfix[2] alkalmazásával) alatt.
  • -p: Windows és BSD: megjeleníti a kapcsolatokat a protokollok alapján jellemezve. Jelen esetben a protokoll lehet TCP, UDP, TCPv6, vagy UDPv6.
  • -p: Linux: megjeleníti, hogy melyik csatlakozót melyik folyamat használja (hasonló, mint a -b kapcsoló Windows alatt) (csak rootként hajtható végre).
  • -p: Solaris: megjeleníti a kapcsolatokat a protokollok alapján jellemezve. Jelen esetben a protokoll lehet IP, IPv6, ICMP, ICMPv6, IGMP, UDP, TCP, vagy RAWIP.
  • -r: megjeleníti az IP irányító tábla(útválasztó tábla tartalmát (megegyezik a route print paranccsal Windows alatt).
  • -s: megjeleníti a protokollokra vetíthető statisztikákat. Alapértelmezetten a TCP, UDP, ICMP, és IP protokollok statisztikái jelennek meg. Ha a Windows XP-re az Ipv6 protokoll telepítve van, IPv6-on keresztül kapjuk meg a TCP és UDP statisztikáit, továbbá megjelenik az ICMPv6 és az IPv6 protokoll statisztikája is. A -p kapcsolóval beállíthatjuk, hogy mely protokollokra vonatkozva kapjuk meg a jelentést.
  • -v: amikor együtt használják a -b kapcsolóval, megjeleníti a kapcsolat létrehozásában szerepet játszó, vagy a porton „fülelő” alkalmazások sorát.
  • Intervallum: újra megjeleníti a kiválasztott információkat minden intervallum-másodpercben. A CTRL+C megnyomásával megállítható a folyamatos kijelzés. Ha a paraméter el lett hagyva, a netstat csak egyszer jeleníti meg az információkat.
  • -h (unix) /? (windows) : megjeleníti a súgófájlt a parancssorban.

Lekérhető statisztikák

A netstattal a következő statisztikákat kérhetjük le:

  • Proto – a protokoll neve (TCP vagy UDP)
  • Local Address – a helyi számítógép IP címe, és a port száma, amely ezt a címet használja. A helyi számítógép neve megfelel az IP címnek és a portszámnak, kivéve ha a -n kapcsoló is meg lett adva. Ha a port még nem megállapított, a port száma csillaggal van helyettesítve.
  • Foreign Address – a távoli számítógép IP címe, és portszáma, amelyhez csatlakozó kapcsolódik. A távoli számítógép neve megfelel az IP címnek és a portszámnak, kivéve ha a -n kapcsoló is meg lett adva. Ha a port még nem megállapított, a port száma csillaggal van helyettesítve.
  • State – jelzi a TCP kapcsolat állapotát. A lehetséges állapotok a következők: CLOSE_WAIT, CLOSED, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, LAST_ACK, LISTEN, SYN_RECEIVED, SYN_END és TIME_WAIT. A TCP kapcsolat állapotairól további információk az RFC 793 alatt találhatóak.

A kijelzett állapotok listája:[3]

    • SYN_SEND vagy SYN_SENT (SYN_KÜLDÉS): Aktív nyitás: a gazdagépen futó alkalmazás összeköttetés létesítését kezdeményezte.
    • SYN_RECEIVED SYN_FOGADÁS): A szerver felé SYN, azaz összeköttetési kérés érkezett. A kapcsolat nyugtázásra vár.
    • ESTABLISHED (ÉLŐ / LÉTREHOZVA): A kliens megkapta a szerver SYN-jét, a kapcsolat kiépült. A normális adatátvitel állapota.
    • LISTEN (FIGYEL): A gazdagépen futó szerverprogram várakozó állapotban van, kész a kapcsolatok fogadására.
    • FIN_WAIT_1 (FIN_VÁRÁS_1): Aktív lezárásra utal: a portot kezelő alkalmazás bejelentette, hogy nincs szüksége tovább a kapcsolatra.
    • TIME_WAIT vagy TIMED_WAIT (IDŐZÍTETT_VÁRÁS): A kliens ebbe a státuszba kerül aktív lezárás után. A kapcsolat vár, hogy az összes csomag kihaljon.
    • CLOSE_WAIT (LEZÁRÁS_VÁRÁS): Passzív lezárásra utal, a szerver megkapta az első FIN-t a klienstől. A kapcsolat a TCP architektúra magasabb szintjén lévő alkalmazástól várja a kapcsolat bontását.
    • FIN_WAIT_2 (FIN_VÁRÁS_2): A kliens megkapta a visszaigazolást a szervertől az első FIN-jéről.
    • LAST_ACK (UTOLSÓ_NYUGTA): A szerver elküldte a saját FIN-jét, vár, míg az összes csomag meg nem hal.
    • CLOSED (LEZÁRT): Nincs összeköttetés. Véges állapotú gép esetében ez az állapot a kezdő állapot. Minden összeköttetés ebből az állapotból indul.

Példák

A TCP vagy UDP protokollok statisztikájának megtekintéséhez üsse be az alábbi parancsok közül az egyiket:

netstat -sp tcp
netstat -sp udp

Az aktív TCP kapcsolatok, és folyamatok azonosítójának 5 másodpercenként frissülő listájáért üsse be az alábbi parancsot (Microsoft Windows esetén csak XP és 2003 alatt működik, illetve a hotfix-el ellátott Windows 2000-n):

netstat -o 5

Mac OS X verzió:

netstat -w 5

Az aktív TCP kapcsolatok, és folyamatok azonosítójának numerikus listájáért a következő parancsot üsse be (Microsoft Windows esetén csak XP és 2003 alatt működik, illetve a hotfix-el ellátott Windows 2000-n):

netstat -no

Az összes, folyamat által megnyitott port listája a folyamatok ID PID-jével előhívható az alábbi paranccsal:

netstat -ao | grep ”pid”

Hiányossága

A netstat néhány verziójából hiányzik a határozott elválasztó a printf-alapú kimenetben, így a numerikus mezők egybefolynak, és a kimeneti adat megsérül.

Platformspecifikus észrevételek

Linux alatt a nyers adatok gyakran megszerezhetőek a /proc/net/dev könyvtárból, így megkerülhető a printf-kimenet által generált adatsérülés.

Windows platformon a netstat információak elérhetőek a GetTcpTable és a GetUdpTable funkciók meghívásával az IP Helper API-ban, vagy az IPHLPAPI.DLL-ben. Az így kapott információ tartalmazza a helyi és távoli számítógép IP-címeit, helyi és távoli portjait, és (a GetTcpTable-l) a TCP státusz kódjaik. Mellékesen a parancssoros netstat.exe eszköz a Windows-al együtt érkezik, de elérhetőek GUI alapú netstat programok is. Ugyancsak Windows alatt a parancs csak akkor érhető el, ha az Internet Protokoll (TCP/IP) a Hálózati Kapcsolatok részénél telepítve lett a hálózati eszközhöz.

Mac OS X 10.5 esetén az -o kapcsoló nem elérhető. Az ezen verziójú OS X alatt az /Applications/Utilities mappa tartalmaz egy hálózati kiegészítő programot, a Network Utility-t, amely Netstat opciója egy GUI-val rendelkező eszköz, Ping, Lookup, Traceroute, Whois, Finger és Port Scan lehetőségekkel.

Kapcsolódó szócikkek

  • lsof -i
  • ss[halott link] – egy eszköz, amely a csatlakozók vizsgálatára szolgál az iproute2-ből; gyakorlatilag a netstat helyettesítője

Jegyzetek

További információk