2012-08-31 210 views
1

我一直在試圖建立利用Windows 7的IIS我已經在我的本地網絡上succesfull一個ftp服務器,但現在我希望把它公開。我portforwarded端口21,但現在當我打開我的FTP服務器的外部(FTP:// myexternalip)我得到提示輸入用戶名和密碼,但是當我登錄我得到這個日誌:Windows 7的IIS FTP問題

Command: OPTS UTF8 ON 
Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON. 
Status: Connected 
Status: Retrieving directory listing... 
Command: PWD 
Response: 257 "/" is current directory. 
Command: TYPE I 
Response: 200 Type set to I. 
Command: PASV 
Response: 227 Entering Passive Mode (192,168,178,14,57,219). 
Status: Server sent passive reply with unroutable address. Using server address instead. 
Command: LIST 
Response: 150 Opening BINARY mode data connection. 
Error: Connection timed out 
Error: Failed to retrieve directory listing 

結果我看到我的ftp服務器中沒有任何數據/文件..我不知道問題出在這裏,也不知道如何解決這個問題。我也確定我的防火牆不會阻塞ftp服務器,因爲我關閉了它。有更多知識可以啓發我的人嗎?

回答

1

FTP協議是其他協議不同,因爲它不僅採用了專用端口(21)在其上的命令去(這就是爲什麼你可以登錄等),但使用其他自發端口的傳輸數據負載。

這並不是一個問題,當FTP被設計和客戶端和服務器通常直接看到自己(和防火牆是異國情調),但NAT改變遊戲:你的服務器看到的地址(192.168.178.14)是不可見的互聯網。

修復它是在NAT的唯一方法:一種連接跟蹤模塊會有實際上攔截和操縱命令通道翻譯NAT的地址/端口轉換成公共地址/端口。大多數防火牆設備知道如何做到這一點。

在你的防火牆尋找「觸發器應用程序」或「FTP代理」。

+0

@ user1534664 NAT實際上有讓你覺得NAT路由器是FTP服務器重寫FTP控制報文。 – Neil

+0

@ Neil是的,但是這不是portforwarding背後的概念嗎?不要讓我向前告訴NAT數據必須發送到哪個PC?端口轉發端口21 .. – user1534664

+0

@ user1534664通常,NAT僅更改數據包的IP地址(有時是端口號)。只有FTP才需要更改數據包的「數據」(實際上是FTP命令和/或響應)。 – Neil