Pular para o conteúdo
🛠️ToolsShed

Netstat Commands Reference

Referência completa de comando netstat e ss para Linux, macOS e Windows com exemplos pesquisáveis.

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 é o substituto moderno para netstat, oferecendo saída mais rápida e detalhada. Use-o para melhor desempenho em sistemas Linux.

Sobre esta ferramenta

Netstat e ss são utilitários de linha de comando que exibem conexões de rede ativas, tabelas de roteamento, estatísticas de interface e informações de socket em sistemas Linux, macOS e Windows. Netstat tem sido a escolha tradicional por décadas, mas ss (estatísticas de socket) é o substituto moderno em sistemas Linux—é mais rápido, mais legível e mostra informações detalhadas do estado do socket. Entender essas ferramentas é essencial para administradores de rede diagnosticarem problemas de conectividade, identificarem quais aplicativos estão usando recursos de rede, monitorarem atividade de portas e rastrearem conexões inesperadas e serviços de escuta.

Este guia de referência organiza os comandos netstat e ss mais úteis por tarefa: verificar quais portas estão ouvindo, exibir conexões ativas, encontrar IDs de processo associados à atividade de rede, analisar tráfego por protocolo, listar todos os sockets em diferentes estados e monitorar estatísticas de interface de rede. Cada comando é explicado com seu propósito e formato de saída típico, facilitando encontrar a sintaxe exata de que você precisa sem memorizar dezenas de bandeiras. O formato pesquisável permite que você filtre rapidamente por nome de comando, tipo de protocolo ou caso de uso—seja resolvendo problemas de um serviço travado, auditando portas abertas por segurança ou investigando consumo de largura de banda.

Administradores de sistemas, engenheiros DevOps e profissionais de segurança confiam nesses comandos diariamente para entender o comportamento da rede do sistema, detectar conflitos de porta, verificar se os serviços estão escutando corretamente e identificar acesso de rede não autorizado. Seja você novo nessas ferramentas ou precise de um lembrete rápido da sintaxe correta, esta referência economiza tempo ao fornecer exemplos reais e práticos que você pode copiar e adaptar imediatamente para sua tarefa específica de diagnóstico ou monitoramento de rede.

Perguntas Frequentes

Implementação 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.