2013-08-29 19 views
2

我試圖通過EC2實例從FTP遠程服務器,但登錄後,如果我發送任何FTP命令,則遠程服務器斷開連接。通過我的測試,似乎遠程FTP服務器從我的EC2實例獲取私有IP地址,而不是分配給它的公共彈性IP。有什麼辦法可以強制我的實例在啓動連接時發送公共IP?當我FTP到遠程服務器時,如何強制Amazon EC2實例使用我的彈性IP?

+0

AWS上的FTP服務器? – Stewie

+0

據我所知,沒有。另外,我可能會補充說我的實例是EC2 Classic。我遇到的問題是我可以「連接」到遠程FTP服務器並登錄以及遍歷可用的目錄,但是如果我'試着'或嘗試'獲取'我知道存在的文件(我可以連接從我的筆記本電腦),我收到以下消息:421服務不可用,遠程服務器已關閉連接。 – jshakespear

+1

您需要使用被動模式。 FTP是一個老的協議,並且不會很好地穿越NAT。 – datasage

回答

-1

FTP有兩種操作模式 - 主動和被動。引述wikipedia

FTP可以以有源或無源模式,它決定了數據連接是如何established.In主動模式運行,客戶端創建TCP控制連接。在客戶端位於防火牆之後並且無法接受傳入TCP連接的情況下,可以使用被動模式。在此模式下,客戶端使用控制連接向服務器發送PASV命令,然後從服務器接收服務器IP地址和服務器端口號,然後客戶端使用該端口號打開從任意客戶端端口到服務器IP地址和服務器端口號收到

總之,在主動模式下,服務器將嘗試返回給客戶端建立連接。由於客戶的IP是私有的,在雲內部,服務器無法連接到它 - 這是導致錯誤的原因。配置你的FTP客戶端使用被動模式,它應該工作。

+0

不,將其設置爲「被動模式」不會修復任何問題,因爲當您發送請求「給我這個文件」時,它如何知道將它發送回去?它沒有。它所擁有的只是亞馬遜的內部IP,它不會在任何地方獲得。 – 2014-09-22 06:22:34

相關問題