Comandos Linux para networking: "netstat"

O comando netstat é uma ferramenta essencial de diagnóstico de rede que fornece uma visão abrangente da actividade de rede de um sistema. Este comando ajuda a visualizar conexões de rede activas, inspecionar tabelas de encaminhamento e recolher estatísticas de interface em tempo real. Estes são os aspectos que tornam o netstat inestimável para monitorar conexões activas, diagnosticar falhas de desempenho e solucionar uma ampla gama de problemas relacionados à rede.
 
Correr apenas o comando netstat resulta em uma saída que lista conexões activas à Internet, que referem-se a sessões de rede TCP/UDP activas entre o máquina local e hosts remotos através de redes IP (como navegação na Web ou SSH) e os sockets de domínio UNIX activos, que referem-se a canais de comunicação entre processos (IPC) e aplicações em execução na mesma máquina local, usando sockets do sistema de ficheiros em vez de protocolos de rede. Vejamos abaixo. 
 
Do comando acima, temos para as conexões activas à Internet, os campos:
  • Proto - protocolo usado pela conexão (TCP ou UDP).
  • Recv-Q - quantidade de dados na fila de receção (bytes à espera de serem processados pela aplicação).
  • Send-Q - quantidade de dados na fila de envio (bytes à espera de confirmação pelo host remoto).
  • Local Address - endereço IP e o número da porta da máquina local para a ligação.
  • Foreign Address - endereço IP e o número da porta da máquina remota para a ligação.
  • State - o estado atual da conexão (LISTEN, ESTABLISHED, TIME_WAIT).
E para as conexões activas no domínio UNIX, temos os campos:
  • Proto - o protocolo, que para sockets UNIX, o valor é sempre unix.
  • RefCnt número de processos atualmente ligados a este socket.
  • Flags - Sinalizadores de socket (por exemplo, SO_ACCEPTON para sockets de escuta).
  • Type - o tipo de socket.
  • State - o estado atual da conexão (LISTENING, CONNECTED, DISCONNECTED).
  • I-Node - O número do inode do ficheiro socket no sistema de ficheiros.
  • Path caminho do sistema de ficheiros do ficheiro socket (se houver).
Usamos a opção -n ou --numeric para exibir conexões activas apresentando seus endereços númericos. 

 A opção -a ou --all ajuda-nos a obter a lista de todas conexões abertas (TCP e UDP, em escuta e estabelecida).

Podemos também filtrar, obter apenas conexões TCP usando a opção -t ou --tcp e conexões UDP usando a opção -u ou --udp, ou a combinação das duas (-tu ou -ut).
 

 
O filtro entende-se também para conexões usando IPv6, usando a opção -at6 ou -au6.

Mostrar serviços a espera de coxeção, ou então portas em modo de escuta (LISTENING), usando a opção -l ou --listening.

A opção -p ou --program ajudanos a exibir o ID do processo (PID) e o nome do programa associado às conexões.

Mostrar a tabela de roteamento do kernel, usando a opção -r ou --route.

Verificar as estatísticas das interfaces de rede usando a opção -i ou --interfaces.

Exibir estatísticas detalhadas da interface (-ie).
 
Mostrar portas TCP e UDP em escuta (-tunl).
 
Listar todas as portas abertas juntamente com os nomes dos processos (-tupln).

Mostrar ligações TCP e UDP activas com nomes de processos (-tupan).

Listar apenas conexões activas do domínio UNIX (-ax).

Note que, por exemplo a combinação -tupan não precisa seguir exactamente esta ordem, pode ser -tuapn, -tnapu ou qualquer outra ordem. Outro facto que podemos notar é que para obtermos todos processo na saída caso se use a opção -p, deve-se correr o comando netstat com privilégios SUDO.

Comentários