导读:本期聚焦于小伙伴创作的《宝塔面板中FTP连接不上怎么办?排查宝塔面板被动模式端口放行问题》,敬请观看详情。FTP服务启动后客户端仍连不上,多数情况不是账号密码错,而是被动模式端口没放行。宝塔默认开21控制端口,但被动传输用的端口区间常在配置里指定却未加防火墙规则。用FileZilla连时卡在读取目录列表,就是被动端口被挡。先查pure-ftpd或proftpd的被动端口范围,再在宝塔安全区和云厂商安全组同步放开。同时确认FTP软件被动模式开启、监听IP填对。按步骤逐层排查,基本能解决连不上和传不了文件的问题。

在宝塔面板里搭建好FTP服务后,不少站点维护人员会遇到一种情况:账号密码都对,21端口也放行了,可FileZilla等客户端一连接就卡在读取目录、列不出文件,甚至直接超时断开。这种现象大多和FTP的被动模式端口没有正确放行有关。FTP本身分主动和被动两种模式,现代网络环境下客户端基本都用被动模式,而被动模式除21端口外,还需要一段额外的TCP端口供数据传输,这段端口如果在面板防火墙、服务器系统防火墙或云厂商安全组里没打开,连接就会失败。

宝塔面板中FTP连接不上怎么办?排查宝塔面板被动模式端口放行问题

一、理解FTP被动模式与端口的关系

FTP协议使用两个通道:命令通道和数据通道。命令通道一般走21端口,负责发送账号、密码和指令;数据通道才真正传输文件列表和文件内容。在被动模式(PASV)下,服务器会随机从一个配置的端口区间里挑一个端口告诉客户端,客户端再去连这个端口。如果服务器端的这段端口被任何一层防火墙挡住,客户端能登录却拿不到目录,表现就是连接上了但操作卡死。

宝塔面板集成的pure-ftpd或proftpd,默认通常在配置中限定了被动端口范围,例如40000到50000。很多人只在面板里放了21,以为FTP就能用,忽略了这段高位端口。尤其是在阿里云、腾讯云等环境,云安全组是独立于系统防火墙之外的第一道关卡,漏掉它就会导致本地telnet通、远程连不上的怪象。

二、查看宝塔中FTP服务的被动端口配置

以pure-ftpd为例,宝塔一般在软件商店的FTP服务设置或配置文件中指定被动端口。你可以登录服务器命令行,查看对应配置段。下面是一段典型的pure-ftpd被动端口配置示例,展示了如何在配置文件中声明端口区间:

# 查看 pure-ftpd 的被动端口配置(宝塔环境常见路径)
cat /www/server/pure-ftpd/etc/pure-ftpd.conf | grep -i passive

# 若看到类似如下内容,说明被动端口区间为 40000-50000
# PassivePortRange          40000 50000

如果使用的是proftpd,则配置写法不同,但原理一致。你需要找到类似PassivePorts的指令,确认它指定的范围。记下这个区间,后面放行都要以它为准。若配置文件里没写,部分版本会采用随机高端口,那种情况更麻烦,建议手动固定一段并写进配置。

固定被动端口不仅方便放行,也利于排错。修改配置后必须重启FTP服务才能生效。在宝塔面板中可直接点FTP软件的重启按钮,或者用命令行执行对应服务的重启指令,不要只改了文件却忘了让进程重新加载。

三、在宝塔面板与系统防火墙放行端口

打开宝塔面板,进入“安全”菜单,在端口控制里添加放行规则。协议选TCP,端口范围填写你在配置里看到的区间,比如40000-50000,备注可写FTP被动端口。保存后宝塔会调用系统防火墙(firewalld或iptables)写入规则。

# 若宝塔面板操作不生效,可手动在系统层放行(firewalld 示例)
firewall-cmd --permanent --add-port=40000-50000/tcp
firewall-cmd --reload

# 查看已放行端口
firewall-cmd --list-ports

有些老旧系统用iptables,那就要用iptables命令或写入配置文件后保存。务必确认规则真正生效,而不是只在面板界面点了按钮。可以用iptables -L -nfirewall-cmd --list-all核对。系统层放行后,仍连不上的话,问题通常出在云厂商安全组。

云安全组是很多人的盲点。哪怕你服务器内部端口全开,入站规则没写40000-50000/tcp,外部请求依然进不来。登录云控制台,找到对应实例的安全组,添加入站规则,端口区间和协议必须与前面一致,授权对象一般是0.0.0.0/0或你指定的运维IP段。

四、客户端与FTP软件的设置检查

服务器端端口全通了,客户端也要用对模式。FileZilla在站点管理里,传输设置选“被动”,不要选主动;有些客户端默认主动,就会反过来让服务器连客户端被挡。同时,如果服务器有多网卡或做了NAT,还需在FTP配置里设被动IP为客户可访问的公网IP,否则服务器报的内网IP会让客户端连错地址。

# pure-ftpd 指定被动模式返回的公网 IP(防止NAT下返回内网IP)
# 在 pure-ftpd.conf 中加入:
# ForcePassiveIP            123.123.123.123

# 修改后重启
/etc/init.d/pure-ftpd restart

宝塔面板的FTP账号本身也要确认状态正常、目录权限对。有时端口全通了,但账号被禁或家目录权限是root独占,客户端登录后会因无权读取而表现类似被动端口故障。可先用命令行ftp工具在服务器本机连一遍,排除账号和目录问题,再查网络层。

另外,部分运营商对家庭宽带封21端口,这种属于外部环境限制,只能换端口或改用SFTP。若是服务器对服务器传文件,建议直接用SCP或RSync,比FTP更稳,也不操心被动端口。

五、系统化排查流程总结

遇到宝塔FTP连不上,建议按“配置—面板—系统—云组—客户端”五层顺序查。先确定被动端口区间,再逐层确认每处都放行相同TCP区间,最后核对客户端模式与被动IP。可用telnet 服务器IP 端口对21和某个被动端口分别测试,通了说明网络层没问题。

排查层检查点常用命令或位置
配置层被动端口区间pure-ftpd.conf / proftpd.conf
面板层宝塔安全端口放行宝塔面板-安全
系统层firewalld/iptablesfirewall-cmd -l / iptables -L
云层安全组入站规则云厂商控制台
客户端被动模式与IPFileZilla传输设置

把这张表顺着走一遍,基本能定位九成以上的宝塔FTP被动连接故障。排错时不要只盯21端口,数据传输端口才是被动模式真正的命门。每次改完一层,就测一层,能最快缩小范围,避免盲目重启服务浪费时间。

宝塔面板FTP被动模式端口放行修改时间:2026-08-07 04:45:34

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。