Há perguntas que qualquer administrador de sistemas faz todos os dias: que portos estão abertos nesta máquina? Que processo está a ocupar o porto 443? Quem está ligado a este servidor neste momento? Durante décadas, a resposta começava sempre da mesma forma — escrever netstat no terminal. É por isso que este comando continua a aparecer em manuais, exames de certificação, guias de resposta a incidentes e na memória muscular de gerações de profissionais.
Saber ler o netstat continua a ser uma competência essencial, por duas razões: ainda o vai encontrar instalado em muitos sistemas antigos, appliances e contentores; e a sua sintaxe tem uma tradução quase direta para as ferramentas modernas que o substituíram. Neste artigo explicamos as opções que realmente interessam, mostramos os equivalentes atuais e pomos tudo à prova num simulador interativo.
O que faz o netstat
O netstat apresenta o estado da rede do ponto de vista do próprio sistema: sockets TCP e UDP (à escuta e ligados), sockets unix de comunicação entre processos, a tabela de encaminhamento, estatísticas por interface e contadores por protocolo. Faz parte do pacote net-tools, um conjunto de utilitários que deixou de ter manutenção ativa há mais de duas décadas e que já não vem instalado por omissão nas distribuições recentes. O sucessor oficial é o pacote iproute2, com o ss para sockets e o ip para interfaces e rotas.
A forma geral do comando combina um eventual modo alternativo com filtros de protocolo e opções de apresentação:
netstat [modo: -r | -i | -s | -g] [protocolo: -t -u -x] [-l | -a] [-n] [-p] [-e] [-c]
Uma diferença técnica importante face ao ss: o netstat obtém os dados a percorrer ficheiros de texto em /proc/net, enquanto o ss consulta o kernel diretamente por netlink. Em máquinas com muitos milhares de sockets, essa diferença traduz-se em segundos contra milissegundos.
As opções que interessam
Escolher o protocolo: -t, -u e -x
-t— restringe a listagem a sockets TCP;-u— restringe a UDP. Repare que a coluna de estado fica vazia: o UDP não estabelece ligações, logo não tem estados;-x— mostra os sockets de domínio unix, usados para comunicação entre processos na mesma máquina. Não têm porto: identificam-se por um caminho no sistema de ficheiros, como/run/dbus/system_bus_socket.
O que listar: -l e -a
Sem estas opções, o netstat mostra apenas ligações estabelecidas — omite tudo o que está à escuta. -l inverte o filtro e lista só os serviços à escuta; -a mostra tudo: servidores e ligações ativas. Para responder à pergunta «que portos tem esta máquina abertos?», o comando é:
netstat -tln
Proto Recv-Q Send-Q Endereço local Endereço remoto Estado
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
Como apresentar: -n, -p, -e e -c
-n— modo numérico: não traduz portos para nomes de serviço nem resolve endereços por DNS. Sem esta opção, o comando pode ficar bloqueado à espera de respostas de resolução — inclua-a por hábito;-p— acrescenta o PID e o nome do processo dono de cada socket. Exige privilégios de root para ver processos de outros utilizadores; sem eles, a coluna aparece por preencher;-e— informação alargada: utilizador dono e inode do socket;-c— repete a listagem continuamente, segundo a segundo, até interromper com Ctrl+C.
A combinação mais famosa junta quase tudo isto num só comando — provavelmente o comando de diagnóstico de rede mais escrito da história do Linux, com tradução literal para o ss:
netstat -tulpn # clássico
ss -tulpn # equivalente moderno, mesmas letras, mesmo significado
Modos alternativos: -r, -i, -s e -g
Estas opções trocam a listagem de sockets por outras vistas do subsistema de rede:
-r— a tabela de encaminhamento do kernel. A rotadefault(ou0.0.0.0com-n) indica por onde sai o tráfego que não é local. Equivalente moderno:ip route;-i— estatísticas por interface: pacotes recebidos e enviados e, sobretudo, erros e descartes, os primeiros indícios de problemas físicos ou de congestão. Equivalente:ip -s link;-s— contadores acumulados por protocolo. Os segmentos TCP retransmitidos são o campo a vigiar numa rede com perdas. Equivalente:nstat -az, com a vantagem de mostrar diferenças entre leituras;-g— grupos multicast a que cada interface pertence. Equivalente:ip maddr.
E já agora, os restantes utilitários do net-tools também têm sucessores no iproute2: ifconfig deu lugar a ip addr, route add a ip route add e arp -a a ip neigh.
netstat em cibersegurança
Poucas ferramentas dão tanto retorno numa investigação de segurança com tão pouco esforço:
- Inventário de superfície de ataque —
netstat -tulpn(ouss -tulpn) responde de imediato à pergunta central do hardening: que serviços estão expostos e a que endereços? Um serviço à escuta em0.0.0.0está aberto a todas as redes; em127.0.0.1, só à própria máquina. Uma base de dados exposta a0.0.0.0sem necessidade é uma correção imediata. - Deteção de intrusões — durante a resposta a um incidente, um porto à escuta que não corresponde a nenhum serviço legítimo, ou uma ligação estabelecida para um endereço externo desconhecido, pode denunciar uma backdoor ou um canal de comando e controlo. Cruzar o PID devolvido por
-pcompse com o sistema de ficheiros é o passo seguinte natural. - Análise de ataques em curso — uma acumulação anormal de estados
SYN_RECVé o sintoma típico de um SYN flood; muitosCLOSE_WAITpersistentes apontam para uma aplicação que não fecha ligações. Os estados TCP contam a história do que se está a passar. - Forense em sistemas legados — em servidores antigos, appliances e imagens mínimas, o
netstatpode ser a única ferramenta disponível. Num cenário de compromisso, convém ainda lembrar que um atacante com root pode ter substituído o binário ou instalado um rootkit que esconde sockets — em forense séria, compara-se o resultado local com um varrimento externo.
Experimente no simulador interativo
O simulador abaixo reproduz um terminal Linux com um conjunto realista de sockets, rotas e interfaces. Clique nas opções (-t, -l, -n, -p, -r…) para as combinar e ver o resultado no ecrã, com a nota explicativa a acompanhar cada escolha; o painel «equivalente moderno» mostra sempre o comando ss ou ip correspondente. O botão «Demonstrar tudo» percorre automaticamente uma sequência guiada de exemplos, e os botões «Anterior»/«Seguinte» permitem avançar ao seu ritmo. No fim, abra a referência completa com a tabela de equivalências.
Erros comuns e boas práticas
- Esquecer o
-n— sem ele, o comando tenta resolver nomes por DNS e pode bloquear durante segundos, precisamente quando a rede está com problemas. - Correr sem privilégios e confiar no resultado — sem root, o
-pnão consegue identificar processos de outros utilizadores e a coluna fica vazia. Não é um erro do comando: repita comsudo. - Esquecer que o predefinido omite os servidores — sem
-lnem-a, onetstatsó mostra ligações estabelecidas. Um serviço à escuta pode passar despercebido por causa de uma letra. - Ignorar as colunas Recv-Q e Send-Q — filas a crescer indicam uma aplicação que não consome dados ou uma rede que não os escoa. É informação de diagnóstico valiosa que quase toda a gente salta.
- Escrever documentação nova com netstat — em scripts e procedimentos novos, use
sseip: estão em todas as distribuições atuais, são mais rápidos e continuam a evoluir. Guarde onetstatpara os sistemas onde é o único disponível.
Conclusão
O netstat é simultaneamente uma peça de história e uma ferramenta de trabalho: ensina a raciocinar sobre sockets, portos e estados TCP, e essa leitura transfere-se sem esforço para o ss e para o ip. Dominar o par clássico/moderno é meio caminho andado tanto para administrar sistemas como para os defender. Se quer levar estas competências mais longe — de auditorias de superfície de ataque a resposta a incidentes —, conheça a formação e a consultoria disponíveis no nosso catálogo de serviços. E se está a construir a sua base de administração Linux, veja também o artigo sobre o useradd.
Este artigo faz parte da série “Comandos Linux, um a um” do blog HJFR — fique atento aos próximos comandos.
