【发布时间】:2022-06-15 09:43:13
【问题描述】:
我尝试使用 Scapy 来配置 L3 套接字:
from scapy.all import *
soc = conf.L3socket(iface="eth1")
当我在 Ubuntu VM 中使用此代码时,一切正常,但是当我将此代码与 WSL 一起使用时,我得到了这个错误:
/usr/local/lib/python3.10/dist-packages/scapy/layers/ipsec.py:471: CryptographyDeprecationWarning: Blowfish has been deprecated
cipher=algorithms.Blowfish,
/usr/local/lib/python3.10/dist-packages/scapy/layers/ipsec.py:485: CryptographyDeprecationWarning: CAST5 has been deprecated
cipher=algorithms.CAST5,
Traceback (most recent call last):
File "........./python/test.py", line 2, in <module>
soc = conf.L3socket(iface="eth1")
File "/usr/local/lib/python3.10/dist-packages/scapy/arch/linux.py", line 486, in __init__
self.ins = socket.socket(
File "/usr/lib/python3.10/socket.py", line 232, in __init__
_socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 97] Address family not supported by protocol
我该如何解决这个问题?
【问题讨论】:
-
涉及的 Windows 越多,我希望看到的支持就越少; Windows strictly limits raw sockets;只有管理员可以创建它们,即使他们这样做了,它也会执行检查以防止某些常见形式的恶意软件滥用(例如,伪造数据包的发件人地址,通常由 DDoS 僵尸网络使用)。我不知道是否认为 WSLv2 进程以您需要的提升权限级别运行(或者它是否真的需要它们);完整的虚拟机将与操作系统更加隔离。
标签: python-3.x sockets windows-subsystem-for-linux scapy wsl-2