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与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。
实现ftp上传下载,支持PORT和PASV两种模式
Centos 8 FTP服务器完美配置方案,实现多虚拟用户FTP连接,同时解决FTP PORT和PASV模式下,存在的问题。
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
使用 flashfxp 或传东西时必须要关闭被动模式,否则无法连接,连接FTP时客户端总是提示:“PORT 模式成功, 请更新你的站点配置文件”! 原因分析: 防火墙或者serv-u没有开放被动模式(PASV)的端口) 解决方法一:...
这是一个介绍在CentOS5.5上实现FTP服务及虚拟用户权限管理的服务器配置文档,由于虚拟用户不是系统用户,这样的FTP服务更加安全。
N年前写的FTP客户端,练习程序,支持常用命令,支持PASV与PORT模式 对应的服务器端为: http://download.csdn.net/source/2724443
@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客户端 主动模式 被动模 PORT PASV
FTP 的两种不同工作模式:PORT(主动模式)与PASV(被动模式) 1、首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制 连接专门用于FTP 控制命令及命令执行信息传送;数据连接专门用于...
构建了一个ftp服务器,通过命令ftp可登录,登录后,无法下载,上传,ls也无法执行。 通过 passive 开启和关闭 PASV模式,再ls 也是同样的问题, # 主动模式 $ pftp -v -A -d 211.159.185.xxx Connected to 211...
CrossFTP是一款与FLASHFXP同类的FTP客户端软件,它使用类似于WIN资源管理器的操作界面,可轻松帮你管理多个站点,在远程站点和本地文件夹进行同步,创建SFV格式的CRC校验,支持PASV和PORT连接模式,每个站点都可设置...
Linux服务器配置与管理项目8 FTP服务器配置与管理 Linux服务器配置与管理项目8--FTP服务器配置与管理全文共50页,当前为第1页。 【项目描述】 公司为方便内部信息的交流,需要一台FTP服务器实现公司内部文件的上传...
用c语言编写的,Winsock实现FTP客户端,实现断点上传和下载,支持pasv和port模式,列出服务器目录内容,改变服务器目录,添加删除目录,删除文件,断开连接。 平台:win7 开发工具:VS2008
connect_from_port_20=YES 是否确信端口传输来自20(ftp-data) chown_upload=YES chown_username=username 是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主 ...
由于项目的需要,参照这儿这儿朋友的一些原码写的一个... FtpDataTransMode.Pasv : FtpDataTransMode.Port); // 取得ファイルリストを取得する curFileCount = curFtpClent.DownLoad(); curFtpClent.DisConnect();
FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、...FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。
FTP对应PASV和PORT两种访问方式,分别为被动和主动,是针对FTP服务器端进行区分的,正常传输过程中21号端口用于指令传输,数据传输端口使用其他端口。 PASV:由客户端发起数据传输请求,服务器端返回并携带数据端口...