FTP「425 無法開啟資料連線」僅在使用命令提示字元時發生

FTP「425 無法開啟資料連線」僅在使用命令提示字元時發生

我的所有電腦都位於單一路由器後面。我有一台 FileZilla 伺服器在其中一台上運行。

我正在嘗試使用批次腳本和 Window 的內建 ftp.exe 自動上傳到伺服器。我已經設定了動態 DNS 服務,以便能夠從路由器外部存取我的伺服器,並且我已經在路由器中設定了到我的伺服器的連接埠轉送。我可以使用 Google Chrome、Windows 資源管理器和 FileZilla 用戶端很好地進行連線和傳輸。

但是,每當我嘗試使用 ftp.exe(手動或批次腳本)時,我都可以連接到伺服器,但如果我嘗試執行任何會開啟資料連線(LISTSTORRETR)的操作,則會收到以下錯誤:425 Can't open data connection.

我已在兩台電腦的防火牆中允許 ftp.exe。有什麼想法或我可以如何解決它嗎?如果有人知道可移植的獨立(只是一個沒有其他檔案的 exe)命令列客戶端,我不需要使用 ftp.exe。

編輯我知道我的 ISP 阻止了許多端口,包括 21 和該範圍內的其他幾個端口。這都是在2121連接埠上設定的,被動連接埠設定為2122-2142,所有這些都已在路由器中轉送。
也許 ftp.exe 只會使用某個連接埠進行資料連接,而我的 ISP 阻止了該連接埠?如果是這樣我該如何改變這件事?

答案1

常規主動 FTP 使用單獨的伺服器啟動的資料連線進行傳輸,並且僅使用常規連接埠 21 連線作為控制通道。然而,當客戶端位於防火牆後面時,防火牆可能會阻止此連線。我猜 Chrome、Explorer、FireZilla 等足夠聰明,可以嘗試被動模式,其中原始客戶端發起的連線用作控制通道和資料通道。

Windows 的預設 CLI FTP 用戶端似乎不支援被動模式。所以你需要切換到數控FTP。或者,我認為可能更好的選擇是使用 SFTP。 FTP 不安全且只能在 LAN 上使用。 SFTP 是完全加密的,僅使用單一通道來傳輸資料和命令。如果您需要 CLI SFTP 用戶端,PSFTP是不錯的選擇。

答案2

我也有這個問題。解決方案是停止防毒軟體的防火牆(在我的例子中是 McAfee),它阻止了 FTP 連接埠。

答案3

Windows FTP CLI 支援被動模式。使用“quote pasv”進入被動模式。

相關內容