下面以 最常见的 vsftpd(Very Secure FTP Daemon) 为例,说明在 Linux 上搭建 FTP / FTPS 服务器 的基本步骤(含匿名、本地用户、以及 FTPS 加密)。
yum install -y vsftpd
apt update
apt install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
查看状态:
systemctl status vsftpd
配置文件位置:
/etc/vsftpd/vsftpd.conf/etc/vsftpd.confanonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
⚠️ 云服务器需在安全组放行 21 和 30000–31000
useradd -m ftpuser
passwd ftpuser
设置目录权限:
chown -R ftpuser:ftpuser /home/ftpuser
openssl req -x509 -nodes -days 365 \
-keyout /etc/vsftpd/vsftpd.pem \
-out /etc/vsftpd/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
force_local_data_ssl=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
重启服务:
systemctl restart vsftpd
客户端使用 FTPS(显式 SSL,端口 21)
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
ftp localhost
或用 FileZilla:
服务器IP❌ 530 Login incorrect
setenforce 0
✅ SELinux 正确做法
setsebool -P ftpd_full_access on
如果你愿意,我可以:
你用的是哪种 Linux?