当我在 centos 6 上使用 tcpdump 时,即使我是 root,我也收到了权限被拒绝的错误。我的命令是这样的:
sudo tcpdump -i eth0 -G 10 -w test.dmp port 80
Run Code Online (Sandbox Code Playgroud)
我试过 -Z root 或 -Z my_username 但没有运气
sudo tcpdump -i eth0 -Z root -G 10 -w test.dmp port 80
sudo tcpdump -i eth0 -Z myuser_name -G 10 -w test.dmp port 80
Run Code Online (Sandbox Code Playgroud)
有人知道如何使它工作吗?
今天,我通过 Sagemcom 路由器获得了企业 Internet 连接。第一次上网时,会花20分钟升级固件。
我真的很想使用带有两个 NIC 的 CentOS 主机来捕获这次升级的所有流量,目的是弄清楚升级是如何进行身份验证的。例如,使用秘密用户帐户和密码?
如果我想将 CentOS 主机置于 Internet 连接和路由器之间:
题
eth0在eth1?tcpdump -s0 -A -w upgrade.pcap -nni eth0正确,如果我想稍后使用 Wireshark 来检查包裹?如何进行TCP转储,保证真正通过网络的所有数据包都被捕获,并且没有遗漏?
详细信息:我们与在 SCTP 堆栈之上提供解决方案的第 3 方供应商有问题,他也实施了该解决方案。
在相当高的吞吐量(52 000 条消息/秒,平均消息大小为 500 字节)下,SCTP 链路中断。
我们认为该错误存在于供应商 SCTP 堆栈中。
但是供应商说,发生这种情况是因为 SCTP 堆栈发送了一条消息,没有收到 ACK,发送了多次重传,也没有收到关于它们的 ACK 并关闭了 SCTP 链接。
所以供应商说,这是有罪的网络,因为它丢失了数据包。
在客户端和服务器双方的 TCP 转储中,我们看到原始消息到达服务器,并看到服务器没有回复 ACK。但是厂商说TCP转储不可靠,在捕获TCP转储时,有些数据包可能无法捕获,因为libpcap库仅在一个硬件线程内工作,其能力不足以记录所有数据包。
技术数据:52 000 条消息/秒,平均消息大小为 500 字节,因此总共 26 MB/秒,使用了 4 个 SCTP 链路。
硬件:CPU E5-2670,2.6 GHz,8 个硬件线程
网络:10 GBit,流量在位于一个机架中的 HP 刀片之间。
瑞尔 6.
我可以要求 tcpdump 非常简单地向我展示 GRE 封装的数据包tcpdump -ni any proto gre:
15:02:57.209082 IP 10.14.0.3 > 10.14.0.2: GREv0, key=0x1, length 106: IP 10.10.10.11 > 10.10.10.1: ICMP echo request, id 21073, seq 2784, length 64
15:02:57.209138 IP 10.14.0.2 > 10.14.0.3: GREv0, key=0x1, length 106: IP 10.10.10.1 > 10.10.10.11: ICMP echo reply, id 21073, seq 2784, length 64
15:02:57.345098 IP 10.14.0.2 > 10.14.0.3: GREv0, key=0x1, length 74: IP 169.254.192.1 > 224.0.0.18: VRRPv2, Advertisement, vrid 1, prio 50, authtype none, intvl 2s, length 20 …Run Code Online (Sandbox Code Playgroud) 对于 tcpdump,我使用此命令来查看数据包详细信息:
tcpdump -vvv -i interface
Run Code Online (Sandbox Code Playgroud)
并将数据包保存到 pcap 文件中:
tcpdump -i interface -w output
Run Code Online (Sandbox Code Playgroud)
第一个命令的详细信息少于使用第二个命令放入 pcap 文件中的详细信息。
我怎样才能在终端中看到相同的详细信息?
我试图保存通过我们的代理发送到特定 url 的原始数据。我的一个朋友给了我使用 tcpdump 的技巧,所以我开始在他们的页面上阅读它。但由于某种原因,我无法使用它。
我试过' tcpdump -c10 host my.very.specific.host.com '但我没有得到任何匹配。是的 =) 我可以在 server.log 中看到来自客户端的某种操作。
如果我使用“ tcpdump -c10 ”,我会立即得到 10 行。所以我想我错过了理解“主机”的概念?
我不能将它指向一个 IP,因为它是一个处理许多不同 url 的网络服务器。
这真的不是我的域(程序员)所以,请原谅我的简单问题:) 提前致谢。
感谢所有的帮助,是的。我应该更清楚地说明我的问题。所以这里有一些“更多”信息。我想要做的是捕获从我们的代理到手机的数据。
我这样做的原因是为了确保我们在发送到“移动运营商网关/代理狂野”之前准确地发送我们想要的东西(是的,他们倾向于修改比他们应该做的更多的东西;))
我感兴趣的信息是 http 协议。
所以我现在要做的是尝试将代理和移动运营商网关之间的信息转储到“公共”网卡上。幸运的是,移动运营商只有一个公共网关。
完了,走吧!
当我没有任何互联网连接并且我想捕获本地计算机之间的网络时,tcpdump 的行为如下:
1.我使用以下命令启动tcpdump:
tcpdump -ixenbr0
Run Code Online (Sandbox Code Playgroud)
2.在我运行它之后,tcpdump 进入冻结模式大约 1-2 分钟,之后它捕获一些数据包并再次冻结,再次捕获一些并且一遍又一遍地发生相同的事情。
我什至无法使用 ctrl+c 退出 tcpdump,甚至无法使用killall tcpdump命令终止 tcpdump 进程。
我在网络中的所有计算机上都有这个问题,不仅仅是一台。
但是当我将网络连接到互联网时,tcpdump 工作得很好。互联网连接一切正常。对我来说似乎很奇怪。
我也试过 -l ,但没有运气。
我正在使用 Ubuntu 14.04。Tcpdump 版本是 4.5.1。
任何人都知道出了什么问题?
我想看看我是否通过一个接口收到 ping 数据包,但 tcpdump 什么也没显示。但是,一旦我停止它(Ctrl + C),所有数据包都会出现,并且摘要看起来不错。
例如:
11:49:45.486887 IP 11.0.0.1 > 11.0.0.9: ICMP echo reply, id 13532, seq 1, length 64
Run Code Online (Sandbox Code Playgroud)
这里是总结:
10 packets captured
10 packets received by filter
0 packets dropped by kernel
Run Code Online (Sandbox Code Playgroud)
我通常会看到流量“实时”,但我不明白为什么现在它会被隐藏,直到我停止 tcpdump。有人可以指出我可能会发生什么吗?
在使用 tcpdump 捕获流量时如何查看流量。
当我使用 -w 时,它不会在捕获过程中显示数据包。
sudo tcpdump -i enp2s0 -w test.pcap
tcpdump: listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C6 packets captured
7 packets received by filter
0 packets dropped by kernel
Run Code Online (Sandbox Code Playgroud) tcpdump ×10
networking ×3
wireshark ×3
linux ×2
centos ×1
pcap ×1
proxy ×1
sctp ×1
ubuntu ×1
ubuntu-14.04 ×1