tcpdump:本地主机到本地主机

121

我编写了一个程序,从本地主机向本地主机发送TCP数据包。我想使用tcpdump来捕获这些数据包。但是什么都没有被捕获。

在Ubuntu中,我的命令是:

sudo tcpdump

我应该添加什么参数?谢谢!


2
不涉及编程,应该发布在SuperUser上。 - unwind
1个回答

218
sudo tcpdump -i lo

注意事项

  • 如果你遇到 tcpdump: lo: No such device exists 错误,请从以下输出中复制设备名称:
sudo tcpdump -D
例如,如果输出如下,则需要使用lo0(在此处为结果9.):
1.en0 [Up, Running]
2.p2p0 [Up, Running]
3.awdl0 [Up, Running]
4.llw0 [Up, Running]
5.utun0 [Up, Running]
6.utun1 [Up, Running]
7.utun2 [Up, Running]
8.utun3 [Up, Running]
9.lo0 [Up, Running, Loopback]

38
如果您使用的是Mac电脑,请先运行命令 sudo tcpdump -D 以获取本地接口。在我的情况下,它是:sudo tcpdump -i 3.lo0 - sunsations
8
取消使用sudo,明确指出必须以root用户身份运行此命令。 - Geoffrey
是的,它可以“开箱即用”,无需像在Windows上安装特殊软件,太棒了! - rogerdpack
4
对于Mac电脑而言,这种情况在某个时间点发生了改变,现在以下命令可行:sudo tcpdump -i lo0 - shawkinaw
这个数据包没有以太网头吗?我在使用tcpdump时看不到以太网头的内容? - Abhishek Sagar
为了在本地端口捕获数据包,可以使用以下命令:"tcpdump -tttt -s0 -X -vv -i tcp port 1080 -w socks.cap"。但是,更好的方式是使用以下命令:"sudo tcpdump -i lo0 -tttt -s0 -X -vv tcp port 1080 -w socks.cap"。后者更加有效。 - baron.wang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接