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服务器,根据实际需求调整配置,以满足不同的使用场景。