首页 > 解决方案 > 'L3PacketSocket' 对象在使用发送命令时没有属性 'ins'

问题描述

我正在尝试使用 UDP 协议发送数据包。我在 Ubuntu 上运行 Python 3 并使用 scapy。但是,我收到以下错误消息:“AttributeError:'L2Socket' 对象没有属性 'ins'”。完整的错误消息如下所示。

我在这里读到https://github.com/secdev/scapy/issues/1868,由于 Ubuntu 是通过虚拟机运行的,因此无法以 root 身份运行可能是个问题。任何帮助都非常受欢迎!

这些是有问题的代码行:

from scapy.all import *
packet = IP(dst="127.0.0.1")/UDP(dport=123)/Raw(load="123")
send(packet)

这是错误消息

标签: pythonubuntuudpscapyattributeerror

解决方案


您需要以 root (sudo) 身份启动 Scapy。

仔细查看错误:它首先显示“不允许操作”。您引用的错误是第一个失败的结果。

已经多次报告,第二个错误已在 master 上修复:https ://github.com/secdev/scapy/issues/1942

Scapy 将无法在没有 root 的情况下运行打开原始套接字。这是 Linux 的限制。


推荐阅读