我想跟踪一个命令的网络活动,我尝试了 tcpdump 和 strace 没有成功。
例如,如果我正在安装一个软件包或使用任何试图访问某个站点的命令,我想查看该网络活动(它试图访问的站点)。
我想我们可以通过使用 tcpdump 来做到这一点。我试过了,但它正在跟踪我系统的所有网络活动。假设我运行多个与网络相关的命令并且我只想跟踪特定的命令网络活动,那么此时很难找到确切的解决方案。
有没有办法做到这一点?
更新:
我不想跟踪我的网络接口上的所有内容。我只想跟踪命令(例如#yum install -y vim)网络活动。例如它试图到达的站点。
表单中的显示过滤器ip.src_host eq my.host.name.com没有产生匹配的数据包,但有进出该主机的流量。DNS 名称解析成功,使用 ip 地址的过滤器ip.src eq 123.210.123.210按预期工作。
我正在尝试使用 Wireshark 合并 15 个 pcap 文件。合并成功。我正在使用附加功能,以便将第二个文件添加到第一个文件的底部。但是当这完成后,我在时间列中得到 -ve 值。我怎样才能改变这个?我打算做的是,用这个合并的文件替换这 15 个较小的文件。

这是我第一次在基于 rpm 的发行版中安装和配置 Wireshark。过去我已经在 Ubuntu、Mint 或 Debian 上正确安装了它。
不知道为什么,但似乎我无法以标准用户身份运行它。我已经完成了创建wireshark组并将用户添加到该组的过程,然后将dumpcap组更改为wireshark,但没办法,它不起作用。
在 .deb 系统中,按照这些步骤我没有遇到任何问题,所以不知道会丢失什么。
想法?
我用了
sudo tcpdump -v -i eth0 ether proto 0x0842 or udp port 9
Run Code Online (Sandbox Code Playgroud)
WakeMeOnLan但唤醒NirSoft计算机时没有看到任何东西。
与Wireshark
我最近买了一个新键盘,它很便宜,而且是一个不知名的品牌,但我并不特别担心。我发现在linux上用这个键盘按shift、super、left-ctrl或left-alt没有什么区别,它总是把它当作shift。我做了一些研究,结果发现问题出在键盘使用的芯片组上。我读到解决问题的唯一方法是为键盘编写一个驱动程序,但是,在处理它时,我发现运行sudo modprobe usbmon然后以 sudo 打开wireshark,意外地解决了问题...有人知道为什么这会发生吗?是否有更简单的方法来触发此更改?
更具体:
过滤器!ssh适用于wireshark,但不适用于tshark!,
当我这样做时tshark '!ssh',它会抱怨过滤器,所以这里有什么问题?
我有两个用 veth-pair 连接的 linux 容器。在一个容器的 veth 接口上,我设置了 tc qdisc netem 延迟并将流量从它发送到另一个容器。如果我使用 tcpdump/wireshark 观察双方的流量,可以看到发送方和接收方的同一数据包的时间戳不会因选定的延迟而有所不同。
我想更详细地了解在哪一点 libpcap 将时间戳放入与 tc qdisc 对应的出口流量。我在互联网上搜索了一个方案/图片,但没有找到。我发现了这个话题(wireshark packet capture point),但它建议通过再增加一个容器/接口来引入间接。在我的情况下,这不是可能的解决方案。有没有办法解决这个问题,而不是引入额外的中间接口(即不改变拓扑),而只能通过在已经给定的 veth-interface 进行记录,但以这种方式可以看到延迟?
更新:
我太快了,所以误会了。我的解决方案(与@AB 答案的第一个变体相同)和@AB 的 IFB 解决方案(我已经检查过)都不能解决我的问题。问题是a1-eth0拓扑中发送方接口的传输队列溢出:
[a1-br0 ---3Gbps---a1-eth0]---100Mbps---r1---100Mbps---r2
Run Code Online (Sandbox Code Playgroud)
我太快了,只检查了a1-eth0和路由器之间链接的延迟 10 毫秒r1。今天我试图提高延迟:100 毫秒、200 毫秒,结果(我得到的每个数据包延迟和速率图)对于上面的拓扑和正常拓扑开始不同:
[a1-eth0]---100Mbps---r1---100Mbps---r2
Run Code Online (Sandbox Code Playgroud)
所以不,当然,为了准确测试,我不能有额外的链接:Linux 网桥、这个 IFB 或任何其他第三方系统都没有引入。我测试拥塞控制方案。我想在特定的拓扑结构中做到这一点。而且我不能仅仅为了绘图而改变拓扑——我的意思是如果我的速率和延迟结果/绘图同时发生变化。
更新 2:
所以看起来已经找到了解决方案,如下所示(NFLOG 解决方案)。
更新 3:
这里描述了 NFLOG 解决方案的一些缺点(大链路层标头和具有零负载的出口 TCP 数据包的错误 TCP 校验和),并提出了一个更好的解决方案,NFQUEUE 没有任何这些问题:零长度出口数据包的 TCP 校验和错误(用 iptables 捕获)。但是,对于我的任务(拥塞控制方案的测试),NFLOG 和 NFQUEUE 都不适合。正如同一个链接所解释的那样,当从内核的 iptables 捕获数据包时,发送速率会受到限制(这就是我的理解)。因此,当您通过从接口捕获(即,定期)在发件人处记录时,您会得到 2 GB 的转储,而如果您通过从 iptables 捕获而在发送者处记录,则会得到 …
我正在使用 RedHat (6.5) 绑定,我的活动界面是eth5.
运行以下命令,我无法看到由我的 NIC IP 地址发起的流量:
tcpdump -i eth5 src host actual_ip_address_of_external_client
Run Code Online (Sandbox Code Playgroud)
我也只能通过以下命令(使用wireshark)查看源流量:
tcpdump -i eth5 src host actual_ip_address_of_external_client -w /tmp/<outputfile>
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
我最近在一台新计算机上安装了我的硬盘,经过一番摆弄之后,我注意到我的 iptables 规则出于某种原因丢弃了 DNS 响应,结果它们被配置为允许 eth0 上的东西,但是这台计算机中使用了 eth8,一切都在丢弃(不仅仅是 DNS 查询)。无论如何,我同时使用 Wireshark 来查看 DNS 服务器是否响应查询并发现它们响应了。但我刚刚注意到 iptables 正在丢弃上述数据包。如果数据包被丢弃,Wireshark 怎么能看到这些数据包?
用于生成规则集的脚本:
# Flush all rules
iptables -F
iptables -X
# Allow unlimited traffic on loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow incomming traffic from estabilished and related connections
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Policy: Allow outgoing, deny incoming and forwarding
iptables -P OUTPUT ACCEPT
iptables -P …Run Code Online (Sandbox Code Playgroud) wireshark ×10
networking ×4
tcpdump ×4
bonding ×1
delay ×1
drivers ×1
hostname ×1
ip-address ×1
iptables ×1
kernel ×1
keyboard ×1
linux ×1
modprobe ×1
permissions ×1
rhel ×1
strace ×1
tc ×1
wake-on-lan ×1