搭建ftp服务器(主动模式,被动模式)

文章目录

一、基本概念

FTP主动模式(Active Mode)

在主动模式下,客户端通过随机端口N(N > 1023)连接到FTP服务器的21端口(控制端口)。当需要传输数据时,客户端会告知服务器使用另一个随机端口N+1进行数据传输。服务器则从20端口(数据端口)主动连接到客户端的N+1端口。

特点

  • 服务器主动发起数据连接
  • 可能因客户端的防火墙或NAT导致连接失败
  • 适用于服务器信任客户端网络环境的情况

FTP被动模式(Passive Mode)

在被动模式下,客户端通过随机端口N连接到FTP服务器的21端口(控制端口)。当需要传输数据时,服务器会告知客户端一个随机高位端口(P > 1023),客户端随后从端口N+1连接到服务器的P端口进行数据传输。

特点

  • 客户端主动发起数据连接
  • 适用于客户端位于防火墙或NAT后的情况
  • 服务器无需主动连接客户端,减少防火墙干扰

对比总结

特性 主动模式 被动模式
数据连接方向 服务器 → 客户端 客户端 → 服务器
服务器端口 固定20端口(数据) 随机高位端口
适用场景 服务器信任客户端网络 客户端位于防火墙/NAT后
防火墙影响 可能被客户端防火墙拦截 更易穿透防火墙

主要区别

主动模式:服务器主动连客户端。

被动模式:服务告诉客户端,来连我那个端口。

如何选择模式

  • 如果客户端位于严格防火墙或NAT后(如家庭网络),优先使用被动模式
  • 如果服务器配置严格,仅允许主动连接(如某些企业内网环境),则使用主动模式
  • 可通过FTP客户端软件(如FileZilla)手动切换模式。

二、使用Filezilla server配置被动模式

如图所示,主要是第3步,被动模式设置成端口区间。这个端口要让防火墙放开,否则客户端会获取不到目录。

假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。

假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。

假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。

假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。

重要的事情说了4遍了。

三、再回顾一下被动模式的步骤

工作流程:

  • 控制连接建立:与主动模式相同,客户端向服务器 21 端口发起控制连接。
  • 数据连接建立:
  1. 客户端发送PASV指令,请求服务器进入被动模式。
  2. 服务器生成一个随机数据端口 P(通常在 1024-65535 范围内),并告知客户端 "使用端口 P 进行数据传输"。
  3. 客户端收到后,主动向服务器的端口 P发起连接,用于传输数据。

看到了吗?

如果P端口被防火墙拦住了,那么客户端就会看不到ftp服务中的目录,无法进行文件操作。

相关推荐
小柒儿33615 小时前
从单Agent到多智能体系统:多智能体协作重塑自动化边界
运维·自动化
QYR-分析16 小时前
注塑机机械手自动化装备行业发展研判:存量升级催生增量红利,2032 年市场规模逼近 9 亿美元
运维·自动化
我命由我1234517 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法
小田的博客17 小时前
SAP MM 供应商银行主数据更新报错!message R1228!
android·java·服务器
牢姐与蒯17 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
ᥬ 小月亮17 小时前
SonarQube使用教程(Docker安装)
运维·docker·容器
去伪存真202518 小时前
数字样机、态势推演与3D汇报场景下的平台选型对比
运维·服务器
自动化测试行业观察18 小时前
从“自动化”到“智能化”:TestMan AI测试平台引领软件测试范式转移
运维·自动化测试·人工智能·测试工具·自动化·app测试·移动应用测试
xiaoxiangsiyan18 小时前
运维之前端反调试学习
运维·前端·学习·状态模式
RisunJan18 小时前
Linux命令-spell(Unix 拼写检查工具 —— 文本校对的基础利器)
linux·运维·unix