1. 程式人生 > >FileZilla搭建FTP伺服器連線報錯:425 Rejected data connection

FileZilla搭建FTP伺服器連線報錯:425 Rejected data connection

最近專案上在用使用FTP傳輸檔案,先是採用了Windows自帶的IIS來配置FTP伺服器,用FTP客戶端工具連線可以但是使用JAVA的FTPClient連線報錯,一直也下不下來檔案,伺服器上日誌也不好看,後面就採用FileZilla來搭建FTP伺服器,介面簡單,使用者配置,許可權配置都比IIS的FTP簡單多了,主要是日誌看得清晰、便捷。

後面也遇到了許多問題,網上查了下基本也解決了,FileZilla上的配置項也不多,自己一步一步配置,一步一部修改程式碼。最坑的就是本地自己搭建的FTP伺服器都可以,就是釋出到伺服器上出現了各種各樣的網路問題。大致說一下伺服器的配置情況:FTP伺服器搭建在內網,客戶端下載的程式也是安裝在內網,但是之間並不能相互訪問,開通了一個外部埠來訪問,另外還有一個埠用來採用被動模式的資料傳輸埠(不過有試了一下,不採用這個埠也是可以傳輸的)

把自己的配置貼出來如下:

只修改了FTP監聽埠,其他配置預設即可


這個是配置被動模式,因為是在內網,與外網傳輸用被動模式,否則,FileZilla介面也會出現如下錯誤:

You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.

告知你要配置被動模式

這裡主要配置的是用於資料傳輸的埠8062,如果伺服器開放的埠比較多,可以加大範圍,這裡我們只開放了一個(但是後面測試發現,即使把這個埠的配置禁用了,

依然可以進行ftp傳輸)。還有配置告知外網需要使用訪問資料埠的IP。

伺服器的配置還是比較簡單。在JAVA的FTPClient訪問設定被動模式,即可訪問,具體的配置方式,網上很多,主要就是以下兩個方法:

FTPClient.enterLocalPassiveMode();
FTPClient.setRemoteVerificationEnabled(false);

至此,以上的配置,外網是可以正常訪問FTP的,但是我們客戶端部署在內網,訪問的時候FileZilla控制檯總是報錯:

425 Rejected data connection for transfer of "/", IP addresses of control and data connection do not match

看得真是一臉懵逼了,什麼叫:控制和資料連線FileZilla的IP地址不匹配。又沒說具體的解決方案,但是起碼有日誌看,這點真的是比IIS的FTP好多了。

在網上查這個錯誤,相關資訊竟然幾乎沒有,大多425報錯都是:Can't open data connection。查到一條資訊在FileZilla官網的更新日誌上有如下描述(https://filezilla-project.org/versions.php?type=server)

0.9.51 (2015-05-06)

Fixed vulnerabilities:

  • The code that checks that the peer's data connection IP address matches the control connection IP had been nonfunctional.
是說我更新到了0.9.51版本,就可以解決這個問題了嗎?但是更新到了最新版本還是一樣的錯誤,最後偶然看到FileZilla有個安全性的配置


最初配置預設選中的是第一項,後面我修改為了最後一項,總算是可以正常下載了。

難道官網的那個說明:nonfunctional,是指這個是非功能性需求,是可配置的嗎?有點恍然大悟。

分享個連結:

https://superuser.com/questions/847416/ftp-425-cant-open-data-connection-active-mode-does-not-work