一、主被动

主动:

客户端从任意一个大于1024的端口现在假设为1234(非特权端口)连接到服务端的21端口(命令端口),随之客户端监听端口(N+1)即为1235端口(可以理解为这是客户端认定的数据端口),并且发送FTP命令“port 1235”到FTP服务器(理解为告诉服务端,我给你开放的数据端口是哪个,你传输数据时连接这个端口就可以)。紧接着需要传输数据时,服务端会从它自己的数据端口20,连接到客户端指定的数据端口1235

被动:

客户端开启一个FTP连接时,客户端打开任意两个非特权端口假设为1234和1235,1234端口连接服务器的21命令端口,与主动方式不同的是,客户端不是提交port命令允许服务器连接自身开放的数据端口;而是提交pasv命令,提交该命令结果就是服务端开启任意一个非特权端口假设为1224,并且发送命令“port 1224”到客户端。
然后客户端从刚才开放的数据端口1235到服务端的1224建立数据连接进行传输数据。

总结:

主动模式就是客户端开放端口连接到服务端的21端口建立命令连接;且告知服务器本地开放的数据端口,由服务端20端口主动和本地开放数据端口建立数据连接。
被动模式就是客户端开启两个端口,首先和服务器建立命令连接;提交pasv命令给服务端,服务端发送命令告诉客户端自身开放的数据端口;然后客户端主动从自身数据端口和服务器开放数据端口建立数据连接

二、补充

主动模式所需前提
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:

  1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
  2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
  3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
  4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)

被动模式所需前提

  1. 从任何大于1024的端口到服务器的21端口(客户端初始化的连接)
  2. 服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)
  3. 从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)
  4. 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)

本文章参考

简述FTP的主动模式与被动模式(精简)的更多相关文章

  1. FTP的主动模式和被动模式

    摘自http://blog.csdn.net/love_gaohz/article/details/50723164 http://my.oschina.net/binny/blog/17469 FT ...

  2. Linux FTP的主动模式与被动模式

    Linux FTP的主动模式与被动模式 一.FTP主被动模式        FTP是文件传输协议的简称,ftp传输协议有着众多的优点所以传输文件时使用ftp协议的软件很多,ftp协议使用的端口是21( ...

  3. FTP之主动模式vs被动模式

    背景说明 最近有个项目涉及到FTP的上传下载问题.在本地开发好的程序测试的时候能正常获取FTP内容,但一放到生产上却显示connection timeout,无法连接.经过一些研究,发现是防火墙造成的 ...

  4. ftp的主动模式和被动模式的配置和区别

    原文链接: https://www.cnblogs.com/lnlvinso/p/8947369.html ftp模式分为主动模式(active mode)和被动模式(passive mode),ft ...

  5. FTP的主动模式与被动模式

    FTP服务器使用20和21两个网络端口与FTP客户端进行通信. FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据. FTP主动模式: FTP客户端向服务器的FTP控制端口(默认 ...

  6. FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTP

    您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章.所谓磨刀不误砍 ...

  7. 【ftp】主动模式和被动模式

    来自:http://blog.csdn.net/liuhelong12/article/details/50218311 原博主不让转载全文,不过下面这部分是原博主转载别人的,所以我拿过来应该没问题吧 ...

  8. FTP 传输中的主动模式和被动模式

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

  9. Ftp主动模式和被动模式以及java连接ftp模式设置

    Ftp主动模式和被动模式以及java连接ftp模式设置 https://www.cnblogs.com/huhaoshida/p/5412615.html (1) PORT(主动模式) PORT中文称 ...

随机推荐

  1. [译]如何在GitHub仓库创建一个标签tag, 并推送到远程分支?

    问: 我在GitHub上有一个仓库,我需要给他打个tag.我在shell打了tag,但是在Github上没有显示出来.我还要做其他什么么? 我在shell中使用的命令是: git tag 2.0 当我 ...

  2. 基于grafana+prometheus构建Flink监控

    先上一个架构图 Flink App : 通过report 将数据发出去 Pushgateway :  Prometheus 生态中一个重要工具 Prometheus :  一套开源的系统监控报警框架 ...

  3. linux中解决出现:^H^H^H^H

    解决出现:^H^H^H^H 把stty erase ^H 添加到.bash_profile中 vim /etc/profile stty erase ^H su root source /etc/pr ...

  4. 微软3389远程漏洞CVE-2019-0708批量检测工具

    0x001 Win下检测 https://github.com/robertdavidgraham/rdpscan C:\Users\K8team\Desktop\rdpscan-master\vs1 ...

  5. C# 需要引用MySql.Data.dll,请在Nuget安装最新稳定版本,如果有版本兼容问题请先删除原有引用 (SqlSugar)

    修改项目的app.config中的引用版本号即可

  6. 修改config中的assemblyBinding

    修改config中的assemblyBinding 未测试这段代码 private void SetRuntimeBinding(string path, string value) { XmlDoc ...

  7. js复制json对象

    var newJson = JSON.parse(JSON.stringify(json对象));

  8. R镜像源的切换

    如果是默认的R安装一般会很慢 install.packages(pkgs, lib, repos = getOption("repos"), contriburl = contri ...

  9. [转帖]JAVA虚拟机和安卓虚拟机的区别

    作者:天光链接:https://www.zhihu.com/question/20207106/answer/14654536来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...

  10. SpringBoot之分页插件PageHelper的使用

    在springboot中使用PageHelper插件有两种较为相似的方式,接下来我就将这两种方式进行总结. 方式一:使用原生的PageHelper 1.在pom.xml中引入依赖 <depend ...