Articles of tcpdump

tcpdump – 如何跟踪使用临时/dynamic端口的请求源

我试图确定在同一台服务器上运行的多个后端微服务之间的networkingstream量。 (他们做一些resthttp调用对方) 不幸的是,当我使用tcpdump的时候,我为每个调用看到的行,只允许我确定调用的“目标服务”。 tcpdump -nn -i lo 14:03:52.612985 IP6 ::1.31822 > ::1.9093: Flags [P.], seq 2474698995:2474699366, ack 4107952262, win 697, options [nop,nop,TS val 3238273 ecr 3231488], length 371 14:03:52.616946 IP6 ::1.9093 > ::1.31822: Flags [P.], seq 1:875, ack 371, win 568, options [nop,nop,TS val 3238274 ecr 3238273], length 874 目标端口(这里是9093)是稳定的,并且是我的一个微服务运行的端口。 但源端口(31822)是由操作系统随机分配的那些“短暂/dynamic端口”中的一个,所以我不知道应用程序是如何实现的。 有一个简单的方法来跟踪什么微服务是来电的来电。 一种将源dynamic端口与正在运行的应用程序PID关联的方法? (没有修改正在运行的应用程序本身,我没有控制他们全部) 我尝试像netstat的东西,lsof没有带领我。 […]

为什么在tcpdumplogging了数据包之后丢包?

我们遇到一些奇怪的丢包,想知道这个的原因。 我们有一个图像服务器和一个服务器来强调图像服务器。 两者都位于同一个数据中心 首先我们运行一个像这样的负载testing(缩短了可读性的命令): ab -n 50 -c 5 http://testserver/img/de.png 该图像只有大约300字节。 结果是非常快速的回应: Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 0 Processing: 1 3 0.7 3 4 Waiting: 1 3 0.7 3 3 Total: 1 3 0.7 3 4 当我们增加并发时,我们看到一些滞后(为了可读性缩短命令): sudo ab -n 500 -c 50 http://testserver/img/de.png 结果与并发50: Connection Times (ms) […]

如何收集在Linux上简洁的stream量统计?

我需要按时间段来划分统计数据,如下所示: time_1 – time_1 + 5mins from_ip1 > to_ip2 total_packages_size1 from_ip3 > to_ip4 total_packages_size2 time_1 + 5mins – time_1 + 10mins from_ip1 > to_ip2 total_packages_size3 from_ip5 > to_ip6 total_packages_size4 … 我看了tcpdump ,我知道如何得不到它的总结统计。 但我真的不想做一个处理tcpdump日志的工具,然后清除它们。 这个标准问题应该有一些现成的工具。

Solaris VM遇到频繁超时

我们所有的Solaris VM都有问题。 当通过SSH或HTTP连接时,我们看到的问题经常超时。 它似乎只影响初始连接…当我通过SSH连接它会挂起和超时之前,我甚至得到login提示,但是如果我CTRL C它,并再试它连接就好了。 我login到VMware控制台并在Solaris VM上运行snoop命令,以便在发生这种情况时获取数据包捕获。 这里是捕获 。 我的电脑是10.0.0.3,我删除了要连接的Solaris VM的主机名。 基于数据包捕获,它看起来像虚拟机看到我的第一个SYN数据包,但不答复,提示我的电脑重新发送。 然后它决定回复一个ACK数据包,我相信应该是一个SYN ACK数据包。 然后它看起来像发送一个SYN ACK数据包。 有谁知道这是为什么发生? 我们的思科ASA防火墙等待30秒,然后由于SYN超时而断开连接。 在此先感谢您的帮助。 德里克

如何用tcpdump过滤掉“bad-len 0”数据包?

当我在freebsd上监听路由器的内部networking接口时,我得到这样的输出 10:36:02.372026 IP 192.168.1.11.8888 > 192.168.1.2.49831: Flags [.], ack 1097, win 65050, length 0 10:36:02.374275 IP 46.163.78.160.123 > 192.168.1.2.32999: NTPv4, Server, length 48 10:36:02.376121 IP bad-len 0 我的目的是用tcpdump本身(不是grep等)过滤掉“bad-len 0”数据包。我尝试写入“更大的0”filter选项,但是它不工作。

validation发送数据包对接收的数据包?

运行Ubuntu。 我有机器A – >机器B( 从A到B的单向连接 )。 机器一个目标是转发TCP数据包到机器B( 它dosnt与机器B有tcp连接,它只是转发它从其他机器获得的tcp数据包)在机器A中有c ++代码,它们根据业务规则收集一些tcp数据包,把它们通过原始套接字写入机器B. 我想在机器A上对我的代码进行性能testing,所以为了做到这一点,我需要发送大量的TCP数据包到机器上。我的c ++代码将它们转发给B.最后,我将validation所有的数据包都恢复了机器B.你有什么build议工具? 将模拟大量发送和工具,将有助于断言(可以通过数量,校验和,任何其他想法断言) 我认为上传大文件文件转储上传stream量,并与tcpreplay重播(我将创build100个线程,重播相同的上传转储,以便有大量的tcpstream)。 为了validation,我将分析接收方的tcpdump,以检查它是否与发送的数据包数量相同。 这不是关于tcp的,因为协议只生成真正的tcp数据包(作为结构)发送大量的数据,并通过比较有效负载或数量或任何其他方式进行validation。 有什么build议?

使用tcpdump来显示XML API请求,而不用标头或确认数据包

我需要帮助,我正在尝试使用tcpdump来捕获两个服务器之间的API请求和响应,到目前为止,我有以下命令: tcpdump -iany -tpnAXs0 host xxx.xxx.xxx.xxx and port 6666 我的问题是,输出仍然难以阅读,因为它会发送Headers和ack数据包。 我想删除这些,只看到XML的身体。 我试图使用grep -v,但显然这是一个请求,所以它过滤整个事情… 谢谢!

Tap0没有收到stream量

我创build了tap设备tap0地址10.2.1.4,并将其添加到地址为10.2.1.1的主桥br1 我在主机上运行“nc 10.2.1.4 -l 1234”,从另一台机器运行“nc 10.2.1.4 1234”。 tcpdump -i tap0不显示任何stream量。 当我做“tcpdump -i br1”时,stream量显示出来 我需要做些什么才能在tap0上进行stream量显示。

查看传入IP的数据包大小

我一直在寻找这个几个小时的解决办法。 之后没有在这里寻求帮助。 我需要按大小观看我的传入数据包。 格式类似于: IP SIZE 我已经尝试过TCPDUMP,但它不给我实际数据包的大小。 这很糟糕。 我知道这是可能的,但我不知道如何。 当做tcpdump命令我得到这个: root@lax:~# tcpdump -n -i eth1 -A -x dst port 443 and greater 10 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 01:11:22.474691 IP 187.187.66.133.161 > *.*.*.*.443: GetResponse(464) .1.3.6.1.2.1.1.1.0="Ubee PacketCable 1.5 W-EMTA […]

使用tcpdump捕获LDAPSstream量

我有一个应用服务器使用LDAPS对Active Directory进行身份validation。 我通过端口636连接到AD服务器。 我正在尝试排查/debugging一些性能问题,并开始怀疑AD本身或者应用服务器和AD之间的连接。 我想运行一个tcpdump (我的第一个!),以在authentication性能不好的时期(用户正在login并在浏览器前面等待)捕获stream量。 到目前为止,从这个教程我的命令是这样的: tcpdump port <???> -v -i eth0 -w ~/capture.log 但是,因为这是我第一次使用tcpdump ,所以我抓住了一些有关端口的事情。 我知道我的应用服务器连接到AD的端口#636上的AD,但我不知道我们正在启动连接的端口(在应用服务器VM上)。 我也不知道LDAPS使用什么样的出站/入站端口来协议,而且Google在这个部门没有提供太多的帮助。 例如,我知道FTP总是使用2个TCP连接(command + data); 我想知道LDAPS是否做了类似的事情? 我想这一切要问: 如果我在应用程序服务器虚拟机上做tcpdump ,我应该捕获什么端口#的stream量? 而且,如果LDAPS为其协议使用多个端口,我可以同时在多个端口上运行tcpdump ( 如果是这样,如何 )? 而且,如果有帮助,应用程序服务器使用Java ldaptive库来启动使用AD的基于LDAPS的身份validation。