首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用wireshark从tcpdump获取到特定主机的连接数(计数

如何使用wireshark从tcpdump获取到特定主机的连接数(计数
EN

Stack Overflow用户
提问于 2012-03-22 15:31:13
回答 2查看 9.5K关注 0票数 3

我想检查我的连接池库创建了多少个到特定主机的连接。我得到了tcpdump,从中可以知道如何使用wireshark获取已建立连接的数量。我可以使用tcptrace工具获取它,但我想知道如何使用wireshark来实现它。

EN

回答 2

Stack Overflow用户

发布于 2012-04-16 18:20:13

多少个可能是多少个并发的,这会有点困难,但在数据包捕获过程中有多少个数据包捕获要容易得多,而且由于您使用的是tcpdump,因此我将假定这就是您正在寻找的。

如果您的源ip是192.168.1.1,目标主机是192.168.1.2,则应用如下筛选器:

ip.src_host == 192.168.1.1 && ip.dst_host ==设备&& tcp.flags.syn == 1

如果问题中的目标主机可能也在建立与源主机的连接,则源主机还将发回SYN、ACK以接受这些连接,因此要过滤掉这些连接,请在末尾添加以下内容:

tcp.flags.ack == 0(&S)

应用该过滤器后,将只显示新连接,然后您可以查看Wireshark底部的状态栏。它将显示您有许多数据包的总数,以及有多少正在显示。显示的数据包数量将是捕获过程中建立的连接数量。

如果您正在寻找任何给定时间的并发连接,Wireshark可能不是您的最佳选择,因为在这种情况下,您将查找发生在相应FIN或RST(连接结束)之前的连接数(SYN),这更像是一个统计函数。

还值得注意的是,如果捕获的源在源主机上,则不能保证该捕获中的SYNs/连接已被接受/成功。您还需要验证是否为每个连接、SYN、SYN-ACK、ACK执行了完整的三次握手。

票数 3
EN

Stack Overflow用户

发布于 2013-07-23 02:54:42

试试这个-它可能不是100% -因为它只会看到与一些数据的连接-并假设一些理想化的东西-但对于大多数情况它已经足够好了:

代码语言:javascript
复制
tcpdump -tt -n -r __file__ \
    | grep '\.10011' \
    | sed -e 's/^.*IP [^>]\+\.\([^ ]\+\) > 10.0.10.1.13000:.*$/\1:&/g' \
        -e 's/^.*IP 10.0.10.1.13000 > [^:]\+\.\([^ ]\+\): .*$/\1:&/g' \
    | sed -e 's/ IP .* > .*: Flags \[[^]]*S[^]]*\].*/:open/g' \
        -e 's/ IP .* > .*: Flags \[[^]]*[RF][^]]*\].*/:close/g' \
    | grep -v 'length 0' \
    | sed 's/ IP .* > .*: Flags .*/:isopen/g' \
    | gawk -F: 'BEGIN{ cons["x"]=1; }{ 
        if ( $3 == "open" || $3 == "isopen" ) { cons[$1] = 1; } 
        if ( $3 == "close" ) { delete cons[$1]; }; 
        printf("%s %s %s\n", strftime("%Y%m%dT%H%M%S",int($2)), $2, (length(cons) - 1) ); }' \
    | uniq -f 2

感谢您的评论、修正或更正。注意-这将检查特定的端口和IP (10.0.10.1.13000) -您可以对其进行一些调整,使其适用于任何端口和IP

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9818086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档