netstat
netstat è un comando utilizzato nei sistemi operativi Unix-like e Windows serie NT, per visualizzare lo stato delle connessioni instaurate sul computer locale.
Il file relativo a tale comando è un eseguibile essenziale di sistema e pertanto si trova nella cartella /bin (seguendo lo standard FHS) ed è di proprietà dell'utente root.
Attivato come servizio di rete rimane in ascolto sulla porta 15/tcp (vedere /etc/services).
Esempio di utilizzo
Se eseguito senza dare opzioni visualizza lo stato dei socket attivi, un esempio può essere:
kaos@kaos:~$ netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 proxy.surfnet.iac:33297 mg-in-f125.:xmpp-client ESTABLISHED tcp 0 0 proxy.surfnet.iac:33995 by1msg5176516.phx.:1863 ESTABLISHED Active UNIX ___domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 3 [ ] DGRAM 13826 /dev/log unix 2 [ ] DGRAM 5109 @/org/kernel/udev/udevd unix 2 [ ] DGRAM 10443 @/org/freedesktop/hal/udev_event unix 3 [ ] STREAM CONNECTED 34721 /tmp/orbit-kaos/linc-4876-0-ebf915e300c0 unix 3 [ ] STREAM CONNECTED 34720
Analisi dell'output
Come si vede dal suindicato esempio, netstat classifica i tipi di socket:
- Active Internet connection, come tcp e udp
- Active UNIX ___domain sockets
- Active IPX sockets
- Active NET/ROM sockets
- Active AX.25 sockets
Campi importanti sono:
- Proto: indica il nome del protocollo
- Local Address: l'indirizzo IP del computer locale insieme al numero di porta usato
- Foreign Address: l'indirizzo IP e il numero di porta al quale il socket è connesso
- State: stato della connessione
È possibile inoltre vedere il tipo del socket:
- DGRAM se si tratta di udp
- STREAM se si tratta di tcp
Opzioni del comando
Opzioni importanti sono:
- -a: che permette di vedere anche lo stato dei socket non attivi
- -t: che permette di vedere lo stato dei socket tcp
- -u: che permette di vedere lo stato dei socket udp
- -l: restituirà solo la lista dei servizi in ascolto (listening)
- -r: che permette di vedere la tabella di routing (restituisce lo stesso output del comando route)
- -n: mostra gli indirizzi numerici (invece di quelli simbolici) degli host e delle porte
- -p: che permette di vedere il nome del programma e il relativo PID che ha instaurato una connessione (deve essere dato dall'utente root)
- -o: permette di vedere i PID (identificatori processo)
Per ulteriori dettagli visualizzare da shell di Linux la man page di netstat tramite il comando man netstat
.