Como eu verifico quantas conexões estão abertas atualmente em uma porta TCP específica?

8

Estou fazendo alguns benchmarks do cometa e gostaria de ver quantas conexões abertas eu tenho.

Na verdade, eu uso o netstat:

netstat -ant | grep 8080 | grep EST | wc -l

Mas precisa de cerca de 4-6 minutos para listar o número. Existe alguma ferramenta que possa ser mostrada em tempo real? O número de conexões abertas está entre 100.000 e 250.000.

    
por Nenad 13.12.2011 / 23:07

4 respostas

8

Não sei se lsof é melhor, mas tente:

lsof -ni:8080 -sTCP:ESTABLISHED | wc -l
    
por 13.12.2011 / 23:12
4

Se você só precisa ver as estatísticas de conexão, tente ss utility em iproute suite:

# ss -s
Total: 1788 (kernel 3134)
TCP:   1638 (estab 1409, closed 162, orphaned 0, synrecv 0, timewait 127/0), ports 0

Transport Total     IP        IPv6
*         3134      -         -        
RAW       0         0         0        
UDP       74        69        5        
TCP       1476      1444      32       
INET      1550      1513      37       
FRAG      0         0         0     

Você também pode ver informações detalhadas sobre todas as conexões estabelecidas como esta:

ss -n state established
Apenas conexões

… ou ssh:

ss -n state established '( dport = :ssh or sport = :ssh )'
A seção

Alguns números na parte inferior de esta página também pode interessá-lo.

    
por 27.02.2013 / 13:55
1

Outra opção seria ler /proc/net/tcp diretamente. Para ver todas as conexões TCP estabelecidas, 8080, você faria algo como

$ printf %04X 8080
1F90
$ grep :1F90 /proc/net/tcp | grep ' 01 ' | wc -l

Se você quiser fazer isso em um único processo (menos sobrecarga de IO) e lidar com casos de canto, o seguinte informará quantas conexões TCP ESTABELECIDAS possuem a porta local 8080:

$ perl -anle '
          $F[1] =~ /:1F90/ and $F[3] =~ /01/ and $cnt++;
          END { print 0+$cnt }
         '  /proc/net/tcp

Se o software na sua máquina ouvindo no 8080 tiver suporte a IPv6, você precisará ler /proc/net/tcp6 também; se o programa estiver usando soquetes IPv6, as conexões aparecerão mesmo se estiverem usando IPv4.

    
por 14.12.2011 / 01:54
0

mais fácil é

#netstat -at | wc -l

Ele exibirá o número de conexões TCP no sistema ...

    
por 27.02.2013 / 11:18