FTP是一種文件傳輸協(xié)議,它支持兩種模式,一種方式叫做Standard (也就是 Active,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發(fā)送 PORT 命令到FTP server。Passive模式FTP的客戶端發(fā)送 PASV命令到 FTP Server。
下面介紹一個這兩種方式的工作原理:
Standard模式FTP 客戶端首先和FTP Server的TCP 21端口建立連接,通過這個通道發(fā)送命令,客戶端需要接收數(shù)據(jù)的時候在這個通道上發(fā)送PORT命令。 PORT命令包含了客戶端用什么端口接收數(shù)據(jù)。在傳送數(shù)據(jù)的時候,服務器端通過自己的TCP 20端口發(fā)送數(shù)據(jù)。 FTP server必須和客戶端建立一個新的連接用來傳送數(shù)據(jù)。
Passive模式在建立控制通道的時候和Standard模式類似,當客戶端通過這個通道發(fā)送PASV 命令的時候,F(xiàn)TP server打開一個位于1024和5000之間的隨機端口并且通知客戶端在這個端口上傳送數(shù)據(jù)的請求,然后FTP server 將通過這個端口進行數(shù)據(jù)的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。
現(xiàn)在的FTP軟件里面包括在IE5以上的版本里面也已經(jīng)支持這兩種模式了。一般一些FTP客戶端的軟件就比較好設置了,一般都有一個PASV的選項,比如CuteFTP,傳輸?shù)姆绞蕉加蠸tandard和PASV的選項,可以自己進行選擇;另外在IE里面如果要設置成PASV模式的話可以選中工具-Internet選項-高級-為FTP站點啟用文件夾視圖,否則就采用Standard模式。
很多防火墻在設置的時候都是不允許接受外部發(fā)起的連接的,所以FTP的Standard模式在許多時候在內部網(wǎng)絡的機器通過防火墻出去的時候受到了限制,因為從服務器的TCP 20無法和內部網(wǎng)絡的客戶端建立一個新的連接,造成無法工作。當然也可以設置成功,首先要創(chuàng)建一條規(guī)則就是允許內部的IP連接外部的IP的21端口;第二條就是禁止外部IP的TCP 20端口連接內部IP的<1024的端口,這條是為了防止外部連接內部的常規(guī)端口;第三條驗證ACK是否等于1。所以如果安全的配置的話非常困難,這個時候就想起來了PASV模式,因為不用建立新的連接,所以也就不會涉及到后面的問題了。但是管理員可能不想使用PASV模式,因為這個時候FTP Server會開放一個隨機的高端口,盡管在IIS4和IIS5里面端口的范圍是1024-5000,但是許多FTP Server的端口范圍達到了1024-65535,這個時候在這個主動開放的隨機端口上是有完全的訪問權限的,如果IIS也要設置成開放的端口為1024-65535,具體方法如下: 所以如果遇到了有防火墻的話或者怕配置麻煩的話還是采用PASV模式比較好些,但是如果真的對安全的需求很高的話建議采用Standard模式。
1. regedt32
2. 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip
\Parameters
3. 編輯-添加-數(shù)值
Value Name: MaxUserPort Data Type: REG_DWORD Value: 65534