本文详细介绍了在 CentOS 7 系统下搭建 FTP 服务器的完整流程,文章首先通过 yum 安装 vsftpd 服务端软件,随后详细讲解了配置文件 /etc/vsftpd/vsftpd.conf 的修改,包括开启匿名登录、设置本地用户权限等,还涉及了防火墙和 SELinux 策略的配置,以及如何创建专用的 FTP 用户,确保服务器安全稳定运行。在 Linux 服务器管理中,FTP(文件传输协议)是最经典、最常用的文件共享服务之一,无论是在企业内部文件传输,还是开发人员与服务器之间的代码同步,搭建一个稳定、安全的 FTP 服务器都是必备技能。
本文将详细介绍在 CentOS 7 环境下,如何从零开始搭建一个功能完善的 FTP 服务器,我们将使用目前最主流的 FTP 服务端软件 vsftpd。
环境准备与安装
确保你的系统已经更新,并安装 vsftpd 软件包。

-
更新系统软件源:
yum update -y
-
安装 vsftpd:
yum install -y vsftpd
-
设置开机自启:
systemctl enable vsftpd
配置 vsftpd
安装完成后,我们需要编辑主配置文件,配置文件通常位于 /etc/vsftpd/vsftpd.conf。
-
编辑配置文件: 使用
vi或vim编辑器打开文件:vi /etc/vsftpd/vsftpd.conf
-
关键参数修改: 为了实现文件上传下载及安全访问,请确保以下参数设置正确(建议取消注释并修改):
anonymous_enable=NO # 禁止匿名登录(推荐,更安全) local_enable=YES # 允许本地系统用户登录 write_enable=YES # 允许写入权限(包括上传、删除、重命名) dirmessage_enable=YES # 显示目录消息 xferlog_enable=YES # 启用上传/下载日志 connect_from_port_20=YES # 使用 20 端口进行数据传输 xferlog_std_format=YES # 使用标准日志格式 listen=NO # CentOS 7 建议设为 NO,配合 xinetd 使用(或者设为 YES 使用独立模式,此处以独立模式为例,通常建议改为 YES 以获得更好性能) pam_service_name=vsftpd # PAM 认证模块名称 userlist_enable=YES # 启用用户列表控制 tcp_wrappers=YES # 支持 TCP wrappers
-
增加特殊配置(防止 500 错误): 为了防止出现 "500 OOPS: vsftpd: refusing to run with writable root inside chroot()" 错误,建议添加以下两行:
allow_writeable_chroot=YES chroot_local_user=YES
说明:
chroot_local_user=YES限制用户只能访问自己的家目录,增加安全性。
创建 FTP 用户
不要直接使用 root 用户登录 FTP,出于安全考虑,我们需要创建一个专用的 FTP 用户。
-
创建用户: 假设我们创建一个名为
ftpuser的用户:useradd -d /var/ftp/test -s /sbin/nologin ftpuser
-
设置密码:
passwd ftpuser
-
设置目录权限: FTP 用户默认对家目录没有写权限,我们需要赋予其所有权和读写权限:
chown -R ftpuser:ftpuser /var/ftp/test chmod -R 755 /var/ftp/test
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

