Não sei se lsof
é melhor, mas tente:
lsof -ni:8080 -sTCP:ESTABLISHED | wc -l
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.
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.
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.
mais fácil é
#netstat -at | wc -l
Ele exibirá o número de conexões TCP no sistema ...
Tags networking tcp connections