通过gopcap

时间:2018-05-30 09:52:52

标签: linux go network-programming pcap

似乎通过使用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套接字并通过该套接字发送有效负载。

1 个答案:

答案 0 :(得分:0)

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