Aller au contenu
🛠️ToolsShed

Netstat Commands Reference

Référence complète des commandes netstat et ss pour Linux, macOS et Windows avec exemples consultables.

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 est le remplacement moderne de netstat, offrant une sortie plus rapide et détaillée. Utilisez-le pour de meilleures performances sur les systèmes Linux.

À propos de cet outil

Netstat et ss sont des utilitaires en ligne de commande qui affichent les connexions réseau actives, les tables de routage, les statistiques d'interface et les informations de socket sur les systèmes Linux, macOS et Windows. Netstat a été le choix traditionnel pendant des décennies, mais ss (statistiques de socket) est le remplaçant moderne sur les systèmes Linux—il est plus rapide, plus lisible et affiche des informations détaillées sur l'état des sockets. Comprendre ces outils est essentiel pour que les administrateurs réseau diagnostiquent les problèmes de connectivité, identifient les applications utilisant les ressources réseau, surveillent l'activité des ports et localisent les connexions inattendues et les services d'écoute.

Ce guide de référence organise les commandes netstat et ss les plus utiles par tâche : vérifier les ports en écoute, afficher les connexions actives, trouver les ID de processus associés à l'activité réseau, analyser le trafic par protocole, lister tous les sockets dans différents états et surveiller les statistiques de l'interface réseau. Chaque commande est expliquée avec son objectif et son format de sortie typique, ce qui facilite la recherche de la syntaxe exacte dont vous avez besoin sans mémoriser des dizaines de drapeaux. Le format de recherche vous permet de filtrer rapidement par nom de commande, type de protocole ou cas d'utilisation—que vous dépanniez un service bloqué, auditez les ports ouverts pour la sécurité ou enquêtiez sur la consommation de bande passante.

Les administrateurs système, les ingénieurs DevOps et les professionnels de la sécurité s'appuient sur ces commandes au quotidien pour comprendre le comportement du réseau du système, détecter les conflits de ports, vérifier que les services écoutent correctement et identifier les accès réseau non autorisés. Que vous soyez nouveau avec ces outils ou ayez besoin d'un rappel rapide de la syntaxe correcte, cette référence économise du temps en fournissant des exemples réels et pratiques que vous pouvez copier et adapter immédiatement pour votre tâche spécifique de diagnostic ou de surveillance réseau.

Questions Fréquentes

Implémentation du Code

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.