linux - 通过 gopcap 向 127.0.0.1 发送数据包
问题描述
似乎通过使用 gopacket/gopcap 发送的数据包以某种方式“发送”,因为它们在 tshark 跟踪中可见:
444 143.613451037 127.0.0.1 → 127.0.0.1 UDP 66 6000 → 8888 Len=22
但是这些数据包永远不会到达在 127.0.0.1:8888 上侦听的同一台机器上的进程(例如netcat -ul 8888
)。
有人对为什么会这样或要尝试的事情有任何暗示吗?如前所述,这些数据包实际上在 tshark 跟踪中可见......之后它们似乎完全消失了。
... irrelevant
out , err := pcap.OpenLive(*iface, 65535, true, -1 * time.Second)
out.WritePacketData(buf.Bytes())
... irrevelant
这个想法是构建数据包并发送它们,lo
以便侦听的进程127.0.0.1:<some port>
可以实际看到这些数据包。
IP src/dst 都是 127.0.0.1,以太网 src/dst 都是 00:00:00:00:00:00。
编辑:
就更多研究而言,似乎使用 pcap 发送数据包会绕过 IP 网络堆栈,从而使进程无法看到数据包。一种解决方法是在跟踪中剥离较低级别的数据包并打开常规 udp/tcp 套接字并通过该套接字发送有效负载。
解决方案
就更多研究而言,似乎使用 pcap 发送数据包会绕过 IP 网络堆栈,从而使进程无法看到数据包。一种解决方法是在跟踪中剥离较低级别的数据包并打开常规 udp/tcp 套接字并通过该套接字发送有效负载。
推荐阅读
- git - 为我的 GitLab-Server 上的每个存储库激活 CI/CD 管道
- angular - 键入'{类型代码:字符串;}[]' 不能分配给类型 'string[]'。// Angular 9.1.15,TypeScript
- php - "body":"[API] 此操作需要商家批准 read_customers 范围。"
- ruby-on-rails - 有什么方法可以自定义由activeadmin formbuilder生成的按钮
- android - 适用于不支持 Google Play 的 Android 设备的 Android 应用签名
- python - Python - 延迟后运行异步函数并且不阻塞其他代码
- pine-script - 预计趋势不会发生变化,具体取决于我们为多时间框架趋势选择的时间框架
- python - TKinter:在 For 循环之后调整画布中缩略图的大小
- python-3.x - 如何访问s3中子存储桶内的文件?
- javascript - JavaScript 在列表中添加 List 元素的解决方案是什么?