常见原因:IP/端口错误、防火墙阻止、服务未运行。
解决方案:
sudo ufw allow 21/tcp开放FTP端口(若使用UFW);sudo systemctl status vsftpd确认服务正在运行,未运行则用sudo systemctl restart vsftpd重启。常见原因:输入错误、用户账户未启用。
解决方案:
sudo passwd ftpuser重置密码;/etc/vsftpd.conf中的local_enable=YES(允许本地用户登录),若使用虚拟用户需确认虚拟用户列表配置正确。常见原因:目录权限设置不当、用户无访问权限。
解决方案:
/home/ftpuser)有读写权限,使用sudo chown -R ftpuser:ftpuser /home/ftpuser修改所有者,sudo chmod -R 755 /home/ftpuser设置目录权限;chroot_local_user=YES),需添加allow_writeable_chroot=YES(允许chroot目录可写),避免“500 OOPS: cannot change directory”错误;/etc/vsftpd.conf中的write_enable=YES(允许上传),local_enable=YES(允许本地用户访问)。常见原因:网络不稳定、防火墙/路由器拦截。
解决方案:
ping <服务器IP>测试网络连通性,若丢包严重需排查网络问题;常见原因:被动模式端口范围未开放、路由器/NAT配置错误。
解决方案:
/etc/vsftpd.conf中设置被动模式端口范围(如pasv_min_port=30000、pasv_max_port=31000);sudo ufw allow 30000:31000/tcp);pasv_address=<公网IP>),或在路由器中开启NAT ALG(应用层网关)功能。常见原因:SELinux或seccomp安全模块限制。
解决方案:
/etc/vsftpd.conf,添加seccomp_sandbox NO,然后重启vsftpd服务(sudo systemctl restart vsftpd);sudo setenforce 0)测试是否解决问题,若需永久禁用需修改/etc/selinux/config(不推荐)。常见原因:匿名访问未启用、目录权限错误。
解决方案:
/etc/vsftpd.conf中anonymous_enable=YES(允许匿名登录);/var/ftp目录,需确保该目录权限正确(sudo chown root:root /var/ftp、sudo chmod 755 /var/ftp);anon_upload_enable=YES并确保/var/ftp/pub目录可写(sudo chown ftp:ftp /var/ftp/pub)。常见原因:目标目录不可写、用户权限不足。
解决方案:
sudo chmod 755 /home/ftpuser/upload);allow_writeable_chroot=YES(避免chroot目录不可写);/etc/vsftpd.conf中write_enable=YES(允许上传)。常见原因:配置文件被误修改、权限过宽。
解决方案:
/etc/vsftpd.conf的属主为root(sudo chown root:root /etc/vsftpd.conf);sudo chmod 644 /etc/vsftpd.conf),避免其他用户修改;sudo systemctl restart vsftpd)使更改生效。常见原因:日志目录权限不足、vsftpd无写入权限。
解决方案:
/var/log/vsftpd)存在,且属主为vsftpd进程用户(通常为root);sudo chmod 755 /var/log/vsftpd),日志文件权限为644(sudo chmod 644 /var/log/vsftpd.log);sudo touch /var/log/vsftpd.log)并设置正确权限。