我正在做一些彗星的基准,并希望看到我有多less个开放的连接。
其实我使用netstat:
netstat -ant | grep 8080 | grep EST | wc -l
但是需要大概4-6分钟才能列出号码,是否有任何可以实时显示的工具? 打开的连接数量在100'000 – 250'000之间。
不知道lsof
是否更好,但试试这个:
lsof -ni:8080 -sTCP:ESTABLISHED | wc -l
如果您只需要查看connecton统计信息,请从iproute
suite尝试ss
实用程序:
# 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
您也可以查看所有已build立连接的详细信息,如下所示:
ss -n state established
…或只有ssh连接:
ss -n state established '( dport = :ssh or sport = :ssh )'
本页底部的一些数字部分也可能会让你感兴趣。
另一种select是直接读取/proc/net/tcp
。 要查看所有build立的TCP连接,8080,你会做类似的事情
$ printf %04X 8080 1F90 $ grep :1F90 /proc/net/tcp | grep ' 01 ' | wc -l
如果您想在单个进程(较lessIO开销)和处理angular落情况下执行此操作,以下内容会告诉您有多lessESTABLISHED TCP连接具有本地端口8080:
$ perl -anle ' $F[1] =~ /:1F90/ and $F[3] =~ /01/ and $cnt++; END { print 0+$cnt } ' /proc/net/tcp
如果您的计算机上监听8080的软件具有IPv6支持,则还需要读取/proc/net/tcp6
; 如果程序使用IPv6套接字,即使使用IPv4,连接也将显示在那里。
更容易的是
#netstat -at | wc -l
它会显示系统上的TCP连接数量…