2017-03-05 33 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環回。你的意見對我來說很有意思。

相關問題