1. 检查FTP服务运行状态
确保vsftpd服务已启动并设置为开机自启。使用以下命令检查服务状态:
sudo systemctl status vsftpd
若未运行,启动服务:
sudo systemctl start vsftpd
设置开机自启:
sudo systemctl enable vsftpd
2. 验证网络连通性
ping <服务器IP>测试客户端与服务器的网络连接,若ping不通,需排查网络故障(如IP错误、路由问题)。telnet <服务器IP> 21测试FTP端口(默认21)是否可达,若连接失败,可能是防火墙或服务器未监听端口。3. 配置防火墙规则
sudo ufw allow 21/tcpsudo ufw reloadsudo iptables -A INPUT -p tcp --dport 21 -j ACCEPTsudo iptables-save > /etc/iptables.rules4. 检查vsftpd配置文件
编辑/etc/vsftpd.conf,确保以下关键配置正确(根据需求调整):
listen=YES:启用FTP服务监听。local_enable=YES:允许本地系统用户登录。anonymous_enable=NO:禁止匿名用户登录(若无需匿名访问)。write_enable=YES:允许用户上传/修改文件。chroot_local_user=YES:限制用户只能访问其主目录(提升安全性)。allow_writeable_chroot=YES:允许chroot目录可写(避免“500 OOPS”错误)。sudo systemctl restart vsftpd5. 处理被动模式(PASV)问题
若使用被动模式连接失败,需配置PASV端口范围并开放防火墙:
/etc/vsftpd.conf中添加:pasv_enable=YESpasv_min_port=60000pasv_max_port=61000sudo ufw allow 60000:61000/tcpsudo systemctl restart vsftpd6. 验证用户权限
/etc/vsftpd.conf中的userlist_enable和userlist_file设置,确认用户是否在允许列表中。/etc/ftpusers(该文件中的用户将被禁止访问FTP)。7. 查看日志定位问题
检查vsftpd日志文件(通常位于/var/log/vsftpd.log),获取具体错误信息(如“530 Login incorrect”“553 Could not create file”),根据日志提示针对性解决。
8. 更新vsftpd软件包
确保vsftpd为最新版本(修复已知bug):
sudo apt update && sudo apt upgrade vsftpd