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: 80.190 ]

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

Alta Disponibilidade (HA) com Debian (Heartbeat + DRBD + Mon)

Abrindo os logs automaticamte em consoles e monitorando-os pelo browser

Conseguindo o reembolso da licença do Microsoft Windows

Impressões de um neonato

Logrotate, uma importante ferramenta de administração dos logs do sistema

  
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