为了帮助理解这个问题,首先想象一下普通家庭网络下的两台机器,以及互联网上的远程机器:
Windows 8计算机(我试图嗅探数据包)位于192.168.1.10
运行Ubuntu Server 10.04的PHP数据包嗅探器(代理服务器/数据包嗅探器)位于192.168.1.20
一台服务器上的随机远程机器,比如199.88.77.66
我使用带有套接字的PHP编写了一个代理/数据包嗅探器,该套接字侦听192.168.1.20,当流量直接发送到服务器时,即如果数据包的原始目的地是192.168.1.10 - >它可以很好地工作。 192.168.1.20,嗅探器能够建立连接并且工作正常。
但是,我想听的一些客户已经内置了#34;他们正在发送流量,例如,它会尝试连接远程机器199.88.77.66,以便尝试修复此问题,我使用以下命令创建了一个Windows路由:
路线ADD 199.88.0.0 MASK 255.255.0.0 192.168.1.20
基本上,这应该做的是将目的地为199.88。-.-的任何流量并将其路由到我的Packet Sniffer:
192.168.1.10 - > 199.88.77.66(GETS RE-ROUTED) - > 192.168.1.20
当我这样做时,我知道该命令正在运行,因为我正在使用Windows netstat命令,我可以看到尝试连接到199.88.77.66被路由到192.168.1.20,但是,此连接总是超时,并且它仍然处于以下状态:SYN_SENT。
基本上,当它是直接连接192.168.1.10 - >时,一切正常。 192.168.1.20
但是当我将Windows路由添加到" force"通过我的服务器的流量:192.168.1.10 - > 199.88.77.66(GETS RE-ROUTED) - > 192.168.1.20。
我的最终目标是让它如此运作:
192.168.1.10 - > 199.88.77.66(GETS RE-ROUTED) - > 192.168.1.20(COPIES PACKET) - > 199.88.77.66