Saltar al contenido
🛠️ToolsShed

Netstat Commands Reference

Referencia completa de comandos netstat y ss para Linux, macOS y Windows con ejemplos buscables.

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 es el reemplazo moderno de netstat, ofreciendo una salida más rápida y detallada. Úsalo para obtener mejor rendimiento en sistemas Linux.

Acerca de esta herramienta

Netstat y ss son utilidades de línea de comandos que muestran conexiones de red activas, tablas de enrutamiento, estadísticas de interfaz e información de sockets en sistemas Linux, macOS y Windows. Netstat ha sido la opción tradicional durante décadas, pero ss (estadísticas de socket) es el reemplazo moderno en sistemas Linux—es más rápido, más legible y muestra información detallada del estado del socket. Entender estas herramientas es esencial para que los administradores de redes diagnostiquen problemas de conectividad, identifiquen qué aplicaciones utilizan recursos de red, monitoreen actividad de puertos y localicen conexiones inesperadas y servicios de escucha.

Esta guía de referencia organiza los comandos netstat y ss más útiles por tarea: verificar qué puertos están escuchando, ver conexiones activas, encontrar ID de procesos asociados con actividad de red, analizar tráfico por protocolo, listar todos los sockets en diferentes estados y monitorear estadísticas de interfaz de red. Cada comando se explica con su propósito y formato de salida típico, lo que facilita encontrar la sintaxis exacta que necesitas sin memorizar docenas de banderas. El formato que se puede buscar te permite filtrar rápidamente por nombre de comando, tipo de protocolo o caso de uso—ya sea que estés solucionando problemas de un servicio colgado, auditando puertos abiertos por seguridad o investigando el consumo de ancho de banda.

Los administradores de sistemas, ingenieros de DevOps y profesionales de seguridad confían en estos comandos diariamente para comprender el comportamiento de la red del sistema, detectar conflictos de puertos, verificar que los servicios estén escuchando correctamente e identificar accesos de red no autorizados. Ya seas nuevo en estas herramientas o necesites un recordatorio rápido de la sintaxis correcta, esta referencia ahorra tiempo al proporcionar ejemplos reales y prácticos que puedes copiar y adaptar inmediatamente para tu tarea específica de diagnóstico o monitoreo de red.

Preguntas Frecuentes

Implementación de Código

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.