Scapy 看不到 UDP 包

问题描述 投票:0回答:0

我有一个在 WSL2 中运行的 snmptrapd 服务器(在 docker 下),我正在尝试通过 Scapy(从 Windows 主机)将 UDP 包发送到该服务器。

这就是我使用 Docker 在 WSL 中运行 snmptrapd-server 的方式:

sudo docker run -it --rm -p 162:162/udp --name snmptrapd sig9/snmptrapd

这就是我使用 Scapy 发出 UDP 请求的方式:

answered, _ = sr(

    inet.IP(dst="172.31.175.161") /
    
    inet.UDP(sport=sport, dport=162) /
    
    Raw(
        
        b'\x30\x43\x02\x01\x01\x04\x06\x70\x75\x62\x6c\x69\x63\xa6\x36\x02'
        
        b'\x04\x10\xfc\xb4\xbe\x02\x01\x00\x02\x01\x00\x30\x28\x30\x0d\x06'
         
        b'\x08\x2b\x06\x01\x02\x01\x01\x03\x00\x43\x01\x00\x30\x17\x06\x0a'
        
        b'\x2b\x06\x01\x06\x03\x01\x01\x04\x01\x00\x06\x09\x2b\x06\x01\x06'
        
        b'\x03\x01\x01\x05\x01'

    ),

    timeout=5,

    verbose=2

)

这里

172.31.175.161
是我的“WSL机器”的IP。
sport
是任何未使用的端口(在这种情况下为
27450
)。

我可以看到我的 UDP 请求已传送到 snmptrapd-server(服务器记录我的请求):

2023-05-18 mshome.net [UDP: [172.31.160.1]:27450->[172.17.0.3]:162]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-MIB::coldStart

我还可以在 Wireshark 中看到请求(和响应):

但由于未知原因,我在 Scapy 中看不到 UDP 回复:

Begin emission:
Finished sending 1 packets.
....
Received 4 packets, got 0 answers, remaining 1 packets
(<Results: TCP:0 UDP:0 ICMP:0 Other:0>, <Unanswered: TCP:0 UDP:1 ICMP:0 Other:0>)
python sockets udp scapy
© www.soinside.com 2019 - 2024. All rights reserved.