`

FTP之PASV与PORT

阅读更多

FTP

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

PORT & PASV

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

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

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

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而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方式。

 

分享到:
评论

相关推荐

    ftp中主动模式(port)与被动模式(PASV)

    处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。

    ftp.zip_FTP上传下载 PORT PASV

    实现ftp上传下载,支持PORT和PASV两种模式

    Centos 8 vsftpd多用户FTP服务器配置完美方案——同时解决PORT和PASV模式

    Centos 8 FTP服务器完美配置方案,实现多虚拟用户FTP连接,同时解决FTP PORT和PASV模式下,存在的问题。

    ftp连接不上出现500 Invalid PORT Command.错误

    220 Microsoft FTP Service USER 123000 331 Password required for 123. PASS xxxxxx 230 User 123 logged in. SYST 215 Windows_NT PWD 257 "/" is current directory. TYPE A 200 Type set to A. PORT 192,168,1,...

    FTP服务器Port和Pasv模式释义.pdf

    FTP服务器Port和Pasv模式释义.pdf

    serv_u要关闭被动模式(PASV),使用PORT模式才能连接FTP的解决办法

    使用 flashfxp 或传东西时必须要关闭被动模式,否则无法连接,连接FTP时客户端总是提示:“PORT 模式成功, 请更新你的站点配置文件”! 原因分析: 防火墙或者serv-u没有开放被动模式(PASV)的端口) 解决方法一:...

    CentOS5.5上配置ftp虚拟用户服务

    这是一个介绍在CentOS5.5上实现FTP服务及虚拟用户权限管理的服务器配置文档,由于虚拟用户不是系统用户,这样的FTP服务更加安全。

    FTP客户端C源码(Linux版)

    N年前写的FTP客户端,练习程序,支持常用命令,支持PASV与PORT模式 对应的服务器端为: http://download.csdn.net/source/2724443

    php的操作ftp类.zip

     @ftp_pasv($this->conn_id,1); // 打开被动模拟  }  function up_file($path,$newpath,$type=true)  {  if($type) $this->dir_mkdirs($newpath);  $this->off = @ftp_put($this->conn_id,...

    c#ftp客户端 支持主动和被动模式

    c#ftp客户端 支持主动和被动模式,c#ftp客户端 主动模式 被动模 PORT PASV

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

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

    ftp可登录但是无法下载,上传问题解决

    构建了一个ftp服务器,通过命令ftp可登录,登录后,无法下载,上传,ls也无法执行。 通过 passive 开启和关闭 PASV模式,再ls 也是同样的问题, # 主动模式 $ pftp -v -A -d 211.159.185.xxx Connected to 211...

    CrossFTP Pro(FTP上传工具)v1.97.5注册版.rar

    CrossFTP是一款与FLASHFXP同类的FTP客户端软件,它使用类似于WIN资源管理器的操作界面,可轻松帮你管理多个站点,在远程站点和本地文件夹进行同步,创建SFV格式的CRC校验,支持PASV和PORT连接模式,每个站点都可设置...

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

    Linux服务器配置与管理项目8 FTP服务器配置与管理 Linux服务器配置与管理项目8--FTP服务器配置与管理全文共50页,当前为第1页。 【项目描述】 公司为方便内部信息的交流,需要一台FTP服务器实现公司内部文件的上传...

    C语言实现基于winsock的ftp客户端程序

    用c语言编写的,Winsock实现FTP客户端,实现断点上传和下载,支持pasv和port模式,列出服务器目录内容,改变服务器目录,添加删除目录,删除文件,断开连接。 平台:win7 开发工具:VS2008

    Linux FTP服务配置

     connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)  chown_upload=YES  chown_username=username 是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主  ...

    C#版的FtpClient客户端(Socket实现)(可以登陆WinDows,Linux系FTP

    由于项目的需要,参照这儿这儿朋友的一些原码写的一个... FtpDataTransMode.Pasv : FtpDataTransMode.Port); // 取得ファイルリストを取得する curFileCount = curFtpClent.DownLoad(); curFtpClent.DisConnect();

    windows下搭建ftp服务器.docx

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

    Python实现FTP文件传输的实例

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

Global site tag (gtag.js) - Google Analytics