FTP服务主动模式和被动模式的区别以及防火墙/路由器上端口映射方法

2023-11-14 13:50:41 福瑞鑫智能科技

FTP(文件传输协议)服务,仅基于TCP的服务,不支持UDP。它使用两个端口,通常来说这两个端口是21(控制端口)和20(数据端口)。但FTP 工作方式的不同,数据端口并不总是20。

1.FTP服务的两种连接

通常涉及两种主要类型的连接:控制连接和数据连接。

  • 控制连接(Control Connection)

控制连接是FTP会话的一部分,通常通过TCP端口21建立。

控制连接用于发送命令和接收响应,包括登录、目录导航、文件上传和下载等FTP命令。

客户端与FTP服务器之间的控制连接保持打开状态,直到FTP会话结束。

控制连接负责控制和协调数据连接的建立和维护,包括通知服务器使用哪个端口来建立数据连接。

  • 数据连接(Data Connection)

数据连接是FTP用于传输文件内容的连接。

数据连接可以在不同的端口上建立,具体取决于FTP的工作模式(主动模式或被动模式)。

数据连接在文件传输期间保持打开状态,直到文件传输完成。

2.FTP的两种工作模式

  • 主动模式(Active Mode)

  • 被动模式(Passive Mode)

2.1主动模式

主动模式的工作过程如下:

1)客户端(C)通过TCP连接到FTP服务器(S)的控制端口21。

2)客户端发送一个PORT命令,指示服务器在客户端的数据端口上建立一个数据连接。PORT命令包含客户端的IP地址和端口号(C_IP:C_PORT)。

3)服务器收到PORT命令后,尝试连接到客户端指定的数据端口(C_IP:C_PORT)。

4)数据连接建立后,数据可以在服务器和客户端之间传输。

其原理图如下:

福瑞鑫智能科技

针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:

  • 任何大于1024的端口到FTP服务器的21端口
  • FTP服务器的21端口到大于1024的端口
  • FTP服务器的20端口到大于1024的端口
  • 大于1024端口到FTP服务器的20端口
2.2被动模式

在被动方式FTP中,控制连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题,其连接过程如下:

1)客户端(C)通过TCP连接到FTP服务器(S)的控制端口21。

2)客户端发送一个PASV命令,请求服务器进入被动模式,并告知服务器等待客户端连接的端口号(PASV命令响应包含服务器的IP地址和端口号)。

3)服务器进入被动模式,打开一个高端口(P_IP:P_PORT)等待客户端连接。

4)客户端收到PASV命令的响应后,连接到服务器响应中指定的IP地址和端口号(P_IP:P_PORT)。

5)数据连接建立后,数据可以在服务器和客户端之间传输。

福瑞鑫智能科技

对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:

  • 从任何大于1024的端口到服务器的21端口
  • 服务器的21端口到任何大于1024的端口
  • 从任何大于1024端口到服务器的大于1024端口
  • 服务器的大于1024端口到远程的大于1024的端口

3.FTP主动模式和被动模式的优缺点

特性主动模式被动模式
连接建立方式服务器主动连接到客户端客户端主动连接到服务器
防火墙友好性需要配置防火墙以允许服务器的主动连接更容易穿透防火墙,不需要额外配置
客户端防火墙客户端不需要特殊配置客户端需要允许传入数据连接
服务器防火墙服务器需要允许传出数据连接服务器通常不需要额外配置
安全性可能受到恶意端口扫描的影响安全性更好,因为服务器不主动连接到客户端
性能在某些网络配置下可能导致性能问题性能更稳定,不受防火墙和NAT影响
适用性适用于服务器位于可信网络的情况适用于服务器位于受限网络的情况或需要更好的安全性
配置复杂性需要更多的防火墙和NAT配置不需要额外的防火墙和NAT配置
端口范围可以控制服务器使用的端口范围可以控制服务器用于被动模式的端口范围

4.端口映射

在FTP主动模式和被动模式中,内网中的FTP服务器需要与外部网络通信。这意味着您需要配置网络地址转换(NAT)或端口映射,以便外部用户可以访问您的FTP服务器。下面分别介绍在主动模式和被动模式下如何进行端口映射。

4.1FTP主动模式的端口映射

在FTP主动模式中,FTP服务器在随机端口上监听传入的数据连接,因此您需要允许这些传入连接通过您的路由器或防火墙。

1)配置FTP服务器:

确保FTP服务器允许主动模式,并将端口范围配置为一组固定的端口(例如,范围从21000到21010)。

2)路由器或防火墙配置:

在路由器或防火墙上配置端口映射规则,将外部IP地址的指定端口映射到FTP服务器的内部IP地址和相同的端口范围。这将允许外部用户通过指定的端口访问FTP服务器。

4.2FTP被动模式的端口映射

在FTP被动模式下,FTP服务器在随机端口上监听传入的数据连接,但这次需要允许服务器与外部网络建立传出连接。

1)配置FTP服务器

确保FTP服务器允许被动模式,并配置被动模式的端口范围。通常,这个范围位于1024到65535之间。

2)路由器或防火墙配置

在路由器或防火墙上配置端口映射规则,将外部IP地址的指定端口映射到FTP服务器内部IP地址的被动模式端口范围。这将允许FTP服务器建立传出连接。

5.关于FTP的总结

主动模式是从服务器端向客户端发起连接,被动模式是客户端向服务器端发起连接。

两者的共同点是都使用 21端口进行用户验证及管理,差别在于传送数据的方式不同,主动模式,也叫PORT模式,它的FTP服务器数据端口固定在20,而被动模式,也叫PASV模式,则在1025-65535之间随机。

  • 主动模式:服务器向客户端敲门,然后客户端开门
  • 被动模式:客户端向服务器敲门,然后服务器开门
电话咨询
最新产品
官方商城
QQ客服