2017-03-05 34 views
0

我有一个运行在本地主机(127.0.0.1)的TCP服务器,我试图通过将SYN数据包注入到回送接口来连接到服务器,但服务器没有回答他们。这些数据包具有我的互联网适配器的以太网接口的源IP(不是本地主机IP)。本地主机服务器在回送没有回答传入SYN

我注意到在Wireshark中进入我的环回服务器的SYN数据包,但服务器没有用SYN/ACK来回答它。我认为这是因为IP源不是127.0.0.1,例如192.168.1.24。

如果我去浏览器,并连接到我的本地主机服务器,它工作正常,但我使用的源IP是127.0.0.1,目的IP也是127.0.0.1;数据包之间的唯一区别是源IP。

我想建立与我的环回服务器(本地主机)通过使用不同的IP源地址127.0.0.1比一个TCP连接。那可能吗?

例如,来自192.168.1.24到127.0.0.1的Loopback TCP SYN数据包应由回环服务器回答吗?

感谢和问候!

回答

0

您可以通过Npcap Loopback Adapter向本地主机发送数据包,并获得对方的响应(例如,在同一台计算机上的进程)。例如Nmap,Nmap使用Npcap Loopback Adapter来扫描localhost的端口。该命令是:nmap -v -A 127.0.0.1。 Nmap是开源的here,所以你可以看到它的代码实现。如果您认为Nmap的太复杂了,你可以看到Nping here,在Nmap运了ping工具的源代码。在ping本地主机时,Nping也使用Npcap Loopback Adapter,这与Windows提供的原始ping不同。

利用当地的一个适配器的IP或者使用127.0.0.1应该是相同的。你可以运行Nmap来测试它。无论如何,使用127.0.0.1是最好的,并且在与localhost交谈时由Npcap推荐。

所以我觉得这个问题还是涉及到自己的实现。

0

我解决了这个问题,非常感谢你的回答。

这个问题有点愚蠢,我试图与回送服务器(本地主机)建立TCP连接,IP源地址不在回送的范围内,回送网关:127.0.0.1,回送网络掩码: 255.255.0.0;它不能接受来自不在127.0.X.X范围内的IP源地址的数据包;如果我做NAT和我从翻译例如192.168.1.154到127.0.1.154包由服务器接收,我可以建立服务器连接的数据包,我不知道怎么我以前没有意识到这一点。

谢谢你的时间,问候!

我想太多,也许是最好的服务器绑定到其他虚拟网络适配器,而不是回送,我STUDING这样的:https://github.com/Microsoft/Windows-driver-samples/tree/master/network/ndis/netvmini/6x

这将是罚款,以创建一个微型端口驱动程序并绑定服务器在那里,我们将拥有拥有自己的网关和网络掩码的优势,并且该图层将是以太网而不是BSD环回。你的意见对我来说很有意思。

相关问题