简述FTP的主动模式与被动模式(精简)
一、主被动
主动:
客户端从任意一个大于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:
- 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
- FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
- FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
- 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)
被动模式所需前提
- 从任何大于1024的端口到服务器的21端口(客户端初始化的连接)
- 服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)
- 从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)
- 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)
简述FTP的主动模式与被动模式(精简)的更多相关文章
- FTP的主动模式和被动模式
摘自http://blog.csdn.net/love_gaohz/article/details/50723164 http://my.oschina.net/binny/blog/17469 FT ...
- Linux FTP的主动模式与被动模式
Linux FTP的主动模式与被动模式 一.FTP主被动模式 FTP是文件传输协议的简称,ftp传输协议有着众多的优点所以传输文件时使用ftp协议的软件很多,ftp协议使用的端口是21( ...
- FTP之主动模式vs被动模式
背景说明 最近有个项目涉及到FTP的上传下载问题.在本地开发好的程序测试的时候能正常获取FTP内容,但一放到生产上却显示connection timeout,无法连接.经过一些研究,发现是防火墙造成的 ...
- ftp的主动模式和被动模式的配置和区别
原文链接: https://www.cnblogs.com/lnlvinso/p/8947369.html ftp模式分为主动模式(active mode)和被动模式(passive mode),ft ...
- FTP的主动模式与被动模式
FTP服务器使用20和21两个网络端口与FTP客户端进行通信. FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据. FTP主动模式: FTP客户端向服务器的FTP控制端口(默认 ...
- FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTP
您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章.所谓磨刀不误砍 ...
- 【ftp】主动模式和被动模式
来自:http://blog.csdn.net/liuhelong12/article/details/50218311 原博主不让转载全文,不过下面这部分是原博主转载别人的,所以我拿过来应该没问题吧 ...
- FTP 传输中的主动模式和被动模式
最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同.在此重温一下FTP的 ...
- Ftp主动模式和被动模式以及java连接ftp模式设置
Ftp主动模式和被动模式以及java连接ftp模式设置 https://www.cnblogs.com/huhaoshida/p/5412615.html (1) PORT(主动模式) PORT中文称 ...
随机推荐
- k8s记录-flanneld+docker网络部署(四)
1)程序准备tar xvf flannel-v0.10.0-linux-amd64.tar.gz mkdir -p /data/projects/common/kubernetes/{bin,cfg, ...
- Python - Django - CSRF
CSRF 攻击: 把 settings.py 中的 csrf 注释掉 正规网站: 创建修改密码页面 password.html: <!DOCTYPE html> <html lang ...
- Redis应用场景大全
1.字符串使用场景 a) 缓存功能 典型使用场景:Redis作为缓存层,MySQL作为存储层,绝大部分请求的数据都是从Redis中获取,由于Redis具有支撑高并发的特性,所以缓存通常能起到加速读写和 ...
- SET IDENTITY_INSERT的用法,具体去体验一下
如果将值插入到表的标识列中,需要启用 SET IDENTITY_INSERT. 举例如下: 创建表Orders.Products,Orders表与Products表分别有标识列OrderID与Prod ...
- php实现文件与16进制相互转换
php实现文件与16进制相互转换 <pre><?php/** * php 文件与16进制相互转换 * Date: 2017-01-14 * Author: fdipzone * Ve ...
- linux 文件描述符表 打开文件表 inode vnode
在Linux中,进程是通过文件描述符(file descriptors,简称fd)而不是文件名来访问文件的,文件描述符实际上是一个整数.Linux中规定每个进程能最多能同时使用NR_OPEN个文件 ...
- GridView取不到值的问题总结
在ASP.NET开发过程中,使用GridView进行数据表现的时候遇到过两次取不到值的问题.分别是初学的时候与 用了一年多以后.出现的问题并不是身边么高深的技术,但是可能会经常遇到,所以这里我做一下总 ...
- 029 Android 轮播图广告Banner开源框架使用
1.Banner介绍 现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能. 2.使用环境配置(具体可见github开源项目) (1)添加依赖 在build.gradl ...
- K8S从入门到放弃系列-(13)Kubernetes集群mertics-server部署
集群部署好后,如果我们想知道集群中每个节点及节点上的pod资源使用情况,命令行下可以直接使用kubectl top node/pod来查看资源使用情况,默认此命令不能正常使用,需要我们部署对应api资 ...
- kafka 集群环境搭建 java
简单记录下kafka集群环境搭建过程, 用来做备忘录 安装 第一步: 点击官网下载地址 http://kafka.apache.org/downloads.html 下载最新安装包 第二步: 解压 t ...