1. FTP包含兩種模式:Port主動模式、Passive被動模式。
FTP一般使用2個端口,一個是命令端口(默認為21),一個為數據端口(默認為20)。
主動模式:FTP客戶端向FTP服務器端的命令端口請求,FTP客戶端告知FTP服務器端自己的端口是多少,FTP服務器端的數據端口會連接FTP客戶端的端口並進行數據傳輸。
被動模式:FTP客戶端向FTP服務器端的命令端口請求,告知自己是被動模式,FTP服務器打開數據端口並告知FTP客戶端,FTP客戶端連接該FTP服務器數據端口並進行數據傳輸。
主動模式的缺點:當FTP客戶端通過NAT接入公網時,因為防火牆或端口映射原因,FTP服務器端無法直接連接FTP客戶端的端口。此時可以通過被動模式來實現數據的傳輸
2. 使用Filezilla Server設置Passive被動模式
2.1 可在以下網址下載最新的FileZilla Server並進行安裝
https://filezilla-project.org/download.php?type=server
2.2 可以General settings中設置服務器的監聽端口
2.3 可在Passive mode settings中設置被動模式使用的端口范圍。
2.4 在Users->General中設置賬戶
2.5 在Shared folders中設置用戶的文件夾及權限。
2.6 在防火牆中將FileZilla Server添加到允許接入
2.7 如果服務器端為私網地址,那么就需要在網關或路由器上進行端口映射。
注意:被動模式的數據端口映射前后要為同一端口,否則客戶端無法連接到該端口,會造成可以正常登錄但無法查看目錄等后續操作。
2.8 可以在https://ftptest.net進行測試,或使用另一台主機進行測試。