登录
首页 >  文章 >  php教程

宝塔FTP无法访问目录,端口如何开放?

时间:2026-04-08 17:51:23 419浏览 收藏

宝塔FTP连接成功却无法加载目录列表?这通常是FTP被动模式下数据端口未正确放行或配置不一致导致的经典问题——仅开放21端口远远不够,必须同步打通云安全组、宝塔内置防火墙、Pure-Ftpd服务配置、虚拟化层端口映射四重关卡,并强制指定公网IP作为被动模式返回地址,才能让39000–40000端口段的数据连接真正畅通无阻。

宝塔面板下FTP连接提示“无法检索目录列表”该如何放行端口?

如果您在宝塔面板中配置FTP后,客户端连接成功但提示“无法检索目录列表”,则大概率是由于FTP被动模式所需的数据端口未被放行。以下是解决此问题的步骤:

一、放行FTP命令端口与被动端口范围

FTP被动模式依赖两个端口段:21端口用于命令交互,39000–40000端口段用于数据传输。若仅开放21端口,客户端可登录但无法建立数据连接,从而导致目录列表无法加载。

1、登录云服务器厂商控制台,进入安全组管理页面。

2、为当前服务器实例对应的安全组添加两条入站规则:

3、第一条规则:协议类型TCP,端口范围21/21,源IP设为0.0.0.0/0(或按需限制)。

4、第二条规则:协议类型TCP,端口范围39000/40000,源IP设为0.0.0.0/0(或按需限制)。

5、保存规则后,返回宝塔面板首页,确认Pure-Ftpd服务状态为运行中。

二、检查并修正宝塔防火墙端口放行

宝塔面板内置防火墙独立于云厂商安全组,若未同步放行对应端口,仍将阻断连接。该防火墙对21端口及被动端口范围均需显式放行。

1、登录宝塔面板,在左侧菜单点击安全模块。

2、在防火墙列表中查找是否已存在21端口规则;如无,点击放行端口按钮。

3、输入端口:21,点击提交。

4、再次点击放行端口,输入端口范围:39000-40000,点击提交。

5、确认两项规则均已显示在防火墙列表中,且状态为启用。

三、验证并调整Pure-Ftpd被动端口范围配置

Pure-Ftpd默认使用39000–40000作为被动端口池,但若该范围被手动修改或与安全组不一致,将导致数据通道不可达。必须确保配置文件中的端口范围与安全组、宝塔防火墙完全匹配。

1、在宝塔面板左侧菜单进入软件管理 → 找到Pure-Ftpd → 点击设置 → 点击配置修改

2、使用Ctrl+F搜索关键词:PassivePortRange(通常位于第180行附近)。

3、确认其值为:39000 40000;若被注释(行首含#)或数值不同,需取消注释并修正为该范围。

4、点击保存,随后在Pure-Ftpd设置页点击重启服务

四、同步放行端口至虚拟化层(如使用轻量应用服务器或本地虚拟机)

部分轻量应用服务器或VMware/VirtualBox等虚拟环境存在额外网络层,需单独配置端口映射或主机防火墙规则,否则即使云安全组与宝塔防火墙均放行,数据包仍无法抵达Pure-Ftpd进程。

1、若使用腾讯云轻量应用服务器,进入实例详情页,点击防火墙标签。

2、点击添加规则,协议选择TCP,端口填写21,来源IP设为0.0.0.0/0。

3、再次添加规则,端口填写39000-40000,其余参数同上。

4、若使用本地VirtualBox,打开虚拟机设置 → 网络 → 网卡1 → 高级 → 端口转发 → 新增两条规则:主机端口21→子系统端口21;主机端口39000–40000→子系统端口39000–40000。

五、强制指定被动模式外网IP地址

Pure-Ftpd在NAT环境下可能返回内网IP(如192.168.x.x)给FTP客户端,导致客户端尝试连接不可路由地址而超时。需通过ForcePassiveIP强制返回公网IP,否则即使端口全开也无法建立数据连接。

1、在Pure-Ftpd配置修改页面,使用Ctrl+F搜索ForcePassiveIP(通常位于第188行附近)。

2、删除该行开头的#符号以取消注释。

3、将等号后原IP(如127.0.0.1或192.168.0.1)替换为您的服务器公网IP地址

4、点击保存,返回Pure-Ftpd设置页,点击重启服务

理论要掌握,实操不能落!以上关于《宝塔FTP无法访问目录,端口如何开放?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>