Vai al contenuto
🛠️ToolsShed

Netstat Commands Reference

Riferimento completo dei comandi netstat e ss per Linux, macOS e Windows con esempi cercabili.

List all connections

netstat
netstat -a
ss (modern)
ss -a

List listening ports (TCP+UDP)

netstat
netstat -tuln
ss (modern)
ss -tuln

Show TCP connections

netstat
netstat -tn
ss (modern)
ss -tn

Show UDP connections

netstat
netstat -un
ss (modern)
ss -un

Show process PIDs

netstat
netstat -tulnp
ss (modern)
ss -tulnp

Linux/macOS may require root for PID visibility

Show routing table

netstat
netstat -r
ss (modern)
ip route

Show network statistics

netstat
netstat -s
ss (modern)
ss -s

Count connections by state

netstat
netstat -an | awk '{print $6}' | sort | uniq -c | sort -rn
ss (modern)
ss -tan | awk 'NR>1 {print $1}' | sort | uniq -c

Find process using a port

netstat
netstat -tulnp | grep :8080
ss (modern)
ss -tulnp | grep :8080

Replace 8080 with your port number

Show socket summary

netstat
netstat -i
ss (modern)
ss -i
ss è il moderno sostituto di netstat, offrendo un output più veloce e dettagliato. Usalo per migliori prestazioni sui sistemi Linux.

Informazioni sullo strumento

Netstat e ss sono utilità da riga di comando che visualizzano connessioni di rete attive, tabelle di instradamento, statistiche di interfaccia e informazioni sui socket su sistemi Linux, macOS e Windows. Netstat è stata la scelta tradizionale per decenni, ma ss (statistiche socket) è il moderno sostituto sui sistemi Linux—è più veloce, più leggibile e mostra informazioni dettagliate sullo stato del socket. Comprendere questi strumenti è essenziale per gli amministratori di rete per diagnosticare problemi di connettività, identificare quali applicazioni stanno utilizzando risorse di rete, monitorare l'attività delle porte e tracciare connessioni inaspettate e servizi in ascolto.

Questa guida di riferimento organizza i più utili comandi netstat e ss per attività: verificare quali porte sono in ascolto, visualizzare connessioni attive, trovare gli ID dei processi associati all'attività di rete, analizzare il traffico per protocollo, elencare tutti i socket in diversi stati e monitorare le statistiche dell'interfaccia di rete. Ogni comando è spiegato con il suo scopo e il formato di output tipico, rendendo facile trovare la sintassi esatta di cui hai bisogno senza dover memorizzare dozzine di flag. Il formato ricercabile ti consente di filtrare rapidamente per nome di comando, tipo di protocollo o caso d'uso—sia che tu stia risolvendo problemi di un servizio sospeso, controllando le porte aperte per la sicurezza o investigando il consumo di larghezza di banda.

Gli amministratori di sistema, gli ingegneri DevOps e i professionisti della sicurezza si affidano quotidianamente a questi comandi per comprendere il comportamento della rete del sistema, rilevare conflitti di porta, verificare che i servizi stiano ascoltando correttamente e identificare accessi di rete non autorizzati. Sia che tu sia nuovo a questi strumenti o che tu abbia bisogno di un rapido promemoria della sintassi corretta, questo riferimento ti fa risparmiare tempo fornendo esempi reali e pratici che puoi copiare e adattare immediatamente per il tuo specifico compito di diagnosi o monitoraggio della rete.

Domande Frequenti

Implementazione del Codice

import subprocess
import platform

def run_netstat(args: list[str]) -> str:
    """Run netstat command and return output."""
    try:
        result = subprocess.run(["netstat"] + args, capture_output=True, text=True, timeout=10)
        return result.stdout
    except FileNotFoundError:
        # Try ss on Linux if netstat not found
        if platform.system() == "Linux":
            result = subprocess.run(["ss"] + args, capture_output=True, text=True, timeout=10)
            return result.stdout
        return "netstat not found"

# Show all listening TCP ports
print("=== Listening TCP ports ===")
system = platform.system()
if system == "Linux":
    print(run_netstat(["-tlnp"]))   # or ss -tlnp
elif system == "Darwin":  # macOS
    print(run_netstat(["-an", "-p", "tcp"]))
elif system == "Windows":
    print(run_netstat(["-ano", "-p", "TCP"]))

# Parse listening ports
def get_listening_ports() -> list[dict]:
    """Parse ss output on Linux to get listening ports."""
    result = subprocess.run(["ss", "-tlnp"], capture_output=True, text=True)
    ports = []
    for line in result.stdout.splitlines()[1:]:
        parts = line.split()
        if len(parts) >= 4 and parts[0] == "LISTEN":
            ports.append({"state": parts[0], "local": parts[3], "process": parts[6] if len(parts) > 6 else ""})
    return ports

if system == "Linux":
    for p in get_listening_ports():
        print(p)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.