Linux FTP服务器的并发连接数由软件配置与系统资源共同决定。没有一个固定的“上限”,通常可配置到几十、数百甚至更高,但会受到CPU、内存、文件描述符限制、端口与防火墙策略等约束。
影响并发的关键因素
- 服务器软件配置:不同 FTP 服务程序(如 vsftpd、ProFTPD、Pure-FTPd)都有并发相关参数,可直接在配置文件中设定上限。
- 系统资源与内核参数:进程/线程数、可用内存、网络带宽、以及**文件描述符上限(ulimit -n)**都会限制并发能力。
- 端口与防火墙策略:FTP 控制端口为21,被动模式还需要开放一段被动端口范围;使用连接数限制或连接跟踪策略(如 iptables connlimit)也会直接影响并发。
- 空闲超时设置:如 vsftpd 的idle_session_timeout(默认常见为300 秒),空闲会话会占用连接槽位,缩短超时可更快释放资源。
常见 FTP 服务的并发配置示例
- vsftpd(/etc/vsftpd/vsftpd.conf)
- 设置全局最大并发连接数:max_clients(示例:max_clients=100)
- 设置每 IP 最大并发连接数:max_per_ip(示例:max_per_ip=2)
- 设置速率限制(字节/秒):anon_max_rate、local_max_rate(示例:anon_max_rate=50000 ≈ 50KB/s;local_max_rate=500000 ≈ 500KB/s)
- 修改后重载:systemctl reload vsftpd
- ProFTPD(/etc/proftpd/proftpd.conf)
- Pure-FTPd(/etc/pure-ftpd/pure-ftpd.conf)
- MaxClients 指令控制并发客户端数
以上参数均为各服务的标准配置项,可直接按需调整并重启服务生效。
提高并发的实用建议
- 适度调大文件描述符限制(如 ulimit -n),并优化服务进程/线程模型与队列。
- 配置合理的idle_session_timeout,避免空闲连接长期占用槽位(如 300 秒可按需缩短)。
- 被动模式务必限定并开放被动端口段,并在防火墙放行对应端口范围,避免数据通道被拦截。
- 如需“硬上限”,可在iptables使用 connlimit 对 21 端口或整体连接数做连接数限制,作为服务内限制的补充或替代。