首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows主机操作系统似乎忽略了通过使用原始套接字的linux sendto插入的数据包

Windows主机操作系统似乎忽略了通过使用原始套接字的linux sendto插入的数据包
EN

Stack Overflow用户
提问于 2021-06-24 08:05:13
回答 1查看 17关注 0票数 0

我正在使用Linux sendto()函数和原始套接字(socket(AF_INET, SOCK_RAW, IPPROTO_RAW);)向Windows网卡(eth1)发送数据包。然而,尽管数据包被寻址到网卡的IP地址,主机操作系统似乎“忽略”数据包。

例如,网卡的IP为192.168.1.2,我的用户空间应用程序发送了一个网络数据包,其中包含一个地址为192.168.1.2的ping。我可以在Wireshark中观察到ping到达网络设备192.168.1.2,但是没有生成回复。ping上的TTL是非零的,所以我搞不懂为什么主机操作系统似乎会“忽略”发往它的数据包。

等同地,如果我创建了一个UDP套接字,并将其绑定到端口5050上侦听192.168.1.2,然后在端口5050上发送一个地址为192.168.1.2的用户空间UDP数据包,则该数据包永远不会发送到该端口。

接收数据包的网卡忽略数据包的原因是什么?

如果我从用户空间(通过自定义IP隧道)发送数据包以强制处理数据包,是否需要任何套接字标志,就像它们来自路由器一样?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-25 01:33:19

问题原来是本机windows防火墙,禁用防火墙解决了这个问题。

此外,如果在网络设备上重新发布网络分组,如果单个设备(mac地址)正在发布来自不同源ip的多个ip分组,则windows可以在假定mac ip是唯一的1:1映射的情况下过滤出分组。

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

https://stackoverflow.com/questions/68108201

复制
相关文章

相似问题

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