FTP兩種工作模式:主動(dòng)模式(PORT)和被動(dòng)模式(PASV)
在主動(dòng)模式下,F(xiàn)TP客戶端隨機(jī)開啟一個(gè)大于1024的端口N向服務(wù)器的21號(hào)端口發(fā)起連接,然后開放N+1號(hào)端口進(jìn)行監(jiān)聽,并向服務(wù)器發(fā)出PORT N+1命令。服務(wù)器接收到命令后,會(huì)用其本地的FTP數(shù)據(jù)端口(通常是20)來連接客戶端指定的端口N+1,進(jìn)行數(shù)據(jù)傳輸。
在被動(dòng)模式下,F(xiàn)TP庫戶端隨機(jī)開啟一個(gè)大于1024的端口N向服務(wù)器的21號(hào)端口發(fā)起連接,同時(shí)會(huì)開啟N+1號(hào)端口。然后向服務(wù)器發(fā)送PASV命令,通知服務(wù)器自己處于被動(dòng)模式。服務(wù)器收到命令后,會(huì)開放一個(gè)大于1024的端口P進(jìn)行監(jiān)聽,然后用PORT P命令通知客戶端,自己的數(shù)據(jù)端口是P。客戶端收到命令后,
會(huì)通過N+1號(hào)端口連接服務(wù)器的端口P,然后在兩個(gè)端口之間進(jìn)行數(shù)據(jù)傳輸。
兩者不同不同之處: 不同之處是由于PORT(主動(dòng))這個(gè)方式需要在接上TCP 21端口后,服務(wù)器通過自己的TCP 20來發(fā)出數(shù)據(jù)。并且需要建立一個(gè)新的連接來傳送檔案。而PORT的命令包含一些客戶端沒用的資料,所以有了PASv的出現(xiàn)。而PASV模式擁有PORT模式的優(yōu)點(diǎn),并去掉一些PORT的缺點(diǎn)。PASV運(yùn)行方式就是當(dāng)服務(wù)器接收到客戶端連接請(qǐng)求時(shí),就會(huì)自動(dòng)從端口1024到5000中隨機(jī)選擇一個(gè)和客戶端建立連接傳遞數(shù)據(jù)。由于被動(dòng)且自動(dòng)建立連接,容易受到攻擊,所以安全性差。