ftp主动和被动模式_【扫盲】FTP基础知识详解
关注我,你的眼睛会怀孕

本文主要介绍FTP的工作原理,FTP主动与被动两种工作模式。
FTP 简介
FTP协议就是文件传输控制协议。它可以使文件通过网络从一台主机传送到同一网络的另一台主机上,而不受计算机类型和操作系统类型的限制。服务器、大型机,还是DOS操作系统、Windows操作系统、Linux操作系统,只要双方都支持FTP协议,就可以方便地传送文件。
FTP 的两种模式
FTP分为两种工作模式:主动模式(Active)与被动模式(Passive)
FTP 主动工作模式(PORT)原理
FTP客户端首先会随机开启一个大于1024的端口N(1032),并连接服务端的21号端口,然后开放M端口(与端口N没直接联系)进行监听, 同时向服务器发出PORT 1033命令通知服务器自己的在接收数据时所使用的端口号。服务器在传输数据的时候,服务端通过自己的20端口去连接客户端的端口M。当不需要传输时,此连接会自动断开。如下图(图中端口号仅为示例):
FTP 被动模式(PASV)原理
FTP客户端随机开启一个大于1024的端口X向服务器的21端口发起连接,同时会开启X+1端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口Y进行监听,然后在ACK回复中通知客户端,自己的数据端口是Y。客户端收到命令后,会通过X+1号端口连接服务器的端口Y,然后在两个端口之间进行数据传输。这样就能使防火墙知道用于数据连接的端口号,而使数据连接得以建立 。如下图:
主动模式与被动模式区别
在主动模式中,传输数据时,服务器是主动连接客户端的数据端口。但如果客户端存在防火墙,那么当服务端在连接客户端数据端口的时,就有可能被防火墙阻挡。所以FTP主动模式在许多时候用于没有防火墙隔离的内部网络机器。一但有防火墙的存在,那么一般就不会在使用主动模式,而是被动模式。因为在被模式中,命令连接与数据连接,都是由客户端发起的,而防火墙一般不会对出去的数据包进行阻挡。
同时,FTP的主动模式(PORT)和被动模式(PASV)都只ipv4,在针对IPV6扩展后就出现EPRT、EPSV相对应。
简而言之,客户端被防火墙保护时,尽量使用被动模式;服务端被保护时,尽量使用主动模式。但不管使用哪种模式,数据连接的目标端口都不固定,无法简单配置基于端口的策略,当前防火墙一般通过解析FTP控制连接数据,临时开启数据连接访问权限的方式实现(经测试确认H3C防火墙确实采用此方式支持FTP协议,且V5版本不支持EPSV、EPRT)。
常见FTP客户端支持的连接方式:
PORT:主动模式
EPRT:增强主动模式
PASV:被动模式
EPSV:增强被动模式
FTP与其他文件传输类型对比
1
end
来源:twt企业IT社区
年度热文
【收藏】华为5700系列交换机常用配置示例
【科普】为什么ip地址通常以192.168开头?
【干货】图文并茂磁盘阵列RAID详解
【教程】手把手zabbix安装教程
【实验】小型企业网三层架构
【干货】运维常用的17款监控系统
【热点】又一起删库跑路事件!公司损失近 10 亿
【干货】TCP协议详解
【技术】老司机网络排障实例
【必看】网工常见10大问题及解决方法
【热点】11天竣工交付,火神山医院背后的网络建设
【必看】中型企业网络构建——OSPF区域划分(特殊域)
【必看】局域网ip地址不够用怎么办?
【基础】Ansible 自动化运维工具简单入门
【收藏】cisco设备报错消息汇总
【干货】TCP连接的状态详解以及故障排查
【必看】华为交换机型号解读
【必看】常见23种网络速度变慢的解决方法
系统集成/认证培训
买设备,找我们
IT维保,找我们
IT培训,找我们
相关文章:

单页面与多页面的区别及优缺点
单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。所有的页面内容都包含在这个所谓的主页面中。但在写的时候,还是会分开写(页面片段)&…

git使用手册
git使用手册 由 赵庆鹏创建, 最后修改于十二月 14, 2018 一、文件比较 1. 新建两个文件hello/world,内容可自定义,两个文件的内容,需要不相同,进行文件比对。2. 使用diff -u hello world > diff.txt,进行文件比…

python 乒乓球_python乒乓球
这是我用python编的一个小游戏,需要下载simpleaudio库,喜欢的可以玩。 以下是源代码: import turtle as t import simpleaudio as sa yeahsa.WaveObject.from_wave_file(‘bounce.wav’) #创建背景 game t.Screen() game.title(‘双人乒乓球…

《深入浅出Windows Phone 8应用开发》
章节 第1章 概述第2章 开发环境第3章XAML简介第4章 常用控件第5章 布局管理第6章 数据存储第7章 图形动画第8章 多媒体 第9章 启动器与选择器 第10章 手机感应编程第11章 MVVM模式第12章 Silverlight Toolkit组件第13章 网络编程第14章 异步编程与并行编程第15章 联系人和日程安…

CentOS7.4到Elasticsearch一路坑(五)
来来,zookeeper我们聊聊 zookeeper我是搭建了一个集群的,但是搭建完发现,bin/zkServer.sh status一直是不正常的 看了一下日志,的确有问题(有问题你还起来了?) 从这篇文章参考了一下:…

轻量级git服务器 Gogs git 服务器搭建
gogs搭建教程: 原文链接: https://garthwaite.org/docker-gogs.html 内容: Dockerized Gogs git server and alpine postgres in 20 minutes or less // under docker I’ve babysat gitlab omnibus before and it wasn’t any fun. So when a group of volunteer…

akaze特征匹配怎么去掉不合适的点_SIFT特征点
SIFT特征点图像特征点检测一直是研究的热点,从早期的harris角点检测开始,一直有很多人关注图像特征点的检测。最早人们关注图像中的角点,主要是因为角点能够代表图像中的一些特征。比如,通过检测两幅图像中的角点,可以…

fopen 中 按文本读写与按二进制读写 实例
参考:http://blog.csdn.net/hinyunsin/article/details/6401854 #include <stdio.h>int main(int argc, char *argv[]) {char he[20] "hello world\n";FILE *outfile fopen("t.txt", "wt");fwrite(he, sizeof(char), 20, out…
狼奔代码生成工具使用心得
狼奔代码生成工具(http://ltfwan.d33140.jit8.cn)是一款为程序员设计的代码生成器,更是一款软件项目智能开发平台,它可以自动生成ASP.NET页面及后台代码,采用了面向服务的架构(SOA)。那么,要如何通过狼奔代…

h5在手机端实现简单复制
<a href"https://blog-static.cnblogs.com/files/ruanqin/clipboard.min.js">下载clipborrdjs</a> 下载地址:https://blog-static.cnblogs.com/files/ruanqin/clipboard.min.js html中: <div id"app"> <a hr…

MQTT topic匹配规则
MQTT topic匹配规则 原文连接: https://blog.csdn.net/JiangCheng817/article/details/81333893 内容: 主题层级分隔符 “/”: 表示层级关系 单层通配符 “”: 订阅消息时使用,匹配一层主题如 a/ 匹配诸如 a/b a/c 但是不能匹配 a/b/c,特别的单独的可…

产品经理岗位职责说明_技术负责人岗位职责,五大方面,超越岗位抓住未来才是技术大牛...
技术负责人一般指建设领域、生产制造领域、电子商务领域,负责全过程的技术决策、技术指导。技术负责人的岗位职责包含五个方面:技术职责:负责具体技术方案设计思路、关键参数等技术决策,负责对所有技术人员进行具体技术实施时的技…

Jane Eyre
Do you think I could stay here to become nothing to you? Do you think because I am poor , and obscrue, and plain that I am soulless, and heartless? I have as much soul as you and fully as much heart. And if God gifted me beauty and wealth, I should have …

Ubuntu 10.04 LTS 网站权限不够
wordpress不能自动升级config文件没法写找不到目录wordpress修改无法保存。。。。这些都是权限不够。解决办法:给apache一个访问www目录的权限,一般linux的网站目录是/srv/www/此时用下面的命令:chown www-data:www-data /srv/www/ -r

简单配置nginx反向代理,实现跨域请求
简单配置nginx去做反向代理,实现跨域请求 简单介绍nginx的nginx.conf最核心的配置,去做反向代理,实现跨域请求。 更多详细配置,参考nginx官方文档 先介绍几个nginx命令 打开nginx.conf文件/usr/local/etc/nginx/nginx.conf重新加载…

c# redis hashid如何设置过期时间_Redis中Key过期策略amp;淘汰机制
1. Redis中设置Key过期时间我们有两种方式设置过期时间1.1 设置多久后过期设置一个 key 10s 过期,可以这样127.0.0.1:6379> SET key value EX 10127.0.0.1:6379> SET key value PX 10000PX 后面是毫秒ms,EX是秒。设置完成后,10s内&…

在CISCO路由器上配置DHCP与DHCP中继
企业网络中DHCP环境的搭建 企业DHCP需求描述: 在大型企业中,一般都有很多个部门,各部门之间有时要求不能互通,这可以通过使用VLAN来解决,但是上千个人IP配置也是一件极大耗费人力的事。所以我们迫切需求一种全自动的&a…

MQTT消息长度限制
原文连接: https://stackoverflow.com/questions/34522053/what-is-the-maximum-message-length-for-a-mqtt-broker 内容: 单条消息默认限制大小256MB,可以通过配置修改 It’s not entirely clear what you’re asking here, so I’ll answer both pos…

jQuery EasyUI API 中文文档 - DataGrid 数据表格
扩展自 $.fn.panel.defaults ,用 $.fn.datagrid.defaults 重写了 defaults 。依赖panelresizablelinkbuttonpagination用法1. <table id"tt"></table> 1. $(#tt).datagrid({ 2. url:datagrid_data.json, 3. columns:[[ 4. …

point-to-point(点对点) 网口
点对点连接是两个系统或进程之间的专用通信链路。想象一下直接连接两个系统的一条线路。两个系统独占此线路进行通信。点对点通信的对立面是广播,在广播通信中,一个系统可以向多个系统传输。 点对点通信在OSI协议栈的物理、数据链路层和网络层中定义。 点…

springboot中文文档_登顶 Github 的 Spring Boot 仓库!艿艿写的最肝系列
源码精品专栏中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件 Elastic-Job 源码解析分布式事务中间件 TCC-Transaction 源码解析Eureka 和 Hystrix 源码解…

浏览器缓存网站静态文件
当用户第一次访问你的网站时,让用户的浏览器缓存网站的静态文件,如图片\CSS\JS等,然后接访问接下来的页面就会直接调用浏览器的缓存而不是重新从服务器下载,这样既节省带宽和流量又加快了用户打开网页的速度,一石三鸟,…

MQTT 心跳和keepalive配置
MQTT 心跳和keepalive配置 内容: 正常MQTT 服务器端会配置一个超时时间,一般为60s, 在这个时间段内一个连接如果没有数据传输的话,服务端会主动断开连接以释放资源, 有两种方式可以规避这个问题: 方式1: 最为简单&a…

android开发我的新浪微博客户端-登录页面功能篇(4.2)
上一篇中完成了如上图的UI部分的实现,现在继续来讲功能的实现,用户登录操作主要就是账号列表显示和选择账号登录两个功能其他的都是些简单的辅助功能,首先是点击id为iconSelectBtn的ImageButton时显示用户选择窗口,这个时候去数据…

大脚本运行常见问题总结
1. Allowed memory size of 8388608 bytes exhausted 出现原因:脚本运行超过最大运行时间 解决方法:1 ) 修改 php.ini 文件。将memory_limit 由默认值改成合适的大小,重启服务器。 2)在脚本中加入 ini_set("memory_limit&qu…

MQTT Qos类型解释
MQTT Qos类型解释 原文连接: https://blog.csdn.net/yangguosb/article/details/78653228 内容: Qos0 发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息,流程如…

对做技术的一点思考
做技术在中国有没有前途?这个问题是每个在国内做技术的人都会思考的问题。在我看来,我们之所以会产生样的困扰,主要原因在于我们所谓的研发都是二次开发,国内任何公司,研究单位(除开严格保密的单位…

iis伪静态排除css_魔众系统伪静态规则怎么配
魔众系列系统目前已经有大量用户在使用,大家对于伪静态的配置一直有所疑惑,经过和技术小哥哥的协商,我们特意将三种不同的 HTTP 服务器配置文件分享给大家,方便大家参考。魔众系列系统目前已经有大量用户在使用,大家对…

R.drawable 转 bitmap
引用:http://zhidao.baidu.com/question/291703800.html Bitmap bmpBitmapFactory.decodeResource(r, R.drawable.icon); Bitmap newb Bitmap.createBitmap( 300, 300, Config.ARGB_8888 ); Canvas canvasTemp new Canvas( newb ); canvasTemp.drawBitmap(bmp, …

洛谷P3254 圆桌问题(最大流)
题意 $m$个不同单位代表参加会议,第$i$个单位有$r_i$个人 $n$张餐桌,第$i$张可容纳$c_i$个代表就餐 同一个单位的代表需要在不同的餐桌就餐 问是否可行,要求输出方案 Sol 比较zz的最大流 从$S$向$1-m$连流量为$r_i$的边 从$m 1$向$m n$连流…