在CentOS系统中安装和配置FTP服务器是许多管理员和开发者的常见需求,FTP(File Transfer Protocol)是一种用于在客户端和服务器之间传输文件的标准网络协议,本文将详细介绍如何在CentOS系统上通过命令行安装、配置和管理FTP服务器,以vsftpd(Very Secure FTP Daemon)为例,因其安全性高、性能稳定而成为大多数Linux发行版的首选FTP服务器软件。

准备工作
在开始安装之前,建议确保系统已更新至最新状态,以避免潜在的兼容性问题,执行以下命令更新系统:
sudo yum update -y
确保系统已配置正确的网络连接,并且具有管理员权限(通过sudo或root用户)来执行安装和配置操作。
安装vsftpd
vsftpd是CentOS默认的FTP服务器软件,可以通过yum包管理器轻松安装,打开终端,运行以下命令:
sudo yum install vsftpd -y
安装完成后,vsftpd服务会自动启动,可以通过以下命令检查服务状态:
sudo systemctl status vsftpd
如果服务未运行,可以使用以下命令启动并设置开机自启:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
配置vsftpd
vsftpd的主配置文件位于/etc/vsftpd/vsftpd.conf,建议在修改前备份原始配置文件:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
使用文本编辑器(如vi或nano)打开配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
以下是关键配置项及其说明:

匿名访问控制
默认情况下,vsftpd允许匿名用户登录,若需禁用匿名访问,找到并修改以下行:anonymous_enable=NO
本地用户访问
启用本地用户登录FTP:local_enable=YES
上传权限
允许本地用户上传文件:write_enable=YES
用户目录限制
为了安全,建议将用户限制在其主目录中,取消注释以下行:chroot_local_user=YES
端口配置
默认FTP服务使用21端口,可根据需要修改:listen_port=21
被动模式设置
被动模式适用于穿越防火墙的场景,添加以下配置:pasv_min_port=10000 pasv_max_port=10100
保存并退出配置文件后,重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
防火墙与SELinux配置
CentOS默认启用防火墙和SELinux,需要开放FTP相关端口,执行以下命令:

sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload
对于SELinux,检查FTP服务的布尔值:
getsebool -a | grep ftp
若显示ftp_home_dir为off,则需启用:
sudo setsebool -P ftp_home_dir on
创建FTP用户
如果需要为FTP服务创建专用用户,可按以下步骤操作:
- 创建新用户(例如
ftpuser):sudo useradd -m ftpuser
- 设置用户密码:
sudo passwd ftpuser
- 可选:限制用户仅能通过FTP访问,禁用SSH登录:
sudo usermod -s /sbin/nologin ftpuser
测试FTP服务
使用Windows资源管理器或FTP客户端工具(如FileZilla)连接服务器,输入服务器IP地址、用户名和密码,若连接成功,说明配置正确。
常见问题排查
- 连接被拒绝
检查防火墙和SELinux设置,确认端口开放。 - 权限不足
确认用户目录权限(通常为755)和文件权限(644)。
FAQs
Q1: 如何在CentOS上卸载vsftpd?
A1: 执行以下命令卸载vsftpd并删除配置文件:
sudo yum remove vsftpd -y sudo rm -rf /etc/vsftpd
Q2: 如何限制FTP用户只能访问指定目录?
A2: 在vsftpd.conf中添加local_root=/path/to/directory,并将用户添加到/etc/vsftpd/chroot_list文件(需启用chroot_list_enable=YES)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复