ftp的port和pasv模式(轉(zhuǎn))
該文為轉(zhuǎn)載,原文地址:http://hi.baidu.com/xianyang1981/blog/item/f17d6f6d8650c0f842169427.html
一、ftp的port和pasv模式的工作方式
FTP使用2個(gè)TCP端口,首先是建立一個(gè)命令端口(控制端口),然后再產(chǎn)生一個(gè)數(shù)據(jù)端口。國(guó)內(nèi)很多教科書(shū)都講ftp使用21命令端口和20數(shù)據(jù)端口,這個(gè)應(yīng)該是教書(shū)更新太慢的原因吧。實(shí)際上FTP分為主動(dòng)模式和被動(dòng)模式兩種,ftp工作在主動(dòng)模式使用tcp 21和20兩個(gè)端口,而工作在被動(dòng)模式會(huì)工作在大于1024隨機(jī)端口。FTP最權(quán)威的參考見(jiàn)RFC 959,有興趣的朋友可以仔細(xì)閱讀ftp://nic.merit.edu/documents/rfc/rfc0959.txt的文檔了解FTP詳細(xì)工作模式和命令。目前主流的FTP Server服務(wù)器模式都是同時(shí)支持port和pasv兩種方式,但是為了方便管理安全管理防火墻和設(shè)置ACL了解FTP Server的port和pasv模式是很有必要的。
1.1 ftp port模式(主動(dòng)模式)
主動(dòng)方式的FTP是這樣的:客戶(hù)端從一個(gè)任意的非特權(quán)端口N(N>1024)連接到FTP服務(wù)器的命令端口(即tcp 21端口)。緊接著客戶(hù)端開(kāi)始監(jiān)聽(tīng)端口N+1,并發(fā)送FTP命令“port N+1”到FTP服務(wù)器。最后服務(wù)器會(huì)從它自己的數(shù)據(jù)端口(20)連接到客戶(hù)端指定的數(shù)據(jù)端口(N+1),這樣客戶(hù)端就可以和ftp服務(wù)器建立數(shù)據(jù)傳輸通道了。ftp port模式工作流程如下圖所示:
針對(duì)FTP服務(wù)器前面的防火墻來(lái)說(shuō),必須允許以下通訊才能支持主動(dòng)方式FTP:
1、客戶(hù)端口>1024端口到FTP服務(wù)器的21端口 (入:客戶(hù)端初始化的連接 S<-C)
2、FTP服務(wù)器的21端口到客戶(hù)端>1024的端口(出:服務(wù)器響應(yīng)客戶(hù)端的控制端口 S->C)
3、FTP服務(wù)器的20端口到客戶(hù)端>1024的端口(出:服務(wù)器端初始化數(shù)據(jù)連接到客戶(hù)端的數(shù)據(jù)端口 S->C)
4、客戶(hù)端>1024端口到FTP服務(wù)器的20端口(入:客戶(hù)端發(fā)送ACK響應(yīng)到服務(wù)器的數(shù)據(jù)端口 S<-C)
1.2 ftp pasv模式(被動(dòng)模式)
在被動(dòng)方式FTP中,命令連接和數(shù)據(jù)連接都由客戶(hù)端。當(dāng)開(kāi)啟一個(gè)FTP連接時(shí),客戶(hù)端打開(kāi)兩個(gè)任意的非特權(quán)本地端口(N > 1024和N+1)。第一個(gè)端口連接服務(wù)器的21端口,但與主動(dòng)方式的FTP不同,客戶(hù)端不會(huì)提交PORT命令并允許服務(wù)器來(lái)回連它的數(shù)據(jù)端口,而是提交 PASV命令。這樣做的結(jié)果是服務(wù)器會(huì)開(kāi)啟一個(gè)任意的非特權(quán)端口(P > 1024),并發(fā)送PORT P命令給客戶(hù)端。然后客戶(hù)端發(fā)起從本地端口N+1到服務(wù)器的端口P的連接用來(lái)傳送數(shù)據(jù)。ftp pasv模式工作流程如下圖所示:
對(duì)于服務(wù)器端的防火墻來(lái)說(shuō),必須允許下面的通訊才能支持被動(dòng)方式的FTP:
1、客戶(hù)端>1024端口到服務(wù)器的21端口 (入:客戶(hù)端初始化的連接 S<-C)
2、服務(wù)器的21端口到客戶(hù)端>1024的端口 (出:服務(wù)器響應(yīng)到客戶(hù)端的控制端口的連接 S->C)
3、客戶(hù)端>1024端口到服務(wù)器的大于1024端口 (入:客戶(hù)端初始化數(shù)據(jù)連接到服務(wù)器指定的任意端口 S<-C)
4、服務(wù)器的大于1024端口到遠(yuǎn)程的大于1024的端口(出:服務(wù)器發(fā)送ACK響應(yīng)和數(shù)據(jù)到客戶(hù)端的數(shù)據(jù)端口 S->C)
posted on 2010-10-11 17:55 俊星 閱讀(8036) 評(píng)論(0) 編輯 收藏