Netstat
Nei sistemi Unix-like e Windows serie NT, il comando netstat permette di vedere 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.
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
Come si vede dal breve 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 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
- -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)
Attivato come servizio di rete rimane in ascolto sulla porta 15/tcp (vedere /etc/services).
Per ulteriori dettagli visualizzare la man page di netstat tramite il comando man netstat
.