`
月亮不懂夜的黑
  • 浏览: 155984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重温FTP的主动模式和被动模式

    博客分类:
  • FTP
 
阅读更多

转载地址 https://my.oschina.net/binny/blog/17469

最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同。在此重温一下FTP的主动模式和被动模式的相关知识。

    在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题。如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题。要避免出现这样的问题,首先要了解FTP的工作模式。

    1.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以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

 

    2.两种模式的比较

     从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。

    主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。

    被动模式只需要服务器端开放端口给客户端连接就行了。

    3.不同工作模式的网络设置

    我在实际项目中碰到的问题是,FTP的客户端和服务器分别在不同网络,两个网络之间有至少4层的防火墙,服务器端只开放了21端口, 客户端机器没开放任何端口。FTP客户端连接采用的被动模式,结果客户端能登录成功,但是无法LIST列表和读取数据。很明显,是因为服务器端没开放被动模式下的随机端口导致。

    由于被动模式下,服务器端开放的端口随机,但是防火墙要不能全部开放,解决的方案是,在ftp服务器配置被动模式下开放随机端口在 50000-60000之间(范围在ftp服务器软件设置,可以设置任意1024上的端口段),然后在防火墙设置规则,开放服务器端50000-60000之间的端口端。

    主动模式下,客户端的FTP软件设置主动模式开放的端口段,在客户端的防火墙开放对应的端口段。

    4.如何设置 工作模式?

    哈哈,有人可能会问FTP服务器如何设置工作模式?实时上FTP服务器一般都支持主动和被动模式,连接采用何种模式是有FTP客户端软件决定。

分享到:
评论

相关推荐

    重温Observer模式--热水器·改

    在这个“重温Observer模式--热水器·改”的讨论中,作者将再次阐述如何不依赖C#的委托和事件来实现Observer模式,而是采用GOF(GoF,Gang of Four)的经典方式。 在Observer模式中,有两个核心角色:Subject(主题...

    重温微积分

    齐民友教授的著作《重温微积分》,不仅向我们展现了微积分的起源和发展历程,更重要的是,它让我们认识到了微积分是如何在不同领域的需求推动下不断发展壮大的。 微积分的历史可以追溯到17世纪,两位伟大的科学家...

    重温微积分 - 齐民友

    重温微积分 - 齐民友

    重温微积分(齐民友)

    总结来说,《重温微积分》不仅仅是一本关于微积分的书,它通过对微积分及其相关领域深入浅出的分析,向读者展示了数学的广度和深度,以及数学与物理学科之间的相互影响和促进。书中所讨论的内容适合那些已经掌握微...

    重温Activity(一)博文对应的源码

    本篇将基于“重温Activity(一)博文对应的源码”进行深入探讨,主要涵盖Activity的生命周期和启动模式,以及如何通过源码来理解这些概念。 首先,Activity的生命周期是Android开发者必须掌握的关键知识点。生命周期...

    10_vGPU完全分配模式和透传的区别

    10_vGPU完全分配模式和透传的区别 在讨论这个问题之前,我们首先要先明确一下VGPU完全分配模式和GPU透传的概念 我们知道VGPU就是按照一定的切割比例对物理GPU的切割,我们在M系列的GPU上常见的有1:4,1:8的切割模式...

    重温微积分(齐民友)

    总结来看,《重温微积分》一书通过全面而深入地讲解微积分及相关数学领域知识,不仅加深了读者对微积分理论的理解,还帮助读者建立起数学与其他科学领域之间的联系,激发了他们继续学习和探索数学的兴趣和动力。

    重温微积分 齐民友 2003.pdf

    《重温微积分》一书由齐民友教授编著,该书旨在帮助读者深入理解微积分及其相关领域的核心概念和技术,并通过历史回顾的方式,揭示这些理论背后的深刻含义和发展脉络。本书不仅覆盖了传统的微积分知识,还探讨了与之...

    设计模式沉思录.pdf

    ”2.4 访问权限2.5 关于VISITOR的一些警告2.6 单用户文件系统的保护2.7 多用户文件系统的保护2.8 小结第3章 主体和变体3.1 终止SINGLETON3.2 OBSERVER的烦恼3.3 重温VISITOR3.4 GENERATIONGAP3.5 TypeLaundering3.6 ...

    java,android常用设计模式,单例,mvp

    本人深圳安卓开发程序猿一枚,希望能一起...最近重温了一下java的设计模式,练练手,java设计模式有23种,写了12种常用的设计模式,一些觉得用不上就没写,水平有限,有问题欢迎留言一起加油email:674928145@qq.com!

    重温老三篇心得体会精选13篇.doc

    重温老三篇心得体会精选13篇.doc

    JavaScript设计模式之单例模式详解

    这一次重温一下《JavaScript设计模式与开发实践》,开篇为单例模式。 /** * pre 单例模式 * 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 * 应用:单例模式是一种常用的模式,有一些对象我们...

    重温微积分-齐民友

    齐民优经典微积分教程,打开新世界的大门!!相对于枯燥无味的高数教材,这本书能带来不一样的启发和更为深入地理解

    信息化条件下高中化学实验教学模式探究.docx

    - 强调教师角色的转变:在信息化环境下,教师需要不断提升自身的信息技术素养,更新教学观念,利用信息技术引导学生主动学习,提高课堂互动性和有效性。 - 安全教育的强化:通过错误实验的展示,使学生认识到实验...

    英雄联盟自定义房间创建工具,包括5V5训练营,(血月杀等轮换模式已被官方关闭).zip

    虽然该模式已被官方关闭,但通过自定义房间创建工具,玩家依然有机会重温这种快节奏、高爆发的战斗体验。 在“英雄联盟预测课设程序”中,我们可以推测这是一套用于模拟和预测英雄联盟游戏结果的系统,可能包含了AI...

    了解历史,带领大家重温经典

    带领大家重温经典

    C语言总结,重温

    C语言总结,某某培训资料总结,适合重温复习

    重温铝电解能量效率和温度控制.doc

    【铝电解能量效率和温度控制】在铝电解过程中,提高能量效率是至关重要的,因为这直接影响到生产成本和环境影响。提高电解效率可以从提升电流效率和电压利用率两方面着手。根据描述,中国当前的电流效率通常在92-93%...

    半导体物理和器件:Lecture IV 重温量子力学.pdf

    首先,文档提到了重温量子力学的主题,这通常意味着回过头去回顾量子力学的基本原理和实验,这些是理解更高级的物理现象和半导体器件工作原理的基础。 文档中提到了Erwin Schrödinger,他是量子力学的重要人物之一...

    重温少先队誓词学习教案.pptx

    重温少先队誓词学习教案.pptx

Global site tag (gtag.js) - Google Analytics