it-swarm-pt.tech

dicas e truques do netstat

Na mesma linha das perguntas "Linha de comando útil" (para Windows , Linux e Mac ), acho que seria útil ter "maneiras úteis de usar o utilitário x". As páginas de manual informam o que parâmetros fazem, mas não necessariamente por que você os usaria, o que significa o resultado, que coisas úteis o comando faz que você nunca saberia sem uma experimentação extensiva ou como obter a resposta que realmente deseja.

Gostaria de saber sobre netstat . Parece que eu seria capaz de descobrir quais processos estão usando largura de banda e, de fato, com que rapidez o sistema está usando largura de banda. Também parece útil para detectar conexões indesejadas (provavelmente virii) e fornece todos os tipos de informações de roteamento (com as quais eu só tinha que brincar ao tentar criar um Sharp Zaurus PDA use TCP/IP por USB.) Em outras palavras, parece uma mina de ouro, e eu esperava que alguns de vocês compartilhassem pepitas de informações encontradas.

Inclua a versão do netstat e do seu sistema operacional na sua resposta. Seria bom ver um exemplo de saída e saber o que isso significa. Marquei esta pergunta como wiki da comunidade e espero que você faça o mesmo em suas respostas, para que outras pessoas, conhecendo um sistema operacional diferente, possam executar um comando quase equivalente se souberem, na mesma resposta, e então podemos votar em quais respostas são as mais úteis.

13
Clinton Blackmore

Mostrar portas TCP/UDP de escuta local e o processo ao qual elas pertencem:

Sudo netstat -tulpn
4
cmcginty

Tabelas de roteamento Netstat

[Isso foi testado no Mac OS X 10.5.7. Suspeito que o resultado seja quase o mesmo em todas as plataformas, pois foi indicado para trabalhar no Solaris.]

netstat -r 

lhe dará uma tabela de roteamento.

netstat -nr

é o mesmo, mas fornecerá IPs brutos em vez de procurar nomes de máquinas. Sua saída fica assim (apenas mais):

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.40.250     UGSc       19        1    en1
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH          1     3140    lo0
169.254            link#5             UCS         0        0    en1
169.254.33.92      127.0.0.1          UHS         0        0    lo0
192.168.40         link#5             UCS        11        0    en1
192.168.40.1       0:17:f2:ca:a0:94   UHLW        0        0    en1   1150
...

Internet6:
Destination                             Gateway                         Flags      Netif Expire
::1                                     link#1                          UHL         lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc          lo0
fe80::1%lo0                             link#1                          UHL         lo0
fe80::%en0/64                           link#4                          UC          en0
...
ff02::/32                               link#7                          UC          en2
ff02::/32                               link#8                          UC          en3

Colunas:

Destino e gateway: O destino é um endereço (ou intervalo de endereços) para o qual podemos enviar informações. Todos os dados enviados para esse destino irão para o gateway associado. O gateway sabe para onde enviar os dados para o seu próximo 'salto' na jornada. Se desejarmos enviar dados para um destino que não tem entrada na tabela de roteamento, eles passarão pelo gateway padrão.

Sinalizadores: A página man/info lista todos os sinalizadores. Aqui estão o que as configurações no meu gateway padrão significam:

UGSc
U       - RTF_UP           Route usable
 G      - RTF_GATEWAY      Destination requires forwarding by intermediary
  S     - RTF_STATIC       Manually added
   c    - RTF_PRCLONING    Protocol-specified generate new routes on use

É curioso que ele alega ser adicionado manualmente, pois veio do DHCP.

Refs: "O campo refcnt fornece o número atual de usos ativos da rota. Os protocolos orientados à conexão normalmente mantêm uma única rota pela duração de um conexão enquanto protocolos sem conexão obtêm uma rota ao enviar para o mesmo destino ". (Página de manual)

Use: "O campo use fornece uma contagem do número de pacotes enviados usando essa rota."

Netif: "A entrada da interface indica a interface de rede utilizada para a rota."

No meu Mac,

  • lo0 é a interface de loopback.
  • en0 é ethernet.
  • en1 é sem fio.
  • en2 e en3 são usados ​​por uma máquina virtual.

Expira: De uma página de manual para uma versão diferente do netstat: "Exibe o tempo (em minutos) restante antes que a rota expire."

3
Clinton Blackmore

No windows:

c:>netstat -a | find /c "TCP"
68

Mostra o número de conexões TCP/IP. Útil se você estiver solucionando problemas de sistemas de alta rede que estão ficando sem portas TCP e precisam aumentar MaxUserPorts ).

2
Christopher_G_Lewis

Verifique Página Netstat do CommandLineF para obter algumas maneiras úteis de usar o netstat no bash.

2
andyhky

Taxa de transmissão/recepção

No Mac [OS X 10.5.7]:

netstat -i -w 10

[Consulte resposta de chuck para obter notas sobre o uso no Solaris e Linux.]

A saída é assim:

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
       794     0    1166796        763     0      50358     0
       789     0    1167773        765     0      52542     0
       792     0    1166548        765     0      51174     0
       796     0    1167262        598     0      40152     0
       929     0    1278561        846     0      65625     0
       563     0     815570        530     0      36828     0
        32     0       4360          1     0        774     0
         9     0        705          0     0        684     0
         9     0        631          0     0          0     0

Isso mostra quantos pacotes e bytes foram transferidos em um determinado intervalo de tempo. (10 segundos neste exemplo). Eu estava conectado ao youtube e estava baixando mais de 1 MB a cada intervalo, até fechar a guia do navegador e a taxa chegar ao fundo do poço.

Isso pode ser útil se você estiver aguardando o término de um upload ou download. Monitore a taxa e, quando cair drasticamente, você sabe que está feito.

Observe que o comando acima mostra todo o rendimento em todas as interfaces. Para definir o escopo para uma interface específica (WiFi neste exemplo), use o -I flag, assim:

netstat -I en1 -w 10
2
Clinton Blackmore

Janelas:

Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Mostra conexões ativas TCP, mas nenhuma atividade UDP.

Netstat -an
  (Show all connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Mostra todas as conexões ativas TCP, assim como escuta TCP e conexões UDP. Não mostra a atividade UDP de saída aqui.

1
Mike

Windows 7 (possivelmente desde antes):

netstat -ano

lista sessões ativas com PIDs associados

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING       1724

ou para salvar uma etapa

netstat -anb

(de um prompt CMD elevado) fornece o nome do processo

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2048           0.0.0.0:0              LISTENING
1
TristanK

Tenho certeza de que estou reinventando a roda, mas aqui está um script Perl simples para executar o netstat e classificar a saída para que os IPs atualmente conectados na maior parte sejam os principais. É melhor usado com o programa 'watch' para atualizações em intervalos de 2 segundos.

Atualização: reescrita significativa 11-02-2013 para se livrar de muitos problemas e exibir nomes de host

Saída de amostra:

Distant inbound connections: 2
   85.93.216.17:772               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
   80.90.47.155:443               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
Distant outbound connections: 3
   80.90.63.61                    --> 80.90.63.48:25      :    2        smtp.m-plify.net                      2 x TIME_WAIT
   85.93.216.17                   --> 85.93.216.18:772    :    1        maya.m-plify.net                      1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
   127.0.0.1                      --> 127.0.0.1:9355      :   20                                              1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:4713      :   10                                             10 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:9353      :    9                                              4 x TIME_WAIT, 5 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:3306      :    8                                              6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:5445      :    5                                              1 x ESTABLISHED, 4 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:9354      :    2                                              2 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:7998      :    1                                              1 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:3351      :    1                                              1 x ESTABLISHED
   127.0.0.1                      --> 127.0.0.1:32000     :    1                                              1 x ESTABLISHED
1
David Tonhofer

Janelas

netstat -b

Exiba o processo usando a conexão

1
user640

Solaris:

netstat -nr
(displays routing table)
0
Milner

Do livro de scripts Wicked Cool Shell:

Script # 90.1 : A cada 'n' minutos, pegue os valores de netstats (via crontab)

Script nº 90.2 : analisa o log de desempenho de execução do netstat, identificando resultados e tendências importantes.

(Adoro este livro - vale a pena comprar!)

0
gharper

Desde que ninguém mencionou ainda:

netstat -s 

fornece uma tonelada de estatísticas úteis por protocolo no linux.

0
dmourati

No Solaris, muitas pessoas estão acostumadas a fazer "netstat -i 1" para obter uma contagem de pacotes em execução. O netstat do Linux possui uma versão inútil desse recurso, pois mostra a contagem bruta e não um delta. Para obter resultados semelhantes, faça "sar -n DEV 1 0". Considere, na verdade, "LANG = C sar -n DEV 1 0 | grep nome da interface" (sar coloca o horário com AM e PM no início da linha em determinados locais), por isso é melhor obter o hábito de sempre executar "LANG = C sar", caso você o analise).

0
carlito

No Solaris,

netstat -k

Mostra um resumo de várias estatísticas. Útil para verificar erros, etc.

0
Jauder Ho