客户端连接FTP服务器后无法读取目录

我使用的是Windows server,ftp server 配置过程参考:Windows Server 2019 搭建FTP站点 - 小温2597 - 博客园
配置完用户名、密码,对应的组,以及文件夹安全设置、服务器安全组后,在地址栏输入ftp://ip地址,报错如下:打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹

检查了文件夹权限,没有问题
排查:
1、打开被动连接

2、我使用了FileZilla 客户端,再次尝试连接,信息如下

响应:257 “/” is current directory...
也使用了抓包工具,看到类似的信息

这几个响应都是正常响应,以2xx开头的都是正常的,3xx是等待的,4xx,5xx是错误信息,需要注意的是227这条响应,这是 FTP 服务器在被动模式下的标准响应,其中后两位表示被动连接的数据端口,计算方式是:208 * 256 + 121 = 53369,即 前一个数字 * 256 + 后一个数字,就是服务器告诉客户端应该连接哪个端口(此处是 53369 端口)传输数据
由此我的问题就解决了,我之前设置的端口范围是5000-6000,将端口改到目标范围就可以了,每次端口不一样,可以适当设置大一点。修改过程如下:
1、服务器安全组设置如下:

2、FTP server 防火墙设置:


3、检查防火墙入站规则:

设置完之后,再次访问就成功了,访问时把之前的先都关掉

### FileZilla 客户端无法连接服务器端并读取目录列表的解决方案 当遇到 FileZilla 客户端无法正常读取服务器目录列表的情况时,通常可能是由于 FTP 协议中的主动模式与被动模式配置不当引起的。以下是针对该问题的具体分析和解决方法: #### 被动模式下服务器未开放随机端口 如果服务器仅开放了 21 端口而未开放用于数据传输的其他端口,则可能导致客户端能够登录但无法执行 LIST 命令或其他操作[^1]。此时可以采取以下措施之一来解决问题。 #### 修改服务器配置以支持被动模式 在服务器上编辑 vsftpd 配置文件(通常是 `/etc/vsftpd.conf`),添加或修改以下参数以启用被动模式,并指定一个范围内的端口供数据传输使用: ```bash pasv_enable=YES pasv_min_port=6000 pasv_max_port=7000 ``` 保存更改后重启 vsftpd 服务以使新设置生效: ```bash sudo systemctl restart vsftpd ``` 同时,在防火墙中允许上述范围内端口的数据流量通过。例如,对于 `iptables` 可以运行如下命令打开这些端口: ```bash sudo iptables -A INPUT -p tcp --dport 6000:7000 -j ACCEPT ``` #### 切换至主动模式尝试连接 另一种可能有效的办法是从被动模式切换为主动模式。这可以通过调整 FileZilla 的设置实现:进入 **编辑 -> 设置 -> 连接 -> FTP** ,找到 “强制使用被动模式” 或者类似的选项将其关闭,从而让软件改用主动模式进行通信[^2]。 需要注意的是,主动模式要求目标服务器能够访问客户端的一个特定端口,因此这种方法适用于那些处于公共网络环境下的客户机;而对于位于 NAT 后面或者有严格出入站规则限制的企业内部设备来说可能会受到阻碍。 #### 综合考虑实际场景选择合适方式 综上所述,无论是调整服务器侧关于 PASV 参数的相关设定还是改变本地应用程序的工作模式都可以有效应对因协议特性引发的一系列功能性障碍现象。具体实施哪一种策略取决于当前系统的架构特点以及安全政策的要求等因素综合考量之后再做决定[^3]。 ```python # 示例 Python 脚本验证端口连通性 (可选) import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.connect((host, int(port))) return True except Exception as e: return False finally: s.close() print(check_port('your_server_ip', 'test_port')) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值