当前位置: 首页 > news >正文

ftp的主动模式active mode和被动模式 passive mode的配置和区别

ftp的主动模式active mode和被动模式 passive mode的配置和区别

本文主要记录的是在linux上的区别,弄了一整天才整明白区别快哭了

ftp模式分为主动模式(active mode)和被动模式(passive mode),ftp是tcp连接,所以要进行三次握手

1. active和passive模式的配置:

在命令行输入vim /etc/vsftpd/vsftpd.conf:

1> active mode:

pasv_enable=NO     (passive模式关闭)
pasv_min_port=3000
pasv_max_port=4000
port_enable=YES    (active模式开启)
connect_from_port_20=YES  (即默认情况下,FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。)

2>passive mode:

pasv_enable=YES
pasv_min_port=3000  
pasv_max_port=4000

设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意(1024 – 65535端口)。默认值为0。把端口范围设在比较高的一段范围内,比如3000-4000。

在linux上,如果不配置pasv_enable=NO,默认是passive模式。

2.  service vsftpd restart 重启ftp服务;

3.  通过命令行连接ftp server:

1> active mode:   ftp -A 3.3.3.3   

active模式连接ftp server时一定要加-A

2> passive mode: 可以直接使用  ftp 3.3.3.3   也可以使用 ftp -p 3.3.3.3

4.   ftp client: 192.168.168.169   ftp server: 3.3.3.3

1> active 模式:

     在active模式下,如下图抓的包中,在命令连接部分(ftp类型的包),client端使用的端口是36439,这个端口是大于1024的任意端口,ftp server端用的端口是21:

如下图,在active模式下,要传输数据时,ftp client通过第23个包通过21号端口告诉server数据传输联系端口43187(大于1024的任意端口),并进行listen,server端用端口20主动和client端43187建立数据传输通道,并传输数据(第30,32,34个包)。这里是server知道了client端的数据通道监听端口后,主动建立了数据传输通道,所以是主动模式。

 

在active模式下,数据传输部分(FTP-DATA类型的包),ftp-server端用的端口是20,默认情况下,FTP PORT主动模式进行数据传输时使用20端口,ftp-client端用的是43187端口,是上一步client发给server的数据传输监听端口。

总结:active 模式

2> passive 模式:

     在passive 模式下,如下图所抓的包中,在命令部分(ftp类型的包),client端使用的端口是36434,这个端口是大于1024的任意端口,ftp server用的端口是21.

在passive模式下,如下图的第28个包,是由client端发起PASV(passive mode)的数据传输通道连接请求,所以为被动模式。

 

而在passive模式的数据传输部分(FTP-DATA类型的包),ftp-server端用的端口是3542,这个端口是在/etc/vsftpd/vsftpd.conf文件中passive模式下设置的端口范围(3000-4000,可以自己设置)中任意选的一个端口,ftp-client端用的是53001端口,是大于1024的任意一个端口。

总结:

passive模式

转载于:https://www.cnblogs.com/gaoyuechen/p/9298727.html

相关文章:

  • BZOJ3932[CQOI2015]任务查询系统——主席树
  • DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.Net2.0(ver 3.1.7Beta)
  • matplotlib较好的博客
  • 在ubuntu中搭建guacamole
  • unittest参数化
  • NTP服务器时间同步
  • jquery中的基本理解以及样式属性操作
  • 机票分享第一篇 机票由何而来
  • 马斯克“地狱”归来,回应一切
  • win7 打开office失败并提示“向程序发送命令错误” 解决方法
  • 开发一个自己的天气chrome extension
  • Tomcat for Eclipse
  • 深度学习人工智能离我们还有多远?
  • eclipse内存设置参数
  • 2018一半小结一波
  • 分享一款快速APP功能测试工具
  • flask接收请求并推入栈
  • JavaScript 基础知识 - 入门篇(一)
  • JS实现简单的MVC模式开发小游戏
  • leetcode98. Validate Binary Search Tree
  • Median of Two Sorted Arrays
  • nfs客户端进程变D,延伸linux的lock
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 目录与文件属性:编写ls
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 小程序 setData 学问多
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #预处理和函数的对比以及条件编译
  • (52)只出现一次的数字III
  • (二)WCF的Binding模型
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (译) 函数式 JS #1:简介
  • (转)iOS字体
  • (转)Linux整合apache和tomcat构建Web服务器
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • 、写入Shellcode到注册表上线
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET简谈设计模式之(单件模式)
  • 。Net下Windows服务程序开发疑惑
  • [C# 开发技巧]实现属于自己的截图工具
  • [C#]winform利用seetaface6实现C#人脸检测活体检测口罩检测年龄预测性别判断眼睛状态检测
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式
  • [LeetCode]—Implement strStr() 寻找子串匹配第一个位置 (KMP)