在 CentOS 上搭建 FTP 服务器并开启匿名访问,通常使用 vsftpd(Very Secure FTP Daemon)。下面以 CentOS 7/8 为例说明。
yum install -y vsftpd
# 或 CentOS 8
dnf install -y vsftpd
编辑配置文件:
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
# 匿名用户根目录
anon_root=/var/ftp
# 允许匿名上传(可选)
anon_upload_enable=YES
# 允许匿名创建目录(可选)
anon_mkdir_write_enable=YES
# 匿名用户权限掩码
anon_umask=022
vsftpd 默认匿名目录是 /var/ftp
mkdir -p /var/ftp/pub
chown ftp:ftp /var/ftp/pub
chmod 755 /var/ftp
chmod 777 /var/ftp/pub # 如果允许上传
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
或允许 FTP:
setsebool -P ftpd_full_access on
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
systemctl enable vsftpd
systemctl start vsftpd
ftp localhost
登录时:
anonymousanonymous_enable=YESanon_upload_enable=YES添加:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并放行端口。
如果你用的是 CentOS Stream / 特定版本 / 想用 SFTP 而非 FTP,可以告诉我,我可以给你对应方案。