一、主被动

主动:

客户端从任意一个大于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. linux记录-docker配置mysql

    docker部署mysql 1.拉取镜像 docker pull mysql 2.docker  rm   containerID  删除镜像iD 3.创建镜像 docker run --name=m ...

  2. ABAP DEMO 年月的搜索帮助

    效果图: *&---------------------------------------------------------------------* *& Report YCX_ ...

  3. Redis应用场景大全

    1.字符串使用场景 a) 缓存功能 典型使用场景:Redis作为缓存层,MySQL作为存储层,绝大部分请求的数据都是从Redis中获取,由于Redis具有支撑高并发的特性,所以缓存通常能起到加速读写和 ...

  4. replicationController 使用

    [root@lab2 nginx-harbor]# cat http-test.yaml apiVersion: v1 kind: ReplicationController metadata: na ...

  5. idea中报Can't start Git: git.exe The path to Git executable is probably not valid. Fix it

    解决办法,点解Fix it,或者File ----setting------version control-------git,设置git的可执行文件路径就可以了 设置好了git的安装路径的可运行文件 ...

  6. STM32F405的 ADC参考电压选择问题

    1. STM32F405没有参考电压的输入引脚,那么可能是接的VDDA和VSSA 2. 看下文档的说明

  7. 【GStreamer开发】GStreamer基础教程09——收集媒体信息

    目标 有时你需要快速的了解一个文件(或URI)包含的媒体格式或者看看是否支持这种格式.当然你可以创建一个pipeline,设置运行,观察总线上的消息,但GStreamer提供了一个工具可以帮你做这些. ...

  8. 烽火传递【单调队列优化dp】

    题目大意: 1.给出长度为n的数组,要求每m个连续的元素之间必须选一个值作为代价,求该数组的最小代价. 题解思路: 1.显然是线性dp,dp[i]表示选择第 i 个元素时的最小总代价.很明显状态转移方 ...

  9. LeetCode 279. 完全平方数(Perfect Squares) 7

    279. 完全平方数 279. Perfect Squares 题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数 ...

  10. Java后台面试之java基础

    经典类概念性问题 1.java支持的数据类型有哪些?什么是自动拆装箱? 12.Java有哪些特性,举个多态的例子. 14.请列举你所知道的Object类的方法. 15.重载和重写的区别?相同参数不同返 ...