ProFTPd跨主机数据传输失败排查求助:连接登录正常但数据操作报"Unable to build data connection: No route to host"
ProFTPd跨主机数据传输失败排查求助:连接登录正常但数据操作报"Unable to build data connection: No route to host"
我现在在Debian 11.8主机上搭建了ProFTPd FTP服务器,本地(同一主机用客户端连接)测试完全正常,说明基础配置没问题。但从另一台同网段的Debian 11.8主机连接时,能成功建立连接并登录,但所有涉及数据传输的操作(比如put、get、ls)全部失败,报错提示"Unable to build data connection: No route to host"。
两台主机都是内网同网段,不存在公网访问的场景,而且我能在两台主机之间互相SSH,所以基础网络连通性应该是正常的。
已尝试的排查/修复手段(均无效)
- 切换为被动模式,无任何改善
- 修改内核参数
net.ipv4.tcp_tw_reuse为0 - 加载内核模块
ip_nat_ftp或nf_nat_ftp - 在ProFTPd配置文件中添加
PassivePorts 49152 49162指定固定被动端口范围,并在两台主机的防火墙上开放了该范围 - 在客户端firewalld中白名单了服务器的IP地址
后续排查的关键发现
我把两台主机的防火墙都停掉后,FTP的主动、被动模式都能正常工作;只开启服务器的防火墙也不影响使用,看来问题出在客户端防火墙阻止了服务器的回连请求。
但即使我在客户端防火墙上开放了ProFTPd指定的被动端口范围,用nmap从服务器扫描客户端时显示这些端口处于"closed"状态,数据传输还是失败。
最终解决情况
现在FTP传输已经正常了,可能是之前被动模式的配置没设置到位,同时我也修复了ProFTPd包的配置问题。
目前的有效配置组合是:ProFTPd指定固定被动端口范围,客户端防火墙同时开放该端口范围+白名单服务器IP。虽然理论上可能不需要同时配置这两项,但现在能正常工作就暂时不调整了。
有没有人能帮我复盘下,之前客户端防火墙的问题到底出在哪?或者有没有更规范的排查思路?
感谢!
备注:内容来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

