Image

知识库 → 设置 ProFTPD 服务器的连接限制

[虚拟服务器] [VPS/VDS 上的应用]
出版日期: 11.05.2025

ProFTPD 是一种通过 FTP 协议进行文件传输的服务。该服务广泛应用于 Linux 服务器上进行文件管理。

FTP 服务器可以以两种模式运行:

  • 主动模式 - PORT:客户端确定连接端口。
  • 被动模式 - PASV:服务器确定连接端口。

除了默认的 21 端口外,还有一个协商过程来开启额外的端口。根据服务器的运行模式,后续协商的发起者可以是客户端或服务器。

主动模式的缺点:

  • 如果客户端位于 NAT/防火墙后面,则无法工作(服务器无法访问客户端)。
  • 每个文件都会开启一个新端口,导致会话数量大幅增加。

被动模式的优点:

  • 可通过 NAT/防火墙工作(主动权来自客户端)。
  • 可以在服务器上限制端口范围(ProFTPD 中的 PassivePorts)。

为了限制连接数量,需要在服务的配置文件中进行设置:

/etc/proftpd.conf
MaxInstances 30     # ProFTPD 可以启动的最大进程数(包括服务进程)。
MaxClients 20       # 最大同时连接数(用户)。
MaxClientsPerHost 3 # 限制来自单一 IP 地址的连接数。

也可以强制启用被动模式:

/etc/proftpd.conf
Passive on
PassivePorts 50000 50100  # 限制端口范围(最多 100 个连接)。

被动模式并非对所有人有效,请检查 NAT 和防火墙的运行情况。

检查配置文件是否有错误。如果它作为服务运行,请重启它。如果它与 inetd 一起运行,只需确保配置文件中没有错误。

proftpd -t  # 检查配置文件。
systemctl restart proftpd  # 重启。

FTP 协议存在一些缺点,与 HTTP/S 或 SFTP(SSH 文件传输协议)相比,有时会出现“延迟”,因为需要协商操作并等待客户端-服务器的确认。

如果需要传输大量小文件,建议将其打包成压缩文件,然后在服务器上解压。





No Comments Yet