2016-01-21 58 views
1

我有C#TCP服務器程序運行到VMWare,網絡類型是NAT。有TCP服務器作爲http服務器,以便我可以使用瀏覽器連接它。現在,當我連接它使用此網址http://localhost:33333/OrderDetails,它工作沒有任何問題。但是,當我試圖把它從VMWare的外部使用這個鏈接http://1.39.37.243:33333/OrderDetails(1.39.37.243是我的電腦的公網IP)連接,那麼它不工作。我無法更改網絡類型的NAT,因爲我的客戶的辦公室網絡系統也是NAT系統。我在哪裏做錯了?任何想法或建議將不勝感激。連接到運行到VMWare的TCP服務器,其中網絡類型是NAT

+0

你能解釋一下/爲什麼你期待這個工作?您如何期望PC知道將TCP數據包發送到VM? –

+0

@DavidSchwartz客戶將運行該應用程序到一個Nat系統。客戶客戶端將從NAT系統外部訪問此應用程序。爲了測試目的,我使用虛擬機。 – Arnab

+0

這是一個「我該怎麼做」的問題或「爲什麼不是這個工作」的問題?你認爲它應該與你所做的一切有關嗎?或者你認爲你沒有做任何事情來完成這項工作? –

回答

2

這不起作用,因爲接收TCP數據包的計算機沒有理由將它們轉發給VM。換句話說,這是行不通的,因爲你沒有做任何事情來使它工作。

您需要configure VMWare's NAT將這些傳入的TCP連接轉發給VM。

你還可以有其他的問題:

  1. 服務器可能不是正確的IP地址被監聽。例如,如果偵聽套接字綁定到本地主機,則只有本地主機連接將起作用。

  2. 有可能是別的路徑保持TCP數據包從獲取到主機的東西。例如,如果主機本身位於NAT後面,則可能需要在路由器中配置端口轉發。

  3. 除非路由器支持髮夾,否則端口轉發將不能從LAN內部工作。如果主機本身位於NAT之後,則在設置路由器中的端口轉發之後,從LAN之外進行測試。

+0

附加的情況下,可*「防火牆封鎖在虛擬機上側」 *! –

相關問題