故障排除

FAQ

我无法在监视器模式下嗅探/注入数据包。

使用监控模式因平台而异。

  • Windows or *BSD or ``conf.use_pcap = True`` libpcap scapy必须以不同的方式调用,以便在监视器模式下创建套接字。你需要通过 monitor=True 任何打开套接字的调用 (sendsniff …)或者你自己创建的一个糟糕的套接字。 (conf.L2Socket ……)

  • 本机Linux(禁用PCAP): 您应该自己将界面设置为监视器模式。scapy提供实用功能: set_iface_monitorget_iface_mode (仅限Linux),可以使用(它们执行系统调用 iwconfig 并将重新启动适配器)。

请注意,许多适配器不支持监视模式,特别是在Windows上,或者可能错误地报告头。见 the Wireshark doc about this

如果您的适配器可以与Wireshark一起工作,而不是与scapy一起工作,那么我们会尽最大努力使其工作,您可以随时报告一个问题。

我的TCP连接被scapy或内核重置。

内核不知道Scapy背后在做什么。如果scapy发送一个syn,目标将使用syn-ack进行响应,并且您的内核看到了它,它将使用rst进行响应。要防止这种情况发生,请使用本地防火墙规则(例如,Netfilter for Linux)。scapy不介意本地防火墙。

我打不到127.0.0.1。scapy不适用于127.0.0.1或环回接口

环回接口是一个非常特殊的接口。经过它的包裹并没有真正的组装和拆卸。内核将包路由到其目的地,同时它仍然存储在一个内部结构中。你用tcpdump-i-lo看到的只是一个假货,让你觉得一切都很正常。内核不知道scapy背后在做什么,所以在环回接口上看到的也是假的。但这个不是本地建筑。因此内核永远不会接收它。

为了与本地应用程序对话,您需要使用pf-inet/sock-raw套接字而不是pf-packet/sock-raw(或其在Linux以外的其他系统上的等效项)在上层构建数据包:

>>> conf.L3socket
<class __main__.L3PacketSocket at 0xb7bdf5fc>
>>> conf.L3socket=L3RawSocket
>>> sr1(IP(dst="127.0.0.1")/ICMP())
<IP  version=4L ihl=5L tos=0x0 len=28 id=40953 flags= frag=0L ttl=64 proto=ICMP chksum=0xdce5 src=127.0.0.1 dst=127.0.0.1 options='' |<ICMP  type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |>>

图形太难看/字体太大/图像被截断。

快速修复:使用PNG格式:

>>> x.graph(format="png")

升级至graphviz的最新版本。

尝试提供不同的DPI选项(例如50、70、75、96101125)::

>>> x.graph(options="-Gdpi=70")

如果它有效,你可以使它永久:

>>> conf.prog.dot = "dot -Gdpi=70"

你也可以在你的 ~/.scapy_startup.py 文件

得到帮助

常见问题解答。

如果您需要其他帮助,请查看:

还有一个低流量邮件列表 scapy.ml(at)secdev.org (archiveRSS, NNTP )通过发送邮件订阅 scapy.ml-subscribe(at)secdev.org .

我们鼓励您发送问题、错误报告、建议、想法、欺诈的酷用法等。