概览
在 CentOS 环境中,vsftpd 与 Pure-FTPd 都是常见且安全的 FTP 服务器选择。一般而言,vsftpd 更强调轻量、稳定与安全,配置项相对简洁;Pure-FTPd 则提供更丰富的功能与更细粒度的控制(如多种认证方式、配额、限速、日志等),但配置复杂度更高。两者均支持 PASV/PORT 两种传输模式,实际部署时需结合防火墙/NAT 进行放通与回源地址设置。
核心差异对比
| 维度 |
vsftpd |
Pure-FTPd |
| 定位与特性 |
轻量级、注重安全与性能,默认配置简洁 |
功能丰富、可扩展性强,提供虚拟用户、限速、配额、日志等更多开关 |
| 易用性 |
上手快,常用参数少,适合快速落地 |
配置项多,可深度调优,学习成本相对更高 |
| 认证与用户 |
支持匿名、本地系统用户、虚拟用户 |
支持虚拟用户(如 PureDB/puredb)、可与系统用户映射 |
| 典型场景 |
对稳定与安全要求高、并发中等的场景 |
需要配额/限速/日志审计、虚拟用户隔离、细粒度策略的场景 |
| 性能与资源占用 |
资源占用低、稳定性好 |
功能多但资源占用略高(取决于启用的模块) |
| 社区与资料 |
资料与示例丰富,CentOS 上部署教程多 |
资料充足,且有如 PureAdmin 等管理工具可选 |
以上对比要点来源于两者在 Linux(含 CentOS)上的通用特性与实践经验总结。
在 CentOS 的快速上手
-
vsftpd(最小化安全配置示例)
- 安装与启停
- 安装:yum install -y vsftpd
- 启动/开机自启:systemctl start vsftpd;systemctl enable vsftpd
- 关键配置(/etc/vsftpd/vsftpd.conf)
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- chroot_local_user=YES
- allow_writeable_chroot=YES
- 验证:使用 FileZilla/Winscp 以本地用户登录并测试上传/下载。
-
Pure-FTPd(虚拟用户与数据库示例)
- 安装与启停
- 安装:yum install pure-ftpd
- 启动/开机自启:systemctl start pure-ftpd;systemctl enable pure-ftpd
- 虚拟用户与数据库
- 创建虚拟用户数据库文件:touch /etc/pure-ftpd/pureftpd.passwd;chmod 600
- 添加用户:pure-pw useradd myuser -u ftpuser -d /home/ftp_directory
- 生成数据库:pure-pw mkdb
- 配置与验证
- 在 /etc/pure-ftpd/pure-ftpd.conf 中启用或确认 PureDB 相关配置
- 使用客户端以虚拟用户登录并测试上传/下载。
防火墙与 NAT 要点
- FTP 有两种工作模式:主动模式(PORT) 与 被动模式(PASV)。默认情况下,许多客户端优先使用 PASV。
- 主动模式:服务器用 20 端口 主动连客户端数据端口;被动模式:服务器在 >1024 的随机端口 监听,客户端主动连服务器。
- 云主机/NAT 场景:若使用 PASV,需在安全组/防火墙中显式放通一段高位端口范围,并在服务器配置中设置 pasv_min_port/pasv_max_port;若使用 PORT,需确保服务器能回连客户端高位端口(在 NAT/严格 egress 策略下可能受限)。vsftpd 可通过 pasv_enable、pasv_min_port、pasv_max_port、pasv_address 等参数进行精细化控制。
选型建议
- 追求简单、稳定、安全且以本地/虚拟用户为主的中等并发场景:优先 vsftpd。
- 需要虚拟用户隔离、上传/下载限速、磁盘配额、更丰富日志与访问控制等精细化策略:优先 Pure-FTPd。
- 无论选择哪一款,生产环境建议:禁用匿名、启用 TLS/SSL 加密传输、限制用户根目录(chroot)、结合防火墙/NAT 正确放通端口、为被动模式配置固定端口段并完善日志审计。