首先确认vsftpd服务是否正在运行,使用以下命令查看服务状态:
sudo systemctl status vsftpd
若服务未运行,启动服务并设置开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
服务启动失败时,可通过journalctl -xe -u vsftpd查看详细错误日志。
vsftpd的配置文件为/etc/vsftpd.conf,需确保关键参数设置正确:
listen=YES(监听FTP端口)、local_enable=YES(允许本地用户登录)、write_enable=YES(允许上传文件)、chroot_local_user=YES(限制用户至主目录)、anonymous_enable=NO(禁用匿名登录)。sudo vsftpd -t命令验证配置文件是否有语法错误,若有错误需根据提示修正。FTP默认使用21端口,需确保防火墙允许该端口流量:
ufw(Debian默认防火墙):sudo ufw allow 21/tcp,然后刷新规则sudo ufw reload。iptables:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT。sudo netstat -tuln | grep :21,若有冲突需停止占用进程或修改vsftpd端口。vsftpd日志通常位于/var/log/vsftpd.log,使用以下命令实时查看日志:
sudo tail -f /var/log/vsftpd.log
日志中会记录连接失败、权限错误、配置问题等详细信息,是排查故障的关键依据。
root,权限设为644:sudo chown root:root /etc/vsftpd.confsudo chmod 644 /etc/vsftpd.confsudo mkdir -p /var/log/vsftpdsudo chown vsftpd:vsftpd /var/log/vsftpdsudo chmod 755 /var/log/vsftpdsudo setenforce 0;若需永久开启权限,执行:sudo setsebool -P ftpd_full_access 1。/etc/vsftpd/ftpusers(禁止登录列表),并确保/etc/pam.d/vsftpd配置正确。755(主目录)或777(需谨慎,建议仅用于测试):sudo chmod -R 755 /path/to/user/directoryallow_writeable_chroot=YES(若启用chroot_local_user)。使用FTP客户端(如FileZilla)连接服务器,输入IP地址、端口(默认21)、用户名和密码,验证是否能正常登录及传输文件。若仍无法解决,可备份并重装vsftpd:
sudo apt remove --purge vsftpd
sudo apt autoremove
sudo apt install vsftpd。