似乎通过使用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套接字并通过该套接字发送有效负载。
答案 0 :(得分:0)
就更多研究而言,似乎情况是发送带有pcap的数据包绕过IP网络堆栈,使得进程无法看到数据包。解决方法是剥离跟踪中较低级别的数据包并打开常规udp / tcp套接字并通过该套接字发送有效负载。