You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux服务器FTP用户登录成功但目录列表失败,求排查遗漏配置

解决FTP目录列表失败的排查指南

兄弟,我来帮你搞定这个FileZilla登录成功但目录列表失败的问题!结合你已经在UFW开放2121-2142端口的操作,大概率是vsftpd的被动模式配置、用户权限或者端口规则没踩对,我给你列几个必查的关键点:

1. 被动模式核心配置检查

vsftpd的被动模式是导致目录列表失败的高发区,先确认你的vsftpd.conf里有没有正确配置:

  • 必须开启被动模式并指定端口范围(和你UFW开放的一致):
    pasv_enable=YES
    pasv_min_port=2121
    pasv_max_port=2142
    
    注意这几行前面不能有#注释符,否则等于没生效。
  • 如果服务器有公网IP,一定要指定pasv_address,不然vsftpd可能返回内网IP,导致FileZilla连不上被动端口:
    pasv_address=你的公网IP地址
    
    要是用的是动态域名,也可以加pasv_addr_resolve=YES让vsftpd自动解析域名对应的IP。

2. 用户家目录权限检查

就算配置对了,用户没权限访问自己的家目录也白搭:

  • 先查看用户家目录的权限和归属:
    ls -ld /home/你的FTP用户名
    
  • 确保权限至少是700(最安全,只有用户自己能访问),归属是该用户本身。如果不对,用这两条命令修正:
    chmod 700 /home/你的FTP用户名
    chown 你的FTP用户名:你的FTP用户名 /home/你的FTP用户名
    
  • 如果你开了chroot_local_user=YES(限制用户只能访问家目录),必须再加一行allow_writeable_chroot=YES,否则vsftpd会因为家目录可写而拒绝访问。

3. 查看vsftpd日志定位具体问题

日志是排查问题的利器,直接看vsftpd的错误日志就能知道根因:

  • 默认日志路径是/var/log/vsftpd.log,实时查看日志的命令:
    tail -f /var/log/vsftpd.log
    
    然后用FileZilla尝试登录并刷新目录,看日志里有没有报错(比如权限不足、被动端口连接失败等),这能帮你精准定位问题。

4. UFW端口规则补全

你开放了被动端口,但别忘了FTP的控制端口21也需要开放(登录用的是这个端口),检查UFW规则:

  • 查看当前UFW状态:
    ufw status
    
  • 如果没看到21/tcp的允许规则,赶紧加上:
    ufw allow 21/tcp
    
    确保所有规则都是允许入站的TCP端口。

5. 客户端被动模式确认

最后检查下FileZilla的设置:打开「编辑」→「设置」→「传输设置」,确认「被动模式」是选中状态(默认是,但有时候会被误改)。

最后一步:重启vsftpd服务

不管改了哪个配置,都要重启服务让设置生效:

systemctl restart vsftpd

内容的提问来源于stack exchange,提问作者Muthu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:08:55