FTP兩種工作模式:主動模式(Active FTP)和被動模式


   在主動模式下,FTP客戶端隨機開啟一個大於1024的端口N向服務器的21號端口發起連接,然后開放N+1號端口進行監聽,並向服務器發出PORT N+1命令。服務器接收到命令后,會用其本地的FTP數據端口(通常是20)來連接客戶端指定的端口N+1,進行數據傳輸。

FTP兩種工作模式:主動模式(Active <wbr>FTP)和被動模式
    在被動模式下,FTP庫戶端隨機開啟一個大於1024的端口N向服務器的21號端口發起連接,同時會開啟N+1號端口。然后向服務器發送PASV命令,通知服務器自己處於被動模式。服務器收到命令后,會開放一個大於1024的端口P進行監聽,然后用PORT P命令通知客戶端,自己的數據端口是P。客戶端收到命令后,會通過N+1號端口連接服務器的端口P,然后在兩個端口之間進行數據傳輸。FTP兩種工作模式:主動模式(Active <wbr>FTP)和被動模式
(在vsftpd.conf中指定被動端口范圍為4000-4500,下載東西時的截圖,下面這張是沒有指定端口范圍的)


FTP兩種工作模式:主動模式(Active <wbr>FTP)和被動模式
    總的來說,主動模式的FTP是指服務器主動連接客戶端的數據端口,被動模式的FTP是指服務器被動地等待客戶端連接自己的數據端口。
    被動模式的FTP通常用在處於防火牆之后的FTP客戶訪問外界FTp服務器的情況,因為在這種情況下,防火牆通常配置為不允許外界訪問防火牆之后主機,而只允許由防火牆之后的主機發起的連接請求通過。因此,在這種情況下不能使用主動模式的FTP傳輸,而被動模式的FTP可以良好的工作。

win 下面設置ftp模式

一、什么是PASV和PORT方式

  (1)PORT其實是Standard模式的另一個名字,又稱為Active模式。中文意思是“主動模式。

  (2)PASV也就是Passive的簡寫。中文就是“被動模式。

  二、兩者不同

  不同之處是由於PORT(主動)這個方式需要在接上TCP 21端口后,服務器通過自己的TCP 20來發出數據。並且需要建立一個新的連接來傳送檔案。而PORT的命令包含一些客戶端沒用的資料,所以有了PASv的出現。而PASV模式擁有PORT模式的優點,並去掉一些PORT的缺點。PASV運行方式就是當服務器接收到客戶端連接請求時,就會自動從端口1024到5000中隨機選擇一個和客戶端建立連接傳遞數據。由於被動且自動建立連接,容易受到攻擊,所以安全性差。

  三、常見的FTP客戶端軟件PORT方式與PASV方式的切換方法

  大部分FTP客戶端默認使用PASV方式。IE默認使用PORT方式。在大部分FTP客戶端的設置里,常見到的字眼都是“PASV”或“被動模式”,極少見到“PORT”或“主動模式”等字眼。因為FTP的登錄方式只有兩種:PORT和PASV,取消PASV方式,就意味着使用PORT方式。

  (1)IE:工具 -> Internet選項 -> 高級 -> “使用被動FTP”(需要IE6.0以上才支持)。

  (2)CuteFTP:Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左邊選中站點 -> Edit -> “Use PASV mode” 。

  (3)FlashGet:工具 -> 選項 -> 代理服務器 -> 直接連接 -> 編輯 -> “PASV模式”。

  (4)FlashFXP:選項 -> 參數選擇 -> 代理/防火牆/標識 -> “使用被動模式” 或站點管理 -> 對應站點 -> 選項 -> “使用被動模式”或快速連接 -> 切換 -> “使用被動模式”。

vsftpd被動模式配置

一、系統環境:LinuxAS4 + vsftpd

二、網絡結構

xp(Client)-----[eth0]linux(Firewall)[eth1] --------linux(ftpserve

ip:172.16.0.0/24    172.16.0.0/16      192.168.0.0/24     192.168.0.10/24

三、ftp配置:

# vi /etc/vsftpd/vsftpd.conf

pasv_enable=YES

pasv_min_port=3000

pasv_max_port=4000

四、防火牆配置

#!/bin/bash
#ip.sh

echo "1" >/proc/sys/net/ipv4/ip_forward

modprobe   ip_conntrack_ftp
modprobe   ip_nat_ftp
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD   DROP

iptables -t filter -A FORWARD -p tcp -s 172.16.0.0/16 -d 192.168.0.10 --dport 21 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -s 192.168.0.10 --sport 21 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -s 172.16.0.0/16 -d 192.168.0.10 --dport 3000:4000 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -s 192.168.0.10 --sport 3000:4000 -j ACCEPT
iptables -t filter -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -p icmp --icmp-type 8 -j ACCEPT
iptables -t filter -A FORWARD -p icmp --icmp-type 0 -j ACCEPT

五、驗證:

# 在xp下用ftp命令連接,都是采用主動模式連接,可以采用圖形界面的軟件,默認一般為被動模式。

# netstat -an|grep  172


免責聲明!

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



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