FTP的主、被动模式

最近通过FTP服务器进行文件传输,总是被防火墙拦截,稍微研究了一下FTP访问过程中的两种模式:主动模式、被动模式。FTP只通过TCP连接,但不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。(也存在配置新的端口作为命令、数据端口)

主动模式

连接过程: FTP客户端,从任意的非特殊端口Nc(Nc>=1024)前往访问FTP服务器命令端口Ns=21,然后客户端指定端口Nc+1进行监听,等待FTP服务器数据端口的主动请求连接。
请求过程如下图所示:
Nc=1026,Ns=21,数据端口20

问题: FTP 的客户端并不会主动连接到服务器的数据端口,而是是告诉服务器它正在监听哪个端口,然后服务器发起连接到客户端上指定的端口(上图过程3)。但是,这样的连接有时候会被客户端的防火墙阻止。

被动模式

连接过程: FTP 的被动模式,缩写作 PASV,它工作的前提是客户端明确告知 FTP 服务器它使用被动模式。
客户端在本地打开两个随机的非系统端口 Nc 和 Nc + 1(Nc >= 1024)。端口 Nc连接服务器上的 21 端口(默认端口),但是客户端这次将会发出 PASV 命令,也就是不允许服务器连接回其数据端口 Nc + 1。这样,服务器随后会打开一个随机的非系统端口 P (P >= 1024),并将 P 发送给客户端作为 PASV 命令的响应。然后客户端启动从端口 Nc+1 到端口 P 的连接来传输数据。
流程如下图所示:

这样就变成了由客户端发起的主动连接,从FTP服务器来看就是被动连接。

总结

根据主、被动模式的不同,使用被动模式的时候可以避免客户端防火墙问题,但需要开通对服务器的某个大段的端口访问权限。

FTP的主、被动模式相关推荐

  1. FTP主动和被动模式区别?

    [前言] 要弄清FTP主动和被动模式区别,首先需要弄清端口.本质上ftp协议是TCP/IP的上层协议,即应用层协议,也就是说如果要实现一个ftp软件或工具,还是用socket去实现,因此需要弄清soc ...

  2. Zabbix Agent 主被动模式 坑与技巧

    Zabbix Agent的工作模式可以分为主动模式(Active)和被动模式(Passive),主动模式和被动模式在同一个Zabbix Agent上,是可以共存的,比如让一部分被动模式,另一部分处于主 ...

  3. linux调整主被动模式,Ftp修改为主被动模式命令

    FTP是有两种数据连接模式的,主动模式和被动模式. PORT(主动)方式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路.当需要传送数据时,客户端在命令链路上用 ...

  4. FTP可以建立连接不能传输文件(FTP主被动模式)

    问题现象:客户在云主机安全组上加入了20/21入规则,客户端可以连接FTP服务器,但是无法传输文件等. 原因:默认FTP连接传输使用被动模式未使用主动模式,防火墙(安全组)未设置正确的出入站规则 解决 ...

  5. ftp主动和被动模式_【扫盲】FTP基础知识详解

    关注我,你的眼睛会怀孕 本文主要介绍FTP的工作原理,FTP主动与被动两种工作模式. FTP 简介 FTP协议就是文件传输控制协议.它可以使文件通过网络从一台主机传送到同一网络的另一台主机上,而不受计 ...

  6. ftp主动和被动模式_ftp协议,深入理解ftp协议只需3步

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

  7. FTP主动跟被动模式区别

    目录 1.拓扑图 2.FTP协议简介 3.FTP工作原理 3.1.主动连接(PORT) 3.2.被动连接(PASV) 3.3.FTP主动模式穿越SNAT原理 3.4.FTP被动模式穿越DNAT原理 4 ...

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

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

  9. FTP主动和被动模式区别

    FTP是用来在两台计算机之间传输文件,是互联网中应用非常广泛的服务之一.FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,不支持UDP ...

最新文章

  1. XDP/eBPF — Overview
  2. 图像处理:图像复原与重建之逆滤波、维纳滤波、约束最小二乘滤波——Matlab实现
  3. php程序控制结构,PHP 控制结构
  4. Python框架篇之Django(Models数据表的创建、数据库配置)
  5. yum安装bind常用工具
  6. 明解C语言 入门 课后习题练习答案 第六章
  7. 那些好用的firefox扩展插件分享
  8. HTML元素居中的三种方法
  9. GIS(地理信息系统)名词解释大全(考研)
  10. 指派问题程序c语言,指派问题lingo程序样例
  11. SVN可视化管理工具
  12. 详解LVDS通信协议
  13. STM32的内存扩展应用实现,小内存的单片机也能干大事(FSMC+SRAM)
  14. 独家| 阿里腾讯大裁员!一鲸落,万物生,一切才刚刚开始
  15. 美光称对华为恢复部分芯片出货 股价一度上涨10%
  16. cmf+ThinkPHP6.0 配置使用多应用路由
  17. 百度云上传本地图片到对象存储BOS——python版
  18. 基层管理者的角色定位
  19. EFS与NTFS联合应用解析
  20. 毕业入职工作一年总结

热门文章

  1. linux 通配符与正则表达式
  2. HTML5:表单提交
  3. 批处理文件中获取当前所在路径的几种方法,以及写文件到txt
  4. iOS定位服务与地图开发(6)---使用程序外地图之调用谷歌Web地图
  5. 【Java从0到架构师】项目实战 - 会话管理、EhCache、JWT、权限管理 Shiro、打包部署
  6. 深度学习入门读书笔记—全
  7. 数据中台不是企业的万能妙药
  8. 在开发过程中调试报表插件详细教程
  9. flex4的新数据类型ArrayList
  10. 小白使用word小技巧-持续更新(以论文服务为主)