FTP文件传输协议两种方式的工作原理

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

下面介绍一个这两种方式的工作原理:

Standard模式

FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP
server必须和客户端建立一个新的连接用来传送数据。

Passive模式

在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

现在的FTP软件里面包括在IE5以上的版本里面也已经支持这两种模式了。一般一些FTP客户端的软件就比较好设置了,一般都有一个PASV的选项,比如CuteFTP,传输的方式都有Standard和PASV的选项,可以自己进行选择;另外在IE里面如果要设置成PASV模式的话可以选中工具-Internet选项-高级-为FTP站点启用文件夹视图,否则就采用Standard模式。

IE客户端的配置:

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以FTP的Standard模式在许多时候在内部网络的机器通过防火墙出去的时候受到了限制,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。当然也可以设置成功,首先要创建一条规则就是允许内部的IP连接外部的IP的21端口;第二条就是禁止外部IP的TCP 20端口连接内部IP的<1024的端口,这条是为了防止外部连接内部的常规端口;第三条验证ACK是否等于1,这个的原理就参见TCP建立连接的三次握手吧。所以如果安全的配置的话非常困难,这个时候就想起来了PASV模式,因为不用建立新的连接,所以也就不会涉及到后面的问题了。但是管理员可能不想使用PASV模式,因为这个时候FTP
Server会开放一个随机的高端口,尽管在IIS4和IIS5里面端口的范围是1024-5000,但是许多FTP Server的端口范围达到了1024-65535,这个时候在这个主动开放的随机端口上是有完全的访问权限的,如果IIS也要设置成开放的端口为1024-65535,具体方法如下:

1. regedt32

2. 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

3. 编辑-添加-数值

value Name: MaxUserPort Data Type: REG_DWORD value: 65534

所以如果遇到了有防火墙的话或者怕配置麻烦的话还是采用PASV模式比较好些,但是如果真的对安全的需求很高的话建议采用Standard模式。

在IIS中的FTP服务器端对两种客户端都支持,没有办法选择单独支持某一种客户端。

FTP服务端口号20(数据端口)加一就是FTP控制端口的号码21。

CUTFTP客户端:

或:

时间: 2024-10-12 14:06:57

FTP文件传输协议两种方式的工作原理的相关文章

【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

第35章      FTP文件传输协议基础知识 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) 35.1  初学者重要提示 35.2  FTP基础知识参考资料 35.3  FTP基础知识点 35.4  总结 35.1  初学者重要提示 FTP文件传输协议在实际项目中有比较重要的实用价值,需要初学者对FTP的基础知识也有个认识. 35.2  FTP基础知识参考资料 大家可以从以下地址获得FTP

Linux经常使用的文件传输的几种方式

Linux经常使用的文件传输的几种方式 1.终端新建stfp协议连接 或者命令方式: sftp -P22 [email protected] 端口可以不用填写,默认是22,端口的P是大写. 将本地路径下的文件传输文件到linux指定路径下: 进入需要上传的目录下: cd /mnt/page put D:/CityInfo.txt 这样就完成上传CityInfo.txt到linux的/mnt/page下. 或者直接指定目录: put D:/CityInfo.txt     /mnt/page/ 将

转载:删除github上文件夹的两种方式

http://www.jianshu.com/p/286be61bb9b8 删除github上文件夹的两种方式(解决已经加入ignore的文件夹无法从远程仓库删除的问题) 如果此文件夹已被加入git追踪,那么删除方法很简单,只需要将此文件夹删掉,然后提交一下就可以了如果次文件夹曾经被加入过git追踪,现在被加入.gitignore里了,但是github上还有此文件夹.对于这种情况,稍微有点复杂,因为已经加入.gitignore的文件或文件夹,无法对其进行提交了,哪怕是将其删除,都无法提交.我们用

FTP文件传输协议(二)

FTP文件传输协议(二) 3.访问控制列表 [[email protected] vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [[email protected] vsftpd]# cat user_list 查看用户列表的配置文件 # vsftpd userlist # If userlist_deny=NO, only allow users in this file //如果使用userlist_den

FTP 文件传输协议

FTP 文件传输协议 什么是FTP? FTP全称是文件传输协议,简单点就是通过这个协议我们可以实现文件的传输. FTP软件一般分为服务端和客服端. 常用的FTP软件 pureFTP 编译安装FTP 进入官网下载 https://www.pureftpd.org/ 具体下载地址:?[https://download.pureftpd.org/pub/pure-ftpd/releases/](https://download.pureftpd.org/pub/pure-ftpd/releases/)

第六篇、文件处理之文件修改的两种方式

目录 第六篇.文件处理之文件修改的两种方式 说明 方式一 方式二 总结 第六篇.文件处理之文件修改的两种方式 说明 文件的数据是存放在硬盘上的,所以只能覆盖,不能直接修改,平时看到的修改文件都是障眼法的效果,具体的两种实现方式 方式一 将硬盘里的文件全部加载到内存里,内存是可以直接修改的,修改完了后,再由内存覆盖到硬盘里 import os with open('37r.txt') as fr, open('37r_swap.txt', 'w') as fw: data = fr.read()

文件修改的两种方式

文件修改的两种方式 文件的数据是存放于硬盘上的,因而只存在覆盖.不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式. 一.方式一 将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器). import os with open('info.txt', 'r', encoding='utf-8') as fr, open('info_test.txt', 'w', encodin

FTP文件传输协议之vsftpd服务

一.FTP服务概述 FTP(File Transfer Protocol,文件传输协议)是典型的C/S结构的应用层协议,需要由服务端软件.客户端软件共同实现文件传输功能 FTP服务器默认使用TCP协议的20.21端口与客户端实现通信.20端口用于建立数据连接,并传输数据文件:21端口用于建立控制连接,并传输FTP控制命令.FTP数据连接分为主动模式和被动模式 主动模式:服务器主动发起数据连接 被动模式:服务器被动等待数据连接 vsftpd软件 vsftpd是目前在Linux/Unix领域应用十分

Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )

https://blog.csdn.net/buster_zr/article/details/80244542 FTP FTP 是 File Transfer Protocol (文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(