FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数
据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端
口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主
动与被动FTP的最大不同之处。

FTP主动模式

主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到
FTP服务器的命令端口,也就是21端口。然后客户端开始 监听端口N+1,
并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口
(20)连接到客户端指定的数据端口(N+1)。针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)简明概括:
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,
客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,
建立一条数据链路来传送数据。开启主动模式:
pasv_enable=no
若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式。主动模式下:
SecureFX工具去连接ftp,客户没有允许开放端口,服务器没法与客户端相连接,关闭客户端防火墙

FTP被动模式

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于
被动模式时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,
客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024)
,并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
1. 从任何大于1024的端口到服务器的21端口 (客户端初始化的连接)
2. 服务器的21端口到任何大于1024的端口 (服务器响应到客户端的控制端口的连接)
3. 从任何大于1024端口到服务器的大于1024端口 (客户端初始化数据连接到服务器指定的任意端口)
4. 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)简明概括:
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,
服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据
链路来传送数据。开启被动模式
默认是开启的,但是要指定一个端口范围,打开vsftpd.conf文件,在后面加上
pasv_enable=yes
若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式。
pasv_min_port=30000
在PASV工作模式下,数据连接可以使用的端口范围的最大端口,0 表示任意端口。默认值为0。
pasv_max_port=30999
在PASV工作模式下,数据连接可以使用的端口范围的最小端口,0 表示任意端口。默认值为0。表示端口范围为30000~30999,这个可以随意改。改完重启一下vsftpd
由于指定这段端口范围,iptables也要相应的开启这个范围,所以像上面那样打开iptables文件。
也是在21上下面另起一行,更那行差不多,只是把21 改为30000:30999,然后:wq保存,重启下iptables。这样就搞定了。

主动与被动FTP优缺点:

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的
防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端
口,而这 个端口很有可能被服务器端的防火墙阻塞掉。
幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定
一个有 限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的
危险,但它大大减少了危险。简而言之:
主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使
用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机。常见的FTP客户端软件的PASV方式的关闭方法
大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。 在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,
极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。
(1)IE:工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。
(2)CuteFTP:Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左边选中站
点 -> Edit -> “Use PASV mode” 。
(3)FlashGet:工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”。
(4)FlashFXP:选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式” 或 站点管理 -> 对应站点 -> 选项 ->
“使用被动模式”或快速连接 -> 切换 -> “使用被动模式”。
主动模式
Port_enable=YES               开启主动模式
Connect_from_port_20=YES      当主动模式开启的时候 是否启用默认的20端口监听
Ftp_date_port=%portnumber%    上一选项使用NO参数是 指定数据传输端口
被动模式
PASV_enable=YES   开启被动模式
PASV_min_port=%number% 被动模式最低端口
PASV_max_port=%number% 被动模式最高端口
iptables中开放这段端口
service iptables start 打开防火墙
iptables -I INPUT  -p tcp  --dport 10020:10040  -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT在被动模式,服务器做了NAT,例如云主机,这时候我们用特定的IP访问机器,其实还转了一层。FTP客户端访问机器可能会没响应。具体情况为登录成功,但是list目录和文件的时候卡住。
这时候我们用lsof -i:21
vsftpd   22411   nobody    0u  IPv4  68905      0t0  TCP 10.140.41.65:ftp->10.10.10.98:43380 (ESTABLISHED)
vsftpd   22411   nobody    1u  IPv4  68905      0t0  TCP 10.140.41.65:ftp->10.10.10.98:43380 (ESTABLISHED)
这时候可以看到机器的真正IP。
我们需要设置
pasv_address=本机ip【就是我们能访问的外网IP】
pasv_addr_resolve=yes
这样ftp客户端就可以解析IP,访问成功
(1)被动模式
第二次请求过程中,客户端跟服务端建立数据通道;
服务端被动将数据响应给客户端。
第二次请求数据传输,会随机生成一个服务端口。被防火墙禁用。(2)主动模式
服务端主动向客户端发送数据,会被客户端的防火墙禁掉。
多数客户端不支持主动模式,不安全。

vsftpd之主动模式 被动模式相关推荐

  1. vsftpd设置被动模式_Vsftp安装及配置主动模式/被动模式

    第一章.前言 FTP的主动模式(active mode)和被动模式(passive mode) 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯. ...

  2. VSFTP的主动模式和被动模式

    关于VSFTP的主动模式和被动模式 一,首先我们看两个例子如下: 其中192.168.10.7是服务端,172.16.11.11是客户端 被动模式 # netstat -an |grep 172.16 ...

  3. 19.7 主动模式和被动模式 添加监控主机 添加自定义模板 处理图形

    9月11日任务 19.7 主动模式和被动模式 19.8 添加监控主机 19.9 添加自定义模板 19.10 处理图形中的乱码 19.11 自动发现 扩展 zabbix监控交换机(思科) http:// ...

  4. (转)FTP的PORT(主动模式)和PASV(被动模式)

    http://my.oschina.net/binny/blog/17469(转) 以前才用Linux的时候,用Ftp的时候就遇到链接成功,就是查看不到服务器上的数据,之前大致查了下明白了,现在看到一 ...

  5. FTP服务器搭建下的主动模式和被动模式

    今天心血来潮,研究了下ftp协议,在linux搭建了一个ftp服务器,主要是研究下ftp的主动和被动模式. 简单的说下ftp安装配置吧 ftp服务器:192.168.3.14 linux vsftpd ...

  6. FTP主动模式和被动模式的区别(转) 以及 Linux vsftp 相关配置

    转:https://www.cnblogs.com/ajianbeyourself/p/7655464.html 阅读目录 基础知识: 主动模式FTP: 被动模式FTP 备注: 总结 参考资料 dd ...

  7. vsftp配置(2)-主动模式和被动模式

    主动模式和被动模式 #一 如何开启vsftpd的PASV模式? 1. 修改/etc/vsftpd/vsftpd.conf文件配置 pasv_enable=yes (Default: YES) 设置是否 ...

  8. passive模式 tcp_ftp的主动模式active mode和被动模式 passive mode的配置和区

    https://blog.csdn.net/zhangyuan12805/article/details/71425385/ ftp模式分为主动模式(active mode)和被动模式(passive ...

  9. passive模式 tcp_ftp的主动模式active mode和被动模式 passive mode的配置和区别

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

最新文章

  1. 刘强东写在上市之际:京东要成为一家世界级企业 感慨吧
  2. Android关于Theme.AppCompat相关问题的深入分析
  3. 框架:Spring的自动装配
  4. 参加51CTO组织的2013云计算架构师大会
  5. Knowledge Test about Match
  6. 决策单调性Ⅰ:四边形不等式(bzoj 1563: [NOI2009]诗人小G)
  7. win7下 安装mysql数据库_mysql-windows系统安装mysql数据库
  8. Verilog初级教程(10)Verilog的always块
  9. 《算法图解》---笔记
  10. 新东方的负载均衡架构探索和实践
  11. 去天翎咨询myapps2.4的问题
  12. 2019年蚂蚁金服面经(已拿Offer)!附答案!!
  13. Linux:系统进程---->查看命令【ps:静态查看进程】【top:动态查看进程】
  14. linux对只有Read-only filesystem的文件,如何改为为可写、可读权限?
  15. VBS带你领略脚本语言的快乐!(注册表篇)
  16. u校园刷题脚本一键答题挂时长支持视听说读写综合
  17. rc时间常数定义_时间常数τ(tao)=RC和周期T有什么关系?
  18. 人脸识别-Haar级联
  19. start-stop-daemon
  20. tcp拥塞算法分析五(vegas)

热门文章

  1. 2022年数据库审计产品排行榜-必看!
  2. 矿井水氟化物超标的解决工艺分析
  3. Verizon收购雅虎:中外电信运营商坚持造梦内容产业
  4. 金山快盘使用的一些注意
  5. Java300基础超适合零基础童鞋学习
  6. ClickHouse and K8s
  7. 经典动态规划:高楼扔鸡蛋
  8. ECCV2020 | 论文阅读——Arbitrary-Oriented Object Detection with Circular Smooth Label
  9. 4K Video Downloader (4K超高清视频下载器)V6.1.46版本发布
  10. 许愿墙HTML+CSS