CentOS 7 vsftpd 配置与使用详解
vsftpd(Very Secure FTP Daemon)是一个在Linux系统上广泛使用的FTP服务器软件,以其安全性、稳定性和易用性著称,本文将详细介绍如何在CentOS 7上安装、配置和使用vsftpd,并提供一些常见问题的解决方案。

一、环境说明
本文基于以下环境进行操作:
操作系统:CentOS 7
网络环境:联网状态,具备公网IP或内网IP
用户权限:root权限或sudo权限
二、vsftpd软件安装和说明

1、更新软件包
- yum update y
2、安装vsftpd
- yum install y vsftpd
3、启动并设置开机自启
- systemctl start vsftpd
- systemctl enable vsftpd
4、检查服务状态
- systemctl status vsftpd
三、配置vsftpd服务
vsftpd的主要配置文件是/etc/vsftpd/vsftpd.conf
,可以使用vim
等文本编辑器进行编辑。
1、备份原始配置文件
- cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
2、编辑配置文件
- vim /etc/vsftpd/vsftpd.conf
3、基本配置项
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- local_umask=022
- dirmessage_enable=YES
- xferlog_enable=YES
- connect_from_port_20=YES
- xferlog_std_format=YES
- chroot_local_user=YES
- listen=YES
- listen_ipv6=NO
4、被动模式配置
- pasv_enable=YES
- pasv_min_port=30010
- pasv_max_port=30015
- pasv_address=你的服务器公网IP
5、保存并退出
- :wq
6、重启vsftpd服务
- systemctl restart vsftpd
四、防火墙配置
1、开放FTP端口
- firewallcmd permanent addport=21/tcp
- firewallcmd permanent addservice=ftp
- firewallcmd reload
2、如果使用iptables
- iptables A INPUT p tcp dport 20 j ACCEPT
- iptables A INPUT p tcp dport 21 j ACCEPT
- iptables A INPUT p tcp dport 30010:30015 j ACCEPT
五、创建FTP用户并设置权限
1、添加FTP用户
- sudo adduser ftpuser
- sudo passwd ftpuser
2、创建FTP目录并设置权限
- sudo mkdir p /home/ftpuser/ftp
- sudo chown R ftpuser:ftpuser /home/ftpuser/ftp
- sudo chmod 755 /home/ftpuser/ftp
六、测试与问题排查
1、本地测试
- ftp 127.0.0.1
2、常见问题及解决方案
530 Login incorrect:可能是PAM认证问题,编辑/etc/pam.d/vsftpd
,注释掉auth required pam_shells.so
。
500 OOPS: vsftpd: refusing to run with writable root inside chroot():设置FTP主目录为不可写。
客户端能连接但无法获取文件列表:确保防火墙开放相应端口,并使用被动模式。
七、FAQs
1、如何更改FTP服务器的根目录?
- # 在/etc/vsftpd/vsftpd.conf中设置
- anon_root=/path/to/anon/ftp/dir
- local_root=/path/to/local/ftp/dir
2、如何限制某些用户只能访问特定目录?
- # 在/etc/vsftpd/vsftpd.conf中设置
- local_root=/home/$USER/ftp
- chroot_local_user=YES
通过以上步骤,您可以在CentOS 7上成功搭建一个安全、稳定的vsftpd服务器,根据实际需求调整配置,以满足不同的使用场景。