1. 程式人生 > >FTP兩種工作模式:主動模式(Active FTP)和被動模式

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

ftp 主動(port) 被動(pasv)模式

在主動模式下,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)和被動模式