ubuntu 安装宝塔安装ftp连接不了解决方式
连接错误信息如下:
状态: 正在连接 1.56.67.67:21...
状态: 连接建立,等待欢迎消息...
状态: 初始化 TLS 中...
状态: TLS 连接已建立。
状态: 已登录
状态: 读取目录列表...
命令: PWD
响应: 257 "/" is your current location
命令: TYPE I
响应: 200 TYPE is now 8-bit binary
命令: PASV
响应: 227 Entering Passive Mode (1,56,67,197,175,240)
命令: MLSD
错误: 20 秒后无活动,连接超时
错误: 读取目录列表失败
状态: 已从服务器断开
解决办法 :
针对宝塔面板中安装的 Pure-FTPd 服务,解决 “无法获取目录列表” 的问题,关键是配置被动模式的公网 IP 和端口范围,并同步开放防火墙。以下是详细操作步骤:
一、在宝塔面板中配置 Pure-FTPd 的被动模式
进入 Pure-FTPd 配置界面登录宝塔面板 → 左侧菜单栏「软件商店」→ 搜索「Pure-FTPd」→ 点击「设置」→ 选择「配置修改」标签页(这里可以直接编辑配置文件,无需手动找
/etc/pure-ftpd.conf)。添加被动模式公网 IP(解决 “不可路由的地址”)在配置文件的末尾,添加一行(替换为你的服务器公网 IP,例如你的
1.56.67.67):ini
ForcePassiveIP 1.56.67.67 # 注意:IP前没有等号,直接空格分隔作用:强制 Pure-FTPd 在被动模式下返回公网 IP(而非内网 IP),避免客户端无法识别地址。
设置固定的被动端口范围(解决数据连接超时)继续在配置文件末尾添加(端口范围建议选 30000-30010 这类高位端口,避免冲突):
ini
PassivePortRange 30000 30010 # 最小端口和最大端口,中间用空格分隔作用:限制数据连接仅使用这一范围的端口,方便后续开放防火墙。
二、重启 Pure-FTPd 使配置生效
配置修改完成后,点击「保存」→ 返回 Pure-FTPd 设置界面 → 点击「重启」按钮,确保新配置生效。
三、开放被动端口(三层防火墙同步配置)
Pure-FTPd 的数据连接依赖上面设置的被动端口(30000-30010),需在 宝塔防火墙 和 腾讯云安全组 中同时开放:
1. 宝塔面板防火墙开放端口
宝塔面板 → 左侧「安全」→「防火墙」→ 点击「添加规则」:
- 端口:
30000-30010 - 备注:
FTP被动模式端口 - 点击「确定」,确保规则状态为「已启用」。
2. 腾讯云安全组开放端口
登录腾讯云控制台 → 找到你的服务器实例 → 进入「安全组」配置 → 添加入站规则:
- 协议类型:
TCP - 端口范围:
30000-30010 - 来源:
0.0.0.0/0(允许所有 IP 访问,若需限制可填具体 IP 段) - 点击「完成」并保存规则。
四、客户端测试连接
- 打开你的 FTP 客户端(如 FileZilla),确保连接设置为 被动模式(默认一般是被动模式,无需修改)。
- 重新连接服务器,尝试获取目录列表。此时 Pure-FTPd 会使用你设置的公网 IP 和 30000-30010 端口建立数据连接,理论上可正常读取目录。
五、排查日志(若仍有问题)
若连接仍失败,可在宝塔面板中查看 Pure-FTPd 日志:宝塔面板 → 左侧「FTP」→ 选择对应的 FTP 站点 → 点击「日志」,查看是否有端口被拒绝、IP 错误等具体信息,针对性调整。
按照以上步骤操作后,90% 以上的 “能连接但无法获取目录” 问题可解决,核心是确保被动模式的 IP 正确且端口被完全开放。
