netstat mostra mais de 44K conexões sem endereço IP, o que é isso?

0

Eu tenho uma pergunta sobre o uso do linux netstat e os resultados de saída. Eu estou tentando resolver um dilema sobre por que meu servidor está enfrentando atrasos de comunicação e problemas de gargalo, então comecei a cavar e estudar e uma das coisas que eu precisava saber é uma lista de conexões completa agrupada por endereço IP e número de contagem de stablished conexões, então eu primeiro tenho isso:

[root@ip-localhost ec2-user]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

  ...
  9 77.70.115.30
 14 54.211.25.39
198 172.31.30.15

3951

A pergunta, se eu fizer o somatório da quantidade listada de conexões por ip eu não estou obtendo um total de 3951, esse número também aumenta para mais de 44K então, qual o número da linha final sem endereço IP representa? descritores de arquivos? possíveis conexões internas do kernel? soquetes abertos esqueceu-se do sistema?

Eu também tenho um resumo das conexões:

[root@ip-localhost ec2-user]# netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n
   1 established)
   1 Foreign
   4 FIN_WAIT1
   8 SYN_SENT
  57 LISTEN
  67 SYN_RECV
 180 TIME_WAIT
1040 LAST_ACK  
6323 CLOSE_WAIT  
7209 ESTABLISHED  

'' '

note: Eu tive que inserir a saída completa para chegar ao ponto em que as conexões listadas não são totalizadas no final da saída do netstat. obrigado

    
por Luis Parada 09.02.2016 / 20:20

2 respostas

4

Bem, eu acho que você deve primeiro entender o comando netstat antes de aplicar o awk e cortar a saída.

netstat -ntu 

exibirá todas as conexões udp e tcp, incluindo tcp6. Então, quando você está tentando aplicar o awk & cortado na saída do comando netstat

netstat -ntu | awk '{print $5}' | cut -d: -f1

o comando cut então escolhe ":" como delimitador e exibe o primeiro campo.

Uma conexão tcp v4 é semelhante a esta

12.34.56.78:80

Uma conexão tcp v6 se parece com isso na saída do netstat

:: 1: 631

agora quando você aplica o corte com delimitador ":" a saída da conexão tcp v4 mostrará o endereço IP, mas a saída do tcp v6 será uma linha em branco. E aplicar sort | uniq -c contará as linhas em branco.

Se você deseja listar todas as conexões estabelecidas pelo tcp para o seu servidor web, tente isto

netstat -npa | grep pid_of_your_web_server | grep ESTABLISHED  | awk '{print $5}' | awk -F ':' '{print $1}' | sort | uniq -c 

Ou todas as conexões tcp relacionadas ao seu servidor web

netstat -npa | grep pid_of_your_web_server | grep tcp | grep -v LISTEN | awk '{print $5}' | awk -F ':' '{print $1}' | sort | uniq -c

para contar, sem agrupar

netstat -npa | grep pid_of_your_web_server | grep tcp | grep -v LISTEN | wc -l
    
por 10.02.2016 / 06:39
0

desculpe pular assunto antigo, mas nunca é tarde demais para melhorias, porque não usar um awk para tudo e não desperdiçar recursos no grep da seguinte forma:

netstat -npa | awk -F: '/tcp/&&/LISTEN/ {print $1}' | sort | uniq -c
    
por 30.03.2017 / 10:56

Tags