FTP兩種工作模式:主動模式(Active FTP)和被動模式
在主動模式下,FTP客戶端隨機開啟一個大於1024的端口N向服務器的21號端口發起連接,然後開放N+1號端口進行監聽,並向服務器發出PORT N+1命令。服務器接收到命令後,會用其本地的FTP數據端口(通常是20)來連接客戶端指定的端口N+1,進行數據傳輸。
在被動模式下,FTP庫戶端隨機開啟一個大於1024的端口N向服務器的21號端口發起連接,同時會開啟N+1號端口。然後向服務器發送PASV命令,通知服務器自己處於被動模式。服務器收到命令後,會開放一個大於1024的端口P進行監聽,然後用PORT P命令通知客戶端,自己的數據端口是P。客戶端收到命令後,會通過N+1號端口連接服務器的端口P,然後在兩個端口之間進行數據傳輸。
(在vsftpd.conf中指定被動端口範圍為4000-4500,下載東西時的截圖,下面這張是沒有指定端口範圍的)
總的來說,主動模式的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
本文出自 “11000174” 博客,請務必保留此出處http://11010174.blog.51cto.com/11000174/1983978
FTP兩種工作模式:主動模式(Active FTP)和被動模式