1、PORT(主动模式)

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

2、PASV(被动模式)

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

 3.如何选择

  • 1)如果不是必须需要,不要使用FTP服务,主动/被动模式,命令/数据端口,初学者很容易一下子就被搞蒙。
  • 2)如果一定要使用FTP服务,在今天的互联网环境里面,使用FTP被动模式进行连接传输。不要使用主动模式,除非你真的知道你在做什么

如果只是想知道答案的朋友,看到这里就可以了。对技术和原理感兴趣的朋友,请继续往下。

被动模式:

从上图中可以看到,被动模式是FTP服务器返回数据传输需要的端口,FTP客户端去连接FTP服务端。

绝大部分的互联网应用(比如Web/Http),都是客户端向服务端发起连接。换句话说,绝大部分互联网应用都是被动模式。

主动模式:

主动模式是FTP客户端向FTP服务器发送数据传输需要的端口,FTP服务端去连接FTP客户端的端口,与被动模式刚好相反。

需要注意的是,被动模式和主动模式的登录过程,都是FTP客户端去连接FTP服务器。

为什么绝大部分互联网应用都是被动模式

因为大部分客户端都是在路由器后面,没有独立的公网IP地址,服务器想要主动连接客户端,难度太大,在现在真实的互联网环境里面几乎是不可能完成的任务。

FTP主动模式与被动模式的区别及如何选择相关推荐

  1. ftp主动模式和被动模式的区别

    一.FTP是什么 FTP的中文名称是"文件传输协议",是File Transfer Protocol三个英文单词的缩写.FTP:是TCP/IP协议组中的协议之一,其传输效率非常高, ...

  2. FTP主动模式和被动模式的区别(转) 以及 Linux vsftp 相关配置

    转:https://www.cnblogs.com/ajianbeyourself/p/7655464.html 阅读目录 基础知识: 主动模式FTP: 被动模式FTP 备注: 总结 参考资料 dd ...

  3. 【FTP】FTP主动模式与被动模式

    主动模式 客户机与服务器之间建立连接时,客户机是大于1024的端口上,服务器是20端口. 客户机的端口是大于1024的,而服务器的端口是21端口接收请求,而是20端口给客户机回应. 允许FTP客户机从 ...

  4. 关于FTP主动模式与被动模式的一点理解

    又一次面试的时候,面试像这样问我:请简述FTP的主动模式与被动模式的区别?FTP这玩意不是天天都要用到的么,看起来这么简单的问题我居然回答不上来,好尴尬!经过几天的思考与理解,终于有点眉目,拙见让诸位 ...

  5. java ftp主动模式和被动模式_什么是ftp主动模式和被动模式

    FTP是文件传输协议的简称,ftp传输协议有着众多的优点所以传输文件时使用ftp协议的软件很多,ftp协议使用的端口是21(也称为控制端口),其实还有一个数据端口20,根据FTP工作方式的不同,数据端 ...

  6. FTP主动模式及被动模式

    FTP的特殊性: 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯.但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计.一般 ...

  7. FTP主动模式和被动模式!

    FTP简介 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一.FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端.其中FTP服 ...

  8. FTP主动模式和被动模式讲解

    主动模式FTP与被动模式FTP该如何选择 无论是主动模式还是被动模式,其要进行文件传输都必须依次建立两个连接,分别为命令连接与数据连结.而主动模式与被动模式的差异主要体现在数据连结通道上.为了说明两者 ...

  9. FTP笔记-FTP主动模式和被动模式

    FTP的全称为:File Transfer Protocol,也就是传文件的,分为主动模式和被动模式,具体看下面的图: 这里有个要注意的地方:大部分情况下都是用的被动模式,主动模式基本上不推荐用. 因 ...

最新文章

  1. python常用模块收录
  2. python代码写好了怎么运行不了-python代码可以直接运行吗 Python写了代码如何运行...
  3. Linux系统管理的基本入手点
  4. 数据结构--图(Graph)详解(四)
  5. 使用jdbc执行SQL实现登录查询1-带配置文件和工具类
  6. redis rua解决库存问题_如何解决高并发下的库存安全问题,没你想得那么复杂(附源码)...
  7. 老代码多=过度耦合=if else?阿里巴巴工程师这样捋直老代码
  8. 优秀!腾讯AI Lab开源模型压缩与加速框架PocketFlow!
  9. golang 的 tag
  10. java web scala_Springboot与scala编写第一个web程序
  11. java类型的对象可以存储属性_重识JVM(一)-类与对象在JVM中是如何存储的
  12. GooFlow流程设计工具结合Easyui设计工作流
  13. php检查浏览器是否有cookie,php – 检查是否启用了Cookie
  14. 写好的python如何在其它电脑上运行_写人作文-写人作文300字-400字-500字
  15. python基础学习(一)
  16. [已推荐到体育博客,点击查看更多精彩内容] 篮球上的幽默时刻(多图)
  17. 看了这个逻辑关系图,才更清晰为何不让你随便外出了
  18. C4D中英文对照—噪波基础设置
  19. 如何扫描图片变成文字?手把手教你转换操作
  20. 普林斯顿计算机科学怎么样,普林斯顿大学计算机科学世界排名2019年最新排名第8(THE世界排名)...

热门文章

  1. Maven的聚合与继承
  2. android悬浮窗只只点击按钮,只有安卓才能体验的悬浮窗!果粉看了默默收起手机...
  3. Docker中Spring boot+VueJS+MongoDB的前后端分离哲学摔跤
  4. 18个一线工作中常用Shell脚本(纯干货)
  5. 祝贺数字化学会•第三届数据分析应用大赛圆满落幕,恭喜以下队伍获奖
  6. ubuntu 18.04 安装 MT7921无线网卡驱动
  7. Java实现文件的加密与解密
  8. saleae logic 逻辑分析仪
  9. Android中获取当前时间戳
  10. SMR叠瓦盘原理及终极使用指南