我在Ubuntu 12.04 LTS中設置了FTP服務器。200 PORT命令成功。考慮使用PASV。 425無法建立連接
現在,當我嘗試通過命令行ftp.exe
從Windows 7連接到FTP服務器時,我成功連接,但無法獲取目錄列表。我得到錯誤
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
我在Ubuntu 12.04 LTS中設置了FTP服務器。200 PORT命令成功。考慮使用PASV。 425無法建立連接
現在,當我嘗試通過命令行ftp.exe
從Windows 7連接到FTP服務器時,我成功連接,但無法獲取目錄列表。我得到錯誤
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
嘗試使用ls
之前,使用passive
命令。
從FTP客戶端,檢查FTP服務器是否支持被動模式,登錄後輸入quote PASV
。
以下是連接示例與上下車
vsftpd
與pasv_enable=NO
被動模式下的vsftpd服務器:
# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.5)
Name (localhost:john): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote PASV
550 Permission denied.
ftp>
vsftpd
與pasv_enable=YES
:
# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.5)
Name (localhost:john): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote PASV
227 Entering Passive Mode (127,0,0,1,173,104).
ftp>
您正在使用FTP在一個活動模式。
由於防火牆和NAT的原因,在活動模式下設置FTP可能非常麻煩。
很可能是因爲您的本地防火牆或NAT,服務器無法連接回您的客戶端以建立數據傳輸連接。
或者您的客戶端不知道其外部IP地址,而是向服務器提供內部地址(在PORT
命令中),該服務器明顯無法使用。但情況並非如此,因爲默認情況下vsftpd拒絕與FTP控制連接的源地址(port_promiscuous
指令)不同的數據傳輸地址。
請參閱我的文章Network Configuration for Active Mode。
如果可能,應該使用被動模式,因爲它通常不需要在客戶端進行額外的設置。這也是服務器通過「考慮使用PASV」提出的建議。 PASV
是用於進入被動模式的FTP命令。
不幸的是Windows FTP命令行客戶端(ftp.exe
)完全不支持被動模式。現在它變得毫無用處。
改爲使用任何其他第三方Windows FTP命令行客戶端。大多數其他支持被動模式。
例如WinSCP FTP client默認爲被動模式,並且有指導可用於轉換Windows FTP script to WinSCP script。
(我的WinSCP的作者)
其實你的窗口防火牆阻止連接,所以你需要從管理員輸入這些命令到CMD.EXE。
1)的netsh advfirewall防火牆添加規則名稱= 「FTP」 DIR =在行動=允許程序=%SYSTEMROOT%\ System32下\ Ftp.exe的啓用=是協議= TCP
2)的netsh advfirewall防火牆添加規則名稱= 「FTP」 DIR =行動=允許程序=%SYSTEMROOT%\ SYSTEM32 \ Ftp.exe的啓用= YES協議UDP =
如果萬一出現問題,那麼你可以通過這個回覆:
1)netsh advfirewall防火牆刪除規則名稱=「FTP」程序=%SystemRoot%\ System32 \ ftp.exe
爲我工作謝謝 –
'報價PASV'不會幫助。它只將服務器切換到被動模式。但不是客戶。請參閱[如何在Windows命令提示符下使用被動FTP模式?](http://stackoverflow.com/q/18643542/850848) –
@MartinPrikryl我不確定您是否閱讀我的答案。另外,似乎人們一直在編輯我的答案。但是,您對Windows命令提示符是正確的。 – Shannon
是的,我讀了你的答案。這個問題是關於Windows'ftp.exe'(*我嘗試通過命令行***從** Window 7連接到FTP服務器)。在Windows ftp.exe中,沒有'passive'命令,甚至不支持被動模式。所以你的回答與這個問題無關。 –