服务器发回了不可路由的地址,使用服务器地址代替

发布于 2020-01-06 12:16:43

FTP应该算是常见网络服务中最简单搭建的,初次在国内云服务器上搭建FTP的朋友们应该不会对下面的报错感到陌生,“服务器发回了不可路由的地址,使用服务器地址代替”和“读取目录列表失败”其实是两个问题,反正最终结果就是无法使用FTP,所以很多朋友觉得就是一回事。这里以Linux宝塔面板在腾讯云上搭建Pure-Ftpd为例,给大家分享一下怎么彻底解决这个问题。
image.png
网上最多的解决方案是修改Filezilla客户端的传输方式,也就是把“使用服务器的外部ip地址来代替”改为“回到主动模式”,这个答案并没有说错,但实在过于片面,所以绝大部分朋友最终还是未能解决问题!导致登陆FTP报错的原因主要有两个,按顺序依次开始分析。

第一个 服务器发回了不可路由的地址,使用服务器地址代替

腾讯云服务器的基础网络是通过NAT与互联网连接,服务器上的网卡IP为内网地址,而且Pure-Ftpd配置文件中未指定强制被动通信的外网IP地址。

第二个 读取目录列表失败

很多朋友以为只要禁用了VPS上的防火墙,就能畅通无阻,然而大型企业提供的云计算服务,一般都还有一道防火墙存在。腾讯云安全组策略中,未开放Pure-Ftpd被动端口范围,导致无法使用被动模式通信。

解决方案
第一个

进入宝塔面板,依次点击软件管理-pure-ftpd 1.0.47-配置修改,搜索“ForcePassiveIP”,定位到下图位置:
image.png

服务器发回了不可路由的地址,使用服务器地址代替。

去掉ForcePassiveIP前面的注释符号,并把后面的IP地址修改为服务器的外网IP地址,保存配置后重载配置或者重启服务生效,解决报错:服务器发回了不可路由的地址,使用服务器地址代替。

第二个

Pure-Ftpd配置文件使用的被动端口范围是39000-4000,如需自定义可以编辑修改Pure-Ftpd配置文件。进入腾讯云主机的安全组,添加放行TCP39000-40000,解决报错:读取目录列表失败。

转载至:服务器发回了不可路由的地址,使用服务器地址代替。 王花郎博客

1 条评论

发布
问题

官网
微信

官方微信