Netstat a fundo (parte 1)

Vejo muito amigos e até mesmo eu usando o comando NETSTAT para ver as conexões que um determinado host está abrindo com o mundo e vice-versa, porém poucos parâmetros desse comando são utilizados. Neste artigo veremos um resumo das principais opções do comando netstat, de forma a melhor aproveitá-lo no Linux.

[ Hits: 79.688 ]

Por: Thiago Rodrigues em 03/11/2008


O comando netstat



Bem,

Vejo muito amigos e até eu mesmo usando o comando netstat para ver as conexões que um determinado host está abrindo com o mundo e vice e versa, porém poucos parâmetros desse comando são utilizados.

Vou exibir novos artigos falando em específico da tratativa de algumas saídas do netstat, principalmente a de rotas e a de interfaces, onde podemos pegar muitos indícios de erro.

Vou tentar ser o mais objetivo possível e espero ajudar o máximo:

# netstat -a

Mostra todas as conexões do computador, incluindo todos os protocolos e sockets (TCP, UDP, RAW).

Conexões internet ativas (servidores e estabelecidas)

Proto Recv-Q Send-Q Endereço Local          Endereço Remoto         Estado
tcp        0      0 *:10050                 *:*                     OU
tcp        0      0 localhost:mysql         *:*                     OU
tcp        0      0 localhost:submission    *:*                     OU
tcp        0      0 *:netbios-ssn           *:*                     OU
tcp        0      0 *:pop3                  *:*                     OU
tcp        0      0 *:www                   *:*                     OU
tcp        0      0 *:ftp                   *:*                     OU
tcp6       0      0 [::]:ssh                [::]:*                  OU
tcp6       0    132 teste.com.br:ssh    adsl.com.br:4714   ESTABELECIDA
tcp6       0  11844 teste.com.br:ssh    adsl.com.br:2288   ESTABELECIDA
udp        0      0 volvo.nti.uf:netbios-ns *:*
udp        0      0 *:netbios-ns            *:*
udp        0      0 volvo.nti.u:netbios-dgm *:*
udp        0      0 *:netbios-dgm           *:*
udp        0      0 *:46237                 *:*
udp        0      0 localhost:snmp          *:*
udp        0      0 *:718                   *:*
udp        0      0 *:mdns                  *:*
udp        0      0 *:sunrpc                *:*
udp        0      0 *:35573                 *:*
Domain sockets UNIX ativos (servidores e estabelecidas)
Proto RefCnt Flags       Type       State         I-Node   Caminho
unix  2      [ ACC ]     STREAM     OUVINDO       14901    @ISCSIADM_ABSTRACT_NAMESPACE
unix  2      [ ACC ]     STREAM     OUVINDO       17267    @/var/run/dbus-z0P4AMwzz6
unix  2      [ ACC ]     STREAM     OUVINDO       17462    /var/run/gdm_socket
unix  2      [ ]         DGRAM                    6511     @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     OUVINDO       17311    @/org/bluez/audio
unix  16     [ ]         DGRAM                    15719    /dev/log
unix  2      [ ACC ]     STREAM     OUVINDO       17510    /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     OUVINDO       16234    /var/run/atieventsd.socket
unix  2      [ ]         DGRAM                    6667     @/org/kernel/udev/udevd
unix  2      [ ACC ]     STREAM     OUVINDO       16662    @/var/run/hald/dbus-GQ71iqMReW
unix  2      [ ACC ]     STREAM     OUVINDO       17265    /var/run/sdp
unix  2      [ ACC ]     STREAM     OUVINDO       16007    /var/run/avahi-daemon/socket

As opções -t, -u, -w e -x exibem as atividades dos protocolos TCP, UDP, RAW ou Unix Socket respectivamente. Então a combinação pode variar, conforme abaixo:
  • netstat -at (todas as conexões TCP)
  • netstat -au (todas as conexões UDP)
  • netstat -aw (todas as conexões RAW)
  • netstat -ax (todas as conexões Unix Socket)
  • netstat -aut (todas as conexões TCP e UDP)

E assim sucessivamente...

netstat -na

A opção acima é um dos mais interessantes ao meu ver, falando em especial do -n, que faz com que o comando não tente resolver nomes através de consulta ao DNS. Imagine um servidor onde temos milhares de conexões, se não usarmos o -n ficaríamos facilmente alguns bons minutos esperando o comando terminar por completo.

Pode-se combinar a vontade, como por exemplo: netstat -autn , netstat -axn etc.

netstat -r ou sem resolver nomes, netstat -nr

Exibe as rotas do seu computador, novamente, ao omitir a opção -n o comando tentará resolver todos os IPs para nome.

netstat -o

Mostra o temporizador da conexão, ou seja, a quanto tempo essa conexão está estabelecida, pode-se combinar a vontade: netstat -autno, netstat -axuo.

netstat -i

Exibe as informações de todas as interfaces ativas. Podemos ter estatísticas de erros de entrada/saída, assim com estatística de trafego.

netstat -c

Repete o comando ao final, muito útil para verificar o momento exato que uma conexão é estabelecia ou para ter noção do aumento de tráfego nas interfaces, ex.: netstat -ic , netstat -atnc.

netstat -e

Exibe uma lista mais completa. Deve ser combinado com as outras opções, como por exemplo o netstat -atne.

Com esse comando temos mais duas colunas, USER e INODE, ou seja, o usuário que subiu o processo que originou a abertura da porta e o INODE pertencente.

netstat -p

Exibe o daemon e o PID que estão ligados a essa porta, muito importante para detectarmos o daemon responsável.

netstat -s

Exibe as estatísticas dos protocolos, ou seja, quanto foi trafegado em cada protocolo. Podemos combinar para assim pegarmos a estatística de um determinado protocolo, ex.: netstat -st, netstat -su.

Acho que é isso, a principal idéia a ser passada com esse artigo, são as inúmeras combinações que podemos fazer para obter o resultado mais adequado.

Comentários são bem vindos.

Thiago Rodrigues - Miombo

   

Páginas do artigo
   1. O comando netstat
Outros artigos deste autor

Adicionando facilidades ao Samba

Leitura recomendada

Instalação automatizada de servidores com Kickstart (parte 2)

Uma pequena introdução ao Assembly para Linux

Utilização do x11vnc para administração remota de computadores Linux

Modificando a remasterização com Molecule - Sabayon completo, com KDE e GNOME

Ganhe uma camiseta do Viva o Linux ajudando o Viva o Android

  
Comentários
[1] Comentário enviado por andrade81 em 03/11/2008 - 15:18h

Muito bom !!!

[2] Comentário enviado por julianjedi em 03/11/2008 - 18:36h

Muito bom... bem objetivo

[3] Comentário enviado por cilmar_oliveira em 03/11/2008 - 23:11h

parabens pelo trabalho.....

[4] Comentário enviado por demoncyber em 04/11/2008 - 08:36h

Bom fico na expectativa da parte 2.....
Parabéns :)

[5] Comentário enviado por megatux em 04/11/2008 - 18:33h

Muito bom Thiago.
Só como complemento, uma opção que também vale salientar é a -l que mostrará todas as portas em estado "LISTEN" (ou "OUÇA"), útil para verficar se um serviço está operando, e quais portas estão aceitando conexão no respectivo servidor.
ex.:

#netstat -ntpl (não resolve nomes, apenas TCP, o PID responsável e as em estado Listen)
Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* OUÇA 2314/mysqld
tcp 0 0 0.0.0.0:111 0.0.0.0:* OUÇA 1960/portmap
tcp 0 0 0.0.0.0:113 0.0.0.0:* OUÇA 2442/inetd
tcp 0 0 0.0.0.0:21 0.0.0.0:* OUÇA 2601/proftpd: (acce
tcp 0 0 0.0.0.0:23 0.0.0.0:* OUÇA 2442/inetd
tcp 0 0 0.0.0.0:25 0.0.0.0:* OUÇA 2502/master
tcp 0 0 0.0.0.0:55131 0.0.0.0:* OUÇA 2552/rpc.statd
tcp6 0 0 :::2022 :::* OUÇA 2527/sshd
tcp6 0 0 :::80 :::* OUÇA 9022/apache2

Novamente, parabéns Thiago. O netstat é sem dúvida uma grande ferramenta de rede.

Abraço,
MegaTux

[6] Comentário enviado por miombo em 05/11/2008 - 10:48h

Obrigado Rodrigo,

Muito bom...

Vou adicionar na Parte II onde também pretendo falar mais sobre -i e -r.

Abraços.

Thiago

[7] Comentário enviado por f_Candido em 09/11/2008 - 00:21h

Legal, não tinha parado para pensar sobre o netstat.

Parabéns,

Abraços

[8] Comentário enviado por carlosxtec em 08/01/2009 - 02:42h

Estava procurando exatamente por isso!!!

Muito Massa!!! Valeu!

[9] Comentário enviado por linuxman ♱ em 13/11/2010 - 05:42h

Cara seu artigo esta muito fera obrigado por essa dedicação continue assim fera..

[10] Comentário enviado por joelpinheiro em 21/02/2013 - 09:53h

Prezados, dei um netstat -an | grep :21 e ele me mostrou o seguinte:

tcp 0 0 192.168.1.3:21 189.119.69.151:1161 ESTABELECIDA
tcp 0 61 192.168.1.3:21 187.58.83.191:1736 ESPERA_FIN1
tcp 0 0 192.168.1.3:21 177.19.112.126:11861 ESTABELECIDA


Alguém sabe me dizer o que significa ESPERA_FIN1? uma pessoa desse IP(187.58.83.191) tentou acessar meu ftp e fica carregando e não conecta.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts