首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替罪羊sr1 ICMP响应

替罪羊sr1 ICMP响应
EN

Stack Overflow用户
提问于 2018-07-09 18:05:32
回答 1查看 1.4K关注 0票数 2

我所做的:

  1. 从服务器发送/接收UDP-数据报(192.168.1.2)
  2. 服务器使用UDP-Datagram响应接收到的UDP-Datagram的源端口。

这很好,但是,在成功接收数据报之后,客户端总是发送ICMP“无法到达的目的地(端口不可到达)”。在客户端上运行Scapy命令:

代码语言:javascript
复制
pkt = IP(dst='192.168.1.2')/UDP(sport=49000, dport=50991)/Raw(udp_command_bytes)
rec = sr1(pkt)

我有一个基于POXIS的应用程序,它使用套接字做同样的事情,并且没有发送ICMP响应。上面的替罪羊命令有什么问题?它不应该监听端口49000的响应吗?

EN

回答 1

Stack Overflow用户

发布于 2019-02-14 16:09:39

Scapy的意思不是在UDP端口上“监听”,而是“嗅探/监听”(参见。https://scapy.readthedocs.io/en/latest/introduction.html#scapy-decodes-it-does-not-interpret)

这意味着正在运行的TCP/IP堆栈不知道scapy也在接收数据包,因此,如果它没有看到使用者,则取决于堆栈配置(cf )。( https://serverfault.com/questions/522709/disable-icmp-unreachable-replies),它可以决定发送一个指示,表示UDP数据包没有到达使用者(包含无法到达的UDP端口的额外ICMP消息)。

作为一种解决方法,您可以简单地打开一个shell并执行:

代码语言:javascript
复制
netcat -lkfu 49000

这将确保您的系统有一个用于此端口的使用者,并且您仍然可以使用替罪羊来处理所有传入通信量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51251575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档