返回列表 回復 發帖

FTP傳輸的二種模式

作者: wen 日期: 2006-10-25 16:00 閱讀: 1101打印 收藏


FTP是一種檔傳輸協定,它支援兩種模式,一種方式叫做Standard (也就是 Active,主動式),一種是 Passive (也就是PASV,被動式)。 Standard模式 FTP的用戶端發送 PORT 命令到FTPserver。Passive模式FTP的用戶端發送 PASV命令到 FTP Server。

下面介紹一個這兩種方式的工作原理:
Standard模式FTP 用戶端首先和FTP Server的TCP 21 prot建立連接,通過這個通道發送命令,用戶端需要接收資料的時候在這個通道上發送PORT命令。 PORT命令包含了用戶端用什麼port接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20port發送資料。 FTP server必須和用戶端建立一個新的連接用來傳送資料。

Passive模式在建立控制通道的時候和Standard模式類似,當用戶端通過這個通道發送PASV 命令的時候,FTP server打開一個位於1024和5000之間的隨機port並且通知用戶端在這個port上傳送資料的請求,然後FTP server 將通過這個port進行資料的傳送,這個時候FTP server不再需要建立一個新的和用戶端之間的連接。

很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以FTP的Standard模式在許多時候在內部網路的機器通過防火牆出去的時候受到了限制,因為從伺服器的TCP 20 port無法和內部網路的用戶端建立一個新的連接,造成無法工作。當然也可以設置成功,首先要創建一條規則就是允許內部的IP連接外部的IP的21 port;第二條就是禁止外部IP的TCP 20 port連接內部IP的<1024的port,這條是為了防止外部連接內部的常規port;第三條驗證ACK是否等於1,這個的原理就參見TCP建立連接的三次握手吧。所以如果安全的配置的話非常困難,這個時候就想起來了PASV模式,因為不用建立新的連接,所以也就不會涉及到後面的問題了。但是管理員可能不想使用PASV模式,因為這個時候FTP Server會開放一個隨機的port,儘管在IIS4和IIS5裏面port的範圍是1024-5000,但是許多FTP Server的port範圍達到了1024-65535,這個時候在這個主動開放的隨機port上是有完全的訪問許可權的,如果IIS也要設置成開放的port為1024-65535,具體方法如下:
1. regedt32
2. 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. 編輯-添加-數值
Value Name: MaxUserPort Data Type: REG_DWORD Value: 65534
所以如果遇到了有防火牆的話或者怕配置麻煩的話還是採用PASV模式比較好些,但是如果真的對安全的需求很高的話建議採用Standard模式。
2005.12.04不預期遇見什麼、才可能什麼都能遇見。
如果你是會員,有任何使用上的問題,請發短訊給我(wen)
如果你是訪客的話,註冊之後可以得到完整的瀏覽權限
返回列表