我有一個解決NAT穿越的新問題。 我正在部署一個C#應用程序,用於在發生事件時啓動FTP服務器。 問題是運行FTP服務器的機器在NAT /防火牆路由器後面,所以我無法通過任何連接到Internet的外部PC訪問它。 所以我想能夠從我的PC連接到FTP服務器,但端口形式不是一個選項。在沒有端口轉發的情況下連接到NAT和防火牆後面的FTP服務器
我讀過幾篇關於Hole punching,UPnP等的文章,但是我不能依靠UPnP,因爲我不知道路由器是否支持它。
我已經研究了NAT穿越的問題,在這一點上,解決此問題的唯一方法是從運行FTP服務器的計算機啓動連接(以其他方式它應該充當客戶端) NAT具有IP/PORT轉換的規則)。但是,我不認爲任何Windows FTP服務器都具有此功能。
由於我的遠程VPS服務器沒有佈置,我可以在任何端口轉發任何我想要的東西,我想通過VPS在客戶端和服務器之間創建隧道。
FTP服務器(啓動連接到) - > VPS --->客戶端(連接)
FTP服務器< --- VPS < ---客戶端(回覆)
但是我不知道是否有辦法解決我所解釋的問題,或者是否有一些簡單的方法來解決問題。任何幫助表示讚賞。
爲什麼你在發生事件時啓動FTP服務器?您是否可以重新設計您的解決方案,讓您在事件發生時讓客戶端連接到另一個服務?我問這個問題的目的是希望更多地瞭解您正在嘗試解決的問題,並考慮解決問題的其他方法。 – 2012-02-01 16:09:36
我需要訪問計算機上的文件和文件夾,並且通常使用FTP服務器來執行此操作。 我可以重新編碼事件處理,並在需要時啓動其他內容。你的解決方案是什麼? – CrAsHeR 2012-02-01 16:45:48
而不是在NAT後面的機器上啓動FTP服務器,難道你不能構建一個解決方案,該機器與外部建立連接並且代碼將數據發送出去?或者你是否真的想完全訪問這臺機器,以便做更多的事情而不僅僅是獲取一些文件? – 2012-02-01 16:52:24