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模式。 1. PORT(主动模式): 在PORT模式下,客户端首先建立一个控制连接到FTP服务器的端口21。然后,客户端会告诉服务器它愿意接收数据的端口号(通常是一个随机...
处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动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,...
在CentOS 8系统中,配置vsftpd多用户FTP服务器,实现多虚拟用户FTP连接,并同时解决FTP PORT和PASV模式下的问题。 vsftpd简介 vsftpd是非常流行的FTP服务器软件,支持多种操作系统,包括CentOS、Ubuntu、Debian等。...
FTP服务器Port和Pasv模式释义.pdf
FTP 的两种不同工作模式:PORT(主动模式)与PASV(被动模式) 1、首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制 连接专门用于FTP 控制命令及命令执行信息传送;数据连接专门用于...
pasv_max_port=65535 guest_enable=YES guest_username=ftp chroot_local_user=YES user_config_dir=/etc/vsftpd/userconf ``` 启动vsftpd服务: ```bash /usr/local/sbin/vsftpd & ``` 创建虚拟用户,这通常涉及...
使用 flashfxp 或传东西时必须要关闭被动模式,否则无法连接,连接FTP时客户端总是提示:“PORT 模式成功, 请更新你的站点配置文件”! 原因分析: 防火墙或者serv-u没有开放被动模式(PASV)的端口) 解决方法一:...
第一个端口连接服务器的 21 端口,但与主动方式的 FTP 不同,客户端不会提交 PORT 命令并允许服务器来回连它的数据端口,而是提交 PASV 命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送 ...
这个客户端是多年前作为编程练习而创建的,具备基本的FTP命令功能,支持主动模式(PORT)和被动模式(PASV)连接。 **FTP客户端基础** FTP客户端是一个应用程序,允许用户通过FTP协议从远程FTP服务器下载文件、上传...
FTP有两种主要的工作模式:PORT(主动模式)和PASV(被动模式)。 在PORT模式下,客户端首先发起与服务器的控制连接,然后告诉服务器它将监听的端口号,通常是命令连接端口号加1。服务器随后会从其数据端口(20)...
在数据传输过程中,服务器和客户端可能使用主动模式(PORT)或被动模式(PASV)来建立数据连接。 六、匿名与非匿名用户登录 匿名FTP允许任何用户无需提供真实身份即可访问服务器的部分资源。通常,匿名用户的用户名...
四、常见的FTP客户端软件PORT模式与PASV模式的切换方法。大部分FTP客户端默 认使用PASV模式。IE默 认使用PORT模式。在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动...
@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,...
### FTP配置与安全 #### 一、FTP基础知识 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议和服务。FTP采用客户机/服务器模式,即客户端通过FTP客户端软件与FTP服务器建立连接,实现文件的...
c#ftp客户端 支持主动和被动模式,c#ftp客户端 主动模式 被动模 PORT PASV
2. **PASV模式**:FTP的主动(PORT)模式和被动(PASV)模式是两种主要的连接方式。PASV模式在客户端打开一个数据连接到服务器,而不是服务器主动连接到客户端,这样可以解决防火墙和NAT问题。要实现PASV模式,我们...
在 FTP 客户端程序中,使用到的 FTP 命令包括 USER、PASS、SIZE、REST、CWD、RETR、PASV、PORT、QUIT 等。每个命令都有 3 到 4 个字母组成,命令后面跟参数,用空格分开。每个命令都以 "\r\n"终止。要下载或上传一个...