文档章节

FTP主动模式与被动模式

t
 tom2016
发布于 2016/04/15 19:59
字数 1771
阅读 55
收藏 1
FTP

最近FTP的项目做得比较深入,也就进一步把FTP主动和被动模式熟悉一下,需要知道的事,FTP是基于TCP服务的,不支持UDP。FTP,File Transfer Protocol,文件传输协议,一般人了解FTP,是通过他的一些相关客户端如CuteFTP(大学时常用),Fillzilla,WinSCP等。

一般这些软件默认FTP连接模式为PASV,被动连接。即FTP客户端向服务端口(默认是21)发出连接请求,服务端接到请求后建立命令链路。然后服务端通过命令链路发消息告诉客户端,服务端XXXX端口,位于(1025—65535)之间,开放,与客户端建立起数据链路,从而客户端可以进行数据上传与下载。这个被动指的是客户端被动收到服务端的消息,才能开始传输。一般这样的话,可能会收到服务端防火墙的阻隔。

而主动模式,PORT,即FTP客户端向服务端口(默认是21)发出连接请求,服务端接到请求后建立命令链路,这个过程与被动连接一样。然后客户端通过命令链路发消息告诉服务端,客户端一般是20端口开放,服务端收到消息后连接该端口,建立起数据链路,从而进行数据的上传下载。这个主动是指客户端主动开放20端口,并发起与服务端建立数据传输的请求。这种模式,可能受限于客户端防火墙的限制,另外也不能用与代理上网时的FTP服务,因为服务端收到客户端请求后,他连接的代理服务器的端口。


主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机 

专业介绍如下:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有 限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危 险。

简而言之:

主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机


FTP主动模式与被动模式的解决与原理

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

概括:
--------------------------------------------------------------------------------
主动模式:服务器向客户端敲门,然后客户端开门
被动模式:客户端向服务器敲门,然后服务器开门
所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门
而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口

--------------------------------------------------------------------------------


要用主动模式来下载,请您把下载工具的被动模式(PASV)都不要打勾,用主动模式来下载就OK了,如果在出错,那就被动主动相互转换一下

常见的FTP客户端软件的PASV方式的关闭方法

大部分FTP客户端默认使用PASV方式,PASV模式的意式是被动模式。 在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”。

IE: 工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。

CuteFTP: Edit -> Setting -> Connection -> Firewall -> “PASV Mode”
或 File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”

FlashGet: 工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”

FlashFXP: 选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”
或 站点管理 -> 对应站点 -> 选项 -> “使用被动模式”
或 快速连接 -> 切换 -> “使用被动模式”

LeapFTP: Option ->Preferences -> General->Proxy->Use Pasv Mode

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。


本文转载自:http://blog.csdn.net/windlyb/article/details/7786446

共有 人打赏支持
t
粉丝 0
博文 7
码字总数 0
作品 0
杭州
程序员
私信 提问
重温FTP的主动模式和被动模式

最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同。在此重温一下...

Binny
2011/05/28
0
2
FTP主动模式与被动模式所需要的端口

FTP主动模式与FTP被动模式所需的端口 FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口...

robin_key
2017/06/13
0
0
FTP的主动和被动模式详解

FTP的主动和被动模式详解 和煦的点滴2016-06-28150 阅读 FTPCentosLinux 主动模式FTP与被动模式FTP该如何选择 无论是主动模式还是被动模式,其要进行文件传输都必须依次建立两个连接,分别为...

和煦的点滴
2016/06/28
0
0
FTP的主动模式和被动模式,你应该用那种?

FTP文件传输分为两种模式,主动(PORT)模式和被动(Passive)模式,用户应该用哪种? 简单粗暴,直接上答案 1)如果不是必须需要,不要使用FTP服务,主动/被动模式,命令/数据端口,初学者很容易...

Mr_zebra
02/05
0
0
FTP Server Over 阿里云 最佳实践

概述 作为非常古老的协议(1971年首次提出,1980年首次应用),FTP在目前依然占有一席之地,但是由于目前IT业发展的非常迅猛,它和现在的基础架构产生了一些水土不服,本文旨在通过日常常见的...

霄翎
06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

zookeeper配置与使用

一.登录官网下载 不要带后缀的,那是公侧版本,下稳定版,比如3.4.9 二.安装与使用 解压后bin里是启动程序 配置文件:在conf下 复制zoo_sample.cfg改名为为zoo.cfg,打开zoo修改文件...

小兵胖胖
19分钟前
0
0
spring源码阅读笔记(一)

ClassPathXmlApplicationContext 与 FileSystemXmlApplicationContext 用了这么久的框架,是时候搞一下源码了,一般最初接触spring 从以下步骤开始 创建一个bean类 并创建 ooxx.xml之类的spr...

NotFound403
43分钟前
2
0
MySQL主从配置

12月14日任务 17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单将就是A/B两个服务器做主从后,在A上写...

robertt15
45分钟前
6
0
我的Linux系统九阴真经

在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行业,共享经济等概念的公...

问题终结者
58分钟前
21
0
Java 使用 gson 对 json 根据 key 键进行排序

引入Google的gson jar <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.0</version>......

yh32
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部