ftp原理看完轉載之後,利用window自帶的的方式,利用文件件ftp://10.33.30.113:21/輸入,得到抓包
發現windows自帶的模式爲 PASV模式(被動方式),
http://blog.chinaunix.net/uid-28345735-id-3403932.html
http://blog.csdn.net/ydongsky/article/details/8127940
FTP Transfer Protocol 件傳輸協議的縮寫,在RFC 959中具體說明。
FTP會話時包含了兩個通道,一個叫控制通道,一個叫數據通道。
控制通道:控制通道是和FTP服務器進行溝通的通道,連接FTP,發送FTP指令都是通過控制通道來完成的。
數據通道:數據通道是和FTP服務器進行文件傳輸或者列表的通道。
FTP協議中,控制連接均有客戶端發起,而數據連接有兩種工作方式:PORT方式和PASV方式
PORT模式(主動方式)
客戶端開始監聽端口 N+1 ,併發送 FTP 命令 “port N+1” 到 FTP 服務器
( (229*256) + 50) = 58674
FTP 客戶端首先和FTP Server的TCP 21端口建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼端口(一個大於1024的端口)接收數據。在傳送數據的時候,服務器端通過自己的TCP 20端口發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
PASV模式(被動方式)
客戶端發送 FTP 命令 “PASV” 到 FTP 服務器
在 建立控制通道的時候和PORT模式類似,當客戶端通過這個通道發送PASV 命令的時候,FTP server打開一個位於1024和5000之間的隨機端口並且通知客戶端在這個端口上傳送數據的請求,然後FTP server 將通過這個端口進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接傳送數據。
如果從C/S模型這個角度來說,PORT對於服務器來說是OUTBOUND,而PASV模式對於服務器是INBOUND,這一點請特別注意,尤其是在使用防火牆的企業裏,這一點非常關鍵,如果設置錯了,那麼客戶將無法連接。