我正在转储传出流量。我只想要发往局域网外的 TCP 和 UDP 数据包,别无其他。我只是在 tcpdump 中使用了以下过滤器:
ip and (tcp or udp) and (not icmp) and src host myIPAddr and not dst net myNet/myNetBits and not ip broadcast
Run Code Online (Sandbox Code Playgroud)
但我捕获了以下数据包:
###[ Ethernet ]###
dst = ff:ff:ff:ff:ff:ff
src = 00:1e:4a:e0:9e:00
type = 0x806
###[ ARP ]###
hwtype = 0x1
ptype = 0x800
hwlen = 6
plen = 4
op = who-has
hwsrc = 00:1e:4a:e0:9e:00
psrc = X.X.X.X
hwdst = 00:00:00:00:00:00
pdst = Y.Y.Y.Y
###[ Padding ]###
load = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?我以为我只转储IP …
我有一个大型 tcpdump 捕获(.dump 文件中包含 > 1gb 的数据),我想对其进行解析以获取一些统计信息,例如发送流量所涉及的不同 IP 的数量等。我想知道是否有通过 python 访问二进制跟踪文件中此类数据的干净方法?我尝试这样做的方法是运行
tcpdump -r something.dump > myfile.out
然后尝试使用 python 代码解析 myfile.out 以获取我想要的数据。但上面的命令需要很长时间才能完成,并且希望使用更好的方法来完成此操作。
编辑:Wireshark 在尝试打开文件时内存不足。
我需要嗅探 5060 端口上的 voip 流量。同时我需要排除 src 端口 5060 和 dst 端口 5061 的所有数据包
我需要类似的东西:
tcpdump -i any -vvv -s0 port 5060 and (not src port 5060 and not dst port 5061)
Run Code Online (Sandbox Code Playgroud)
但过滤器的第二部分应该与单个数据包相关,而不是所有流量。我怎样才能做到这一点?
我在我的 Linux 系统上运行“sudo tcpdump -s 0 -A port 80”来监控 HTTP 流量。这有效,但所有流量都被压缩。有没有什么简单的方法可以即时解压缩它,以便我可以实时查看流量?
我正在使用tcpdump命令工具来嗅探数据包。但是,我担心我的网速会降低。数据包嗅探器会减少它吗?如果是或否,为什么?
如果是的话,有什么办法可以解决这个问题吗?我可以忽略它对互联网速度的影响(即它的影响可以忽略不计)吗?
谢谢!
在服务器中
\n\n# nc -lp 2424\nhi server\nhi client\n1\n2\n3\nRun Code Online (Sandbox Code Playgroud)\n\n在客户端
\n\n\xe2\x9e\x9c ~ nc 139.224.xxx.xx 2424\nhi server\nhi client\n1\n2\n3\nRun Code Online (Sandbox Code Playgroud)\n\n然后在客户端
\n\n\xe2\x9e\x9c ~ sudo tcpdump -i en0 -nn -s0 -v src port 2424 -c 10 -w 2424.pcap\ntcpdump: listening on en0, link-type EN10MB (Ethernet), capture size 262144 bytes\n10 packets captured\n93 packets received by filter\n0 packets dropped by kernel\n\n\xe2\x9e\x9c ~ tcpdump -r 2424.pcap\nreading from file 2424.pcap, link-type EN10MB (Ethernet)\n16:49:47.874743 IP 139.224.xxx.xx.kofax-svr > 192.168.199.171.53511: Flags [P.], seq 2832846522:2832846524, ack 587632101, win 227, options …Run Code Online (Sandbox Code Playgroud) 我的tcpdump日志中有两个数据包,我不知道第二列中的"P"和"In"是什么意思.有人能解释一下他们的意思吗?
00:43:44.896482 P 00:00:ac:12:80:01 ethertype IPv4 (0x0800), length 76: 172.18.128.1.ssh > 155.xx.xx.xx.56365: S 1308033114:1308033114(0) ack 1315850475 win 5792 <mss 1460,sackOK,timestamp 12196173 122040733,nop,wscale 8>
00:43:44.896482 In 00:00:ac:12:80:01 ethertype IPv4 (0x0800), length 76: 172.18.128.1.ssh > 155.yy.yy.yy.4242: S 1308033114:1308033114(0) ack 1315850475 win 5792 <mss 1460,sackOK,timestamp 12196173 122040733,nop,wscale 8>
Run Code Online (Sandbox Code Playgroud)
请注意,由于此"P"事物,dest IP发生了变化.
是否有人知道对方如何以及为什么会接收合并的TCP数据包而不是单独打包数据包?我已经在套接字级别将TCP Nodelay设置为true,但是tcpdump仍然看到一些数据包已合并。在成功发送了4个大小为310字节的数据包后,我得到了3 x 1400字节,而不是15 x 310字节。这导致一些重要的延迟。谢谢。
http://www.2shared.com/photo/_bN9UEqR/tcpdump2.html
s = new Socket(host, port);
s.setTcpNoDelay(true);
s.getOutputStream().write(byteMsg);
s.getOutputStream().flush()
Run Code Online (Sandbox Code Playgroud) 所以我遇到类似于如何将ssh作业发送到后台的问题.
我有一个Windows c#程序自动执行使用http://sshnet.codeplex.com/在远程linux OS上执行tcpdump .我正在尝试在远程linux上执行tcpdump并在断开连接后让它继续运行.
我一直在使用plink进行大量调试,但似乎无法达到预期的效果.我试过了:
plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap"
Run Code Online (Sandbox Code Playgroud)
但它保留了sshclient直到我ctrl + C(不适用于自动化解决方案).我也尝试过各种变化:
plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap &"
Run Code Online (Sandbox Code Playgroud)
但是该命令根本不执行(test.cap不存在)或立即终止(test.cap包含1行).在测试过程中,我已经留下了平去,所以捕捉应有 的财产以后 ...
前面提到的链接解决了屏幕问题,但远程linux os不可配置,没有屏幕.欢迎任何建议.