CentOS 7 搭建VSFTP服务器完整指南

1. 安装VSFTP服务

yum install -y vsftpd
  1. 服务管理命令
systemctl start vsftpd      # 启动服务
systemctl enable vsftpd     # 设置开机自启
systemctl status vsftpd     # 查看服务状态
  1. 防火墙配置
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
  1. 核心配置文件详解
配置文件路径:/etc/vsftpd/vsftpd.conf

基础配置

anonymous_enable=NO         # 禁用匿名登录
local_enable=YES            # 允许本地用户登录
write_enable=YES            # 开启写权限

安全配置

chroot_local_user=YES       # 锁定用户在主目录
allow_writeable_chroot=YES  # 允许chroot写入

被动模式配置

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=45000

日志配置

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
  1. 用户管理
创建FTP专用用户
Bash
useradd -d /var/ftp/user1 -s /sbin/nologin user1
passwd user1
chmod 750 /var/ftp/user1
用户黑白名单配置
黑名单:/etc/vsftpd/ftpusers
用户限制列表:/etc/vsftpd/user_list
  1. SELinux配置
setsebool -P ftpd_full_access on

或针对特定目录

semanage fcontext -a -t public_content_rw_t "/var/ftp(/.*)?"
restorecon -Rv /var/ftp
  1. 被动模式防火墙
firewall-cmd --permanent --add-port=40000-45000/tcp
firewall-cmd --reload
  1. SSL加密配置(可选)
# 生成证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

配置文件添加

echo "rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES" >> /etc/vsftpd/vsftpd.conf
  1. 常见问题排查

检查防火墙规则
验证网络连通性
530 Login incorrect

检查/etc/pam.d/vsftpd配置
验证用户是否在禁止登录列表中
500 OOPS: cannot change directory

检查SELinux上下文
确认目录权限设置
被动模式失败

检查端口范围是否开放
确认配置文件中的IP设置
  1. 客户端连接示例
使用FileZilla连接时:

协议:FTP或SFTP
加密:显式FTP over TLS(如启用SSL)
端口:21(主动模式)或被动模式端口范围
温馨提示:生产环境建议使用SFTP(SSH文件传输)替代FTP以获得更好的安全性。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐