一、FTP的PORT(主动模式)和PASV(被动模式)

(1)PORT(主动模式)

PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上), 发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端 开放的端口连接,发送数据,原理如下图:

(2)PASV(被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:FTP 客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

二、两种模式的比较

 从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。被动模式只需要服务器端开放端口给客户端连接就行了。

三、不同工作模式的网络设置

我在实际项目中碰到的问题是,FTP的客户端和服务器分别在不同网络, 两个网络之间有至少4层的防火墙,服务器端只开放了21端口, 客户端机器没开放任何端口。FTP客户端连接采用的被动模式,结果客户端能登录成功,但是无法LIST列表和读取数据。很明显,是因为服务器端没开放被动 模式下的随机端口导致。由于被动模式下,服务器端开放的端口随机,但是防火墙要不能全部开放,解决的方案是,在ftp服务器配置被动模式下开放随机端口在 50000-60000之间(范围在ftp服务器软件设置,可以设置任意1024上的端口段),然后在防火墙设置规则,开放服务器端 50000-60000之间的端口端。主动模式下,客户端的FTP软件设置主动模式开放的端口段,在客户端的防火墙开放对应的端口段。

四、如何设置工作模式

FTP服务器如何设置工作模式?实际上FTP服务器一般都支持主动和被动模式,连接采用何种模式是由FTP客户端软件决定(客户端如果发送PASV命令,就是被动模式,没有发就是主动模式)。

(1)客户端设置

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

1)IE:工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。

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

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

4)FlashFXP:选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式” 或站点管理-> 对应站点 -> 选项 -> “使用被动模式”或快速连接 -> 切换 -> “使用被动模式”。

(2)服务器端vsftp配置:

主动模式配置

Port_enable=YES 开启主动模式

Connect_from_port_20=YES 当主动模式开启的时候 是否启用默认的20端口监听 Ftp_date_port=%portnumber% 上一选项使用NO参数是 指定数据传输端口

被动模式配置

connect_from_port_20=NO

PASV_enable=YES 开启被动模式

PASV_min_port=%number% 被动模式最低端口

PASV_max_port=%number% 被动模式最高端口

LINUX---FTP两种工作模式:主动模式和被动模式相关推荐

  1. linux apache两种工作模式详解

    apache两种工作模式详解 刚接触这两个配置时很迷糊,全部开启或全部注释没有几多变化.今天搜索到这么一篇讲得还不错的文章,看了几篇,还是不能完全记住,做一个收藏. 空闲子进程:是指没有正在处理请求的 ...

  2. FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)

    http://jiahej.iteye.com/blog/179295 在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器 ...

  3. linux有两种工作界面,Linux 向用户提供了两种界面:用户界面和系统调用。

    [单选题]This is the very book I am looking for. [多选题]在服务质量差距模型中,对管理认识差距(即差距1)管理的内容有( ). [单选题]张某和赵某两家有仇. ...

  4. FTP服务器的两种工作模式

    FTP协议: FTP(File transfer Protocol)是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口, 其中端口20(数据端口)用于进行数据传输,端 ...

  5. FTP文件传输协议原理详解(两种工作模式)

    初始FTP     文件传输协议(File Transfer Protocol,缩写:FTP)是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议.文件传送(file transfer ...

  6. FTP两种模式: 主动(FTP Port)模式和被动(FTP Passive)模式

    FTP(File Transfer Protocol)是文件传输协议的简称.正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件 ...

  7. Linux网络编程——Day12 两种高效的并发模式

    今天继续学习高性能服务器框架,上一篇关于高性能服务器的基础知识连接如下: Linux网络编程-Day11 高性能服务器程序框架_Jane_Librastar的博客-CSDN博客https://blog ...

  8. 8086的两种工作模式_Lora自组网网关的两种工作模式

    LoRa技术具有远距离.低功耗.多节点.低成本和抗干扰的特点.另一方面,LoRa低速率支持较小的数据传输. 服务器.终端(内置LoRa模块).网关(或基站).云四部分组成了LoRa网络.如下所示 Lo ...

  9. seaweedfs上传文件为什么要先申请文件号?(/dir/assign)(两种工作模式:Volume模式与Filer模式)(seaweed上传文件)

    文章目录 SeaweedFS两种工作模式 Volume模式 Filer模式 总结 SeaweedFS两种工作模式 SeaweedFS是一个分布式文件系统,它有两种模式:Volume模式和Filer模式 ...

  10. Oracle 的两种工作模式Dedicated Server 和 Shared Server

    Oracle可以分成两种工作模式, 分别是 Dedicated Server 和 Shared Server                   1  Dedicated Server         ...

最新文章

  1. STM32CubeMX简介、下载及安装(NB-IoT专栏—基础篇3)
  2. 美国正在衰落的24个行业:“猝不及防”还是“温水煮青蛙”?
  3. [云炬创业基础笔记]第七张创业团队测试2
  4. android image 位移动画_深入理解Android之动画
  5. 怎么把excel文件转成dta_Word怎么转成PDF文件?首选就是这个转换方法!
  6. 【STM32】I2C相关函数和类型
  7. android之相机开发
  8. XMLHttpRequest() 请求 返回结果JSON 对象与JSON 字符串处理
  9. MIP 移动网页加速器视频教程全新发布
  10. 第 2 节:前端面试指南 — HTML篇
  11. xml中else if写法_面试官:优化代码中大量的if/else,你有什么方案?
  12. Ubuntu16.04 下SU画图,批量和单个
  13. php判断平年和闰年,平年和闰年的三种判断方法
  14. python删除行_python 删除文件中指定行
  15. 透彻解析云原生在数字化转型中的应用实践,PaaS功不可没
  16. 【Vue源码】Vue中DOM的异步更新策略以及nextTick机制
  17. 动物基因组测序基础分析流程总结(GWAS全流程第一部分:WGS基础流程)
  18. DIV+CSS系统学习:转载
  19. scrapy 中日志的使用
  20. 超声波传感器(CHx01) 学习笔记 Ⅲ-API介绍

热门文章

  1. 用python实现小黄人自动绘制
  2. 更换node版本方法
  3. MATLAB的四种取整方法
  4. 上联“今年年尾明年年头年年年尾对年头”,续写下联
  5. java计算机毕业设计后勤管理系统源码+mysql数据库+系统+lw文档+部署
  6. linux如何打开gz文件,gz文件扩展名,gz文件怎么打开?
  7. De Morgan's laws
  8. matlab 最小二乘法拟合_实例分析,如何用最小二乘法做线性回归?
  9. highlight.js的使用
  10. 《Royal Highness》 Ep16 【HD】 Only on China Zone翻译