在 CentOS 上搭建 FTP 服务器(FTPServer),最常用的是 vsftpd(Very Secure FTP Daemon)。下面以 CentOS 7 / 8 / Stream 为例,一步一步说明安装和配置方法。
sudo yum update -y
sudo yum install vsftpd -y
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
查看状态:
systemctl status vsftpd
配置文件位置:
/etc/vsftpd/vsftpd.conf
备份原配置:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
sudo vi /etc/vsftpd/vsftpd.conf
建议内容:
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
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
修改后重启:
sudo systemctl restart vsftpd
sudo useradd ftpuser
sudo passwd ftpuser
限制用户只能 FTP(不能登录系统,可选):
sudo usermod -s /sbin/nologin ftpuser
设置家目录(可选):
sudo mkdir /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload
在 vsftpd.conf 中加入:
pasv_min_port=30000
pasv_max_port=31000
防火墙开放端口:
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload
查看状态:
getenforce
如果是 Enforcing,执行:
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on
ftp localhost
服务器IP21write_enable=YES如果你需要:
可以告诉我,我可以给你对应配置示例。