ftp的主動模式active mode和被動模式 passive mode的配置和區


https://blog.csdn.net/zhangyuan12805/article/details/71425385/

 

ftp模式分為主動模式(active mode)和被動模式(passive mode),ftp是tcp連接,所以要進行三次握手

1. active和passive模式的配置:

在命令行輸入vim /etc/vsftpd/vsftpd.conf:

1> active mode:

pasv_enable=NO     (passive模式關閉)
pasv_min_port=3000
pasv_max_port=4000
port_enable=YES    (active模式開啟)
connect_from_port_20=YES  (即默認情況下,FTP PORT主動模式進行數據傳輸時使用20端口(ftp-data)。YES使用,NO不使用。)

2>passive mode:

pasv_enable=YES
pasv_min_port=3000  
pasv_max_port=4000

設定在PASV模式下,建立數據傳輸所可以使用port范圍的下界和上界,0 表示任意(1024 – 65535端口)。默認值為0。把端口范圍設在比較高的一段范圍內,比如3000-4000。

在linux上,如果不配置pasv_enable=NO,默認是passive模式。

2.  service vsftpd restart 重啟ftp服務;

3.  通過命令行連接ftp server:

1> active mode:   ftp -A 3.3.3.3  

active模式連接ftp server時一定要加-A

2> passive mode: 可以直接使用  ftp 3.3.3.3   也可以使用 ftp -p 3.3.3.3

4.   ftp client: 192.168.168.169   ftp server: 3.3.3.3

1> active 模式:

     在active模式下,如下圖抓的包中,在命令連接部分(ftp類型的包),client端使用的端口是36439,這個端口是大於1024的任意端口,ftp server端用的端口是21:

 

 

如下圖,在active模式下,要傳輸數據時,ftp client通過第23個包通過21號端口告訴server數據傳輸聯系端口43187(大於1024的任意端口),並進行listen,server端用端口20主動和client端43187建立數據傳輸通道,並傳輸數據(第30,32,34個包)。這里是server知道了client端的數據通道監聽端口后,主動建立了數據傳輸通道,所以是主動模式。

 

 

 

在active模式下,數據傳輸部分(FTP-DATA類型的包),ftp-server端用的端口是20,默認情況下,FTP PORT主動模式進行數據傳輸時使用20端口,ftp-client端用的是43187端口,是上一步client發給server的數據傳輸監聽端口。

 

 

總結:active 模式

 

 

2> passive 模式:

     在passive 模式下,如下圖所抓的包中,在命令部分(ftp類型的包),client端使用的端口是36434,這個端口是大於1024的任意端口,ftp server用的端口是21.

 

 

在passive模式下,如下圖的第28個包,是由client端發起PASV(passive mode)的數據傳輸通道連接請求,所以為被動模式。

 

 

而在passive模式的數據傳輸部分(FTP-DATA類型的包),ftp-server端用的端口是3542,這個端口是在/etc/vsftpd/vsftpd.conf文件中passive模式下設置的端口范圍(3000-4000,可以自己設置)中任意選的一個端口,ftp-client端用的是53001端口,是大於1024的任意一個端口。

 

 

總結:

passive模式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM