`
skysoul1985
  • 浏览: 9456 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

FTP两种传输模式PORT和PASV(收藏)

    博客分类:
  • FTP
ftp 
阅读更多
FTP

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

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

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

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

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

使用FTP客户端的注意事项
    请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端(但也受服务端限制影响)。

一、客户端只有内网IP,没有公网IP
    从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。

二、客户端有公网IP,但安装了防火墙
    如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开1024以上的高端端口。



三、常见的FTP客户端软件PORT方式与PASV方式的切换方法。
    大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式(window命令行提供的ftp也是PORT模式)。

    在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。

IE:
    工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。如果找不到这个选项,请看 图片。

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

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

FlashFXP:
选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”

或站点管理 -> 对应站点 -> 选项 -> “使用被动模式”
或快速连接 -> 切换 -> “使用被动模式”

LeechFTP:
Option -> Firewall -> Do not Use

四、请尽量不要用IE作为FTP客户端
  IE只是个很粗糙的FTP客户端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试的时候,强烈建议不要使用IE。
分享到:
评论

相关推荐

    windows下搭建ftp服务器.docx

    FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、...FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。

    FTP被动模式分析,ftp抓包分析

    FTP 的两种不同工作模式:PORT(主动模式)与PASV(被动模式) 1、首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制 连接专门用于FTP 控制命令及命令执行信息传送;数据连接专门用于...

    vsftp这主被动模式的搭建文档

    FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),我先说说这两种不同模式连接方式的分别。 先假设客户端为C,服务端为S. Port模式: 当客户端C向服务端S连接后,使用的是Port...

    Python实现FTP文件传输的实例

    FTP对应PASV和PORT两种访问方式,分别为被动和主动,是针对FTP服务器端进行区分的,正常传输过程中21号端口用于指令传输,数据传输端口使用其他端口。 PASV:由客户端发起数据传输请求,服务器端返回并携带数据端口...

    仿写CodeIgniter的FTP类.zip

    FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP 的客户端发送 PORT 命令到FTP server。Passive模式FTP的客户端...

    FTP程序上传工具

    编辑本段FTP和网站 我们都知道,当我们需要往网站空间上放网站文件的时候,我们可以采用WEB和FTP两种方法。在这里,我们建议直接使用FTP进行数据交换,因为不管是安全性还是快捷性来说,ftp都是很不错的。 那么我们...

    FTP通讯协议

    HTTP是Hyper Text Transfer Protocol,超文本传输协议; FTP是File Transfer Protocol,文件传输协议;...FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 ,以及FTP应答码&响应码

    RHE5服务器管理之搭建FTP服务器步骤分享[图]

    FTP数据连接即FTP传输数据的过程,它有3种传输模式,即主动传输模式(PORT)、被动传输模式(PASSIVE,简称PASV)、单端口模式。  主动传输模式:当FTP控制连接建立,客户端提出目录列表及传输文件时,客户端发出...

    深入PHP FTP类的详解

    FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP 的客户端发送 PORT 命令到FTP server。Passive模式FTP的客户端...

    Linux服务器配置与管理项目8--FTP服务器配置与管理.pptx

    FTP的传输模式 2)被动传输模式 在被动传输模式下,FTP客户端随机开启一个大于1024的端口(1024+X)向服务器的21号端口发起连接,同时会开启(1024+X+1)号端口,然后向服务器发送PASV命令,通知服务器自己处于被动...

    LINUX FTP设置方法

    ftp工作方式分为两种,一种port主动模式,一种pasv被动模式,是服务主动与被动进行连接。一般ftp服务器都为被动模式 。 20.1.1 vsftp概述 rpm -qc vsftpd /etc/logrotate.d/vsftpd.log /etc/pam.d/vsftpd /*...

    Linux-FTP配置说明及安装源文件

    ftp工作方式分为两种,一种port主动模式,一种pasv被动模式,是服务主动与被动进行连接。一般ftp服务器都为被动模式 。 20.1.1 vsftp概述 rpm -qc vsftpd /etc/logrotate.d/vsftpd.log /etc/pam.d/vsftpd /*vsftp的...

    linux vsftpd搭建步骤 亲测可用

     2.3 FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当...

    CuteFTP9简易汉化版

    在一种上传软件高级Transfers-Other传输选项包括传输模式(ASCII和二进制/汽车),数据连接模式(PASV /端口/汽车),转移事件后,时间戳处理,重启的字节抵消破碎的转移,更多。 自动化 转移Engine-Create复杂的自动化脚本或...

Global site tag (gtag.js) - Google Analytics