Debug de rede é a área onde cada utilitário faz o mesmo trabalho com sintaxe levemente diferente. netstat foi depreciado em favor do ss. dig, host, nslookup se sobrepõem. O route no macOS não é o route no Linux. Perguntar pelo que você quer, não pela ferramenta, contorna o problema todo.
1. Portas em escuta
clai
$ clai mostre todas as portas TCP em escuta com o nome do processo→ ss -ltnpState Recv-Q Local Address:Port ProcessLISTEN 0 0.0.0.0:22 users:(("sshd",pid=812))LISTEN 0 127.0.0.1:5432 users:(("postgres",pid=1234))
2. Conexões estabelecidas a um serviço
clai
$ clai quem está conectado no meu postgres→ ss -tnp 'sport = :5432'ESTAB 10.0.1.12:54322 10.0.1.50:5432 users:(("postgres",pid=1234))
3. Por que o DNS está lento
clai
$ clai trace por que o DNS de example.com resolve lento→ dig +trace +stats example.com;; Query time: 312 msec;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
O +stats é a metade que ninguém digita. Diferença entre eu sei que está lento e sei qual hop está lento.
4. Verificar MTU
clai
$ clai verifique o MTU até 8.8.8.8→ ping -M do -c 3 -s 1472 8.8.8.81480 bytes from 8.8.8.8: ttl=58 time=12.4 ms
-M do ativa o bit don't-fragment. Se 1472+8+20 = 1500 falha, sua MTU efetiva está abaixo do padrão.
5. Tabela de rotas — legível
clai
$ clai mostre a tabela de rotas em formato legível→ ip -4 route showdefault via 10.0.0.1 dev eth0 proto dhcp src 10.0.1.1210.0.0.0/16 dev eth0 proto kernel scope link src 10.0.1.12
Veja também
- Matar o processo na porta — quando a investigação de quem escuta diz o que parar.
- Docker e Kubernetes one-liners — quando o problema de rede está dentro do container, não no host.