我试图生成一系列数据包来模拟TCP 3路握手程序,我的第一步是捕获真正的连接数据包,并尝试从同一台机器重新发送相同的数据包,但它不起作用首先.
最后我发现用tcpdump捕获的数据包并不是我的计算机发出的数据包,TCP的校验和字段发生了变化,这让我想到即使TCP校验和不正确也可以建立tcp连接.
所以我的问题是如何计算校验和字段?它是由tcpdump还是硬件修改的?为什么会改变?这是tcpdump的错误吗?或者是因为省略了计算.
以下是我从主机和虚拟机器上捕获的屏幕截图,你可以看到在不同的机器上捕获的相同数据包除了TCP校验和之外都是相同的.
并且小窗口是我的虚拟机,我使用命令"ssh 10.82.25.138"从主机生成这些数据包

我想以低时间分辨率(以毫秒为单位)而不是默认的微秒获得 tcpdump。
在 tcpdump 手册中,我得到了-j精度可接受的参数为“ host_lowprec ”和“ host_hiprec ”
tcpdump -i any -n -j host_lowprec "tcp"
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
host_lowprec = ? 精度和 host_hiprec = ? 精确
我可以将精度设置为毫秒或纳秒吗?如果是,如何?
我想向您寻求帮助:有人知道如何通过 tcpdump 检测思科发现协议吗?
目前我正在使用以下命令,但我不确定:
tcpdump -i eth0 -nn "ether[20:2]==0x2000"
Run Code Online (Sandbox Code Playgroud)
一些提示值得赞赏。谢谢 ...
恰克
使用tcpdump,我正在捕获网络流量。我有兴趣提取实际的TCP有效负载数据,即我的特殊情况下的HTTP流量。
我试图通过使用来实现这一点scapy,但是我只找到了功能remove_payload()。有对应的对应物吗?还是您知道其他提供此类功能的工具?
不幸的是,我找不到令人满意的船尾文档。
tcpdump 是否支持通过具有特定 SPI 值的 ESP 流量(proto 50)进行过滤?
它显示了这个值,所以你会认为这是可能的!
21:15:23.143805 IP 64.7.134.1 > 64.7.139.200: ESP(spi=0x0d8f42b8,seq=0x27)
Run Code Online (Sandbox Code Playgroud) 我正在使用以下命令从实时tcpdump捕获输出IP
sudo tcpdump -nn -q ip -l | awk '{print $3; fflush(stdout)}' >> ips.txt
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
192.168.0.100.50771
192.168.0.100.50770
192.168.0.100.50759
Run Code Online (Sandbox Code Playgroud)
需要两件事:
先感谢您
是否有一个简单的工具或实用程序可以用来缓冲最后 3 分钟的网络捕获,如果事件发生可能是通过 GPIO 触发器或 UDP 消息我将最后 3 分钟和接下来的 1 分钟写入磁盘?我们的网络冻结发生在 40 分钟到 14 小时之间,我想捕获检测到的事件时间周围的网络流量,以更好地了解情况。我过去曾使用过 tcpdump 和wireshark,但总是手动触发捕获的开始和停止,我需要自动停止时间,并希望避免记录一堆不相关的数据。如果重要的话,我们的大多数开发环境都使用 Ubuntu 18.04。
此时,如果需要,我们不限于任何语言或从头开始构建工具。
我想知道是否有一种方法可以导出 Wireshark 数据包/帧信息中显示的特定信息,这些信息在帧字节中不容易可见(解释信息?)。我对无线帧的帧持续时间(以微秒为单位)特别感兴趣wlan_radio.duration。
我查看了Wireshark 帮助中的数据导出,但找不到导出解释信息的选项。
我知道我正在寻找的内容的实现位于packet-ieee80211-radio.c内,并且我愿意编写自己的代码来提取这些信息,但这对我来说似乎有点复杂,我想知道是否有已经是做到这一点的现有方法。
我也愿意使用其他工具,例如tcpdump,但tcpdump据我所知不提供帧持续时间。
谢谢!
我需要捕获eth0上的端口9090和lo(localhost或loopback)上的端口8080.有人可以告诉我tcpdump表达式可以做到吗?我目前正在使用
tcpdump -n -i any port 8080 or port 9090
Run Code Online (Sandbox Code Playgroud)
谢谢,
我正在尝试编译一个简单的libpcap示例,
#include<stdio.h>
#include<pcap.h>
int main(int argc, char *argv[])
{
char *dev;
char errbuf[PCAP_ERRBUF_SIZE];
struct bpf_program fp;
char filter_exp[] = "port 23";
bpf_u_int32 mask;
bpf_u_int32 net;
dev = pcap_lookupdev(errbuf);
if (dev == NULL )
{
fprintf(stderr, "couldn't find default device: %s\n", errbuf);
return (2);
}
printf("Device: %s\n", dev);
//LOOKUP NETMASK and IP
if (pcap_lookupnet(dev, &net, &mask, errbuf) == -1)
{
fprintf(stderr, "can't get netmask for device %s\n", dev);
net = 0;
mask = 0;
}
printf("lookup\n");
pcap_t *handle;
printf("handle defined\n");
handle …Run Code Online (Sandbox Code Playgroud) 众所周知,MTU是1500,TCP的MSS是1460,所以当recv函数中使用的buf大于1460字节时,TCP会被拆分成很多部分。
我写了一个简单的 echo prog,并想使用 tcpdump 来检查碎片。但是buf小的时候不显示分片,buf在20K左右的时候显示。
这是代码:
服务器:
import socket
import sys
import os
addr = ('10.0.0.2',10086)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(addr)
server.listen(5)
while True:
connfd, addr= server.accept()
print 'connection ip:', addr
data = connfd.recv(8192);
Run Code Online (Sandbox Code Playgroud)
客户:
import socket
import os
import sys
addr = ('10.0.0.2', 10086)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(addr)
data = '';
for num in range(0,8192):
data += '1'
client.sendall(bytes(data))
Run Code Online (Sandbox Code Playgroud)
这是我使用的 tcpdump cmd:
须藤 tcpdump -i lo 端口 10086 -s 1514 -v
从代码上看,buf是8192,MSS是1460。所以,在我看来,数据包将被拆分为1460、1460、1460、1460、1460、892。但在截图中没有。
另外,我不确定这是否是由 [DF] 标志引起的。prog 使用的是 python,所以内置的 …
我配置了一个虚拟接口(oip1),该接口具有有效的IP配置。当我尝试从oip1 ping Internet上的地址时,可以在tcpdump上看到ICMP回显请求/答复,但是ping仍然报告100%失败。
root@openair-PC:~/openair4G# ifconfig oip1
oip1 Link encap:AMPR NET/ROM HWaddr
inet addr:192.188.0.2 Bcast:192.188.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:840 (840.0 B) TX bytes:840 (840.0 B)
Run Code Online (Sandbox Code Playgroud)
我创建了一个新表“ lte”:
root@openair-PC:~/openair4G# ip rule show
0: from all lookup local
32743: from all fwmark 0x1 lookup lte
32766: from all lookup main
32767: from all lookup default
Run Code Online (Sandbox Code Playgroud)
因此,我正在标记往返于oip1地址的数据包:
root@openair-PC:~/openair4G# iptables -t mangle -L
Chain PREROUTING …Run Code Online (Sandbox Code Playgroud) 我想在root用户设备上做TCPDump.
我想创建一个".pcap"文件,以便以后分析,捕获上传/下载数据包.有一个很好的图书馆吗?我应该怎么开始?