今天使用ftp连接服务器的时候竟然提示错误“服务器发回了不可路由的地址。使用服务器地址代替。”本站的ftp服务端是使用的宝塔面板安装的。
去网上搜索的解决方法如下
网上最多的解决方案是修改Filezilla客户端的传输方式,也就是把“使用服务器的外部ip地址来代替”改为“回到主动模式”,这个答案并没有说错,但实在过于片面,所以绝大部分朋友最终还是未能解决问题!导致登陆FTP报错的原因主要有两个,按顺序依次开始分析。
这个问题原因简单来讲是这样:FTP客户端默认的传输模式是被动模式,因此在通信过程中会去寻找服务器端的ip地址进行连接,但是由于有点服务器分内网和外网的 外网ip不是直接配在网卡上,因此在被动模式下客户端找不到有效的ip(因为找到的是服务器的内网ip,内网ip无法直接和外网通信),故无法建立连接。
然后点击配置修改:如图所示,查找“ForcePassiveIP”(位置188行左右)
删除前面的“#”将“192.168.0.1”修改为:服务器的IP地址,注意是服务器不是客户端的IP地址!
改完之后 重启下 ftp服务即可解决
读取目录列表失败的问题
很多朋友以为只要禁用了VPS上的防火墙,就能畅通无阻,然而大型企业提供的云计算服务,一般都还有一道防火墙存在。腾讯云安全组策略中,未开放Pure-Ftpd被动端口范围,导致无法使用被动模式通信。
Pure-Ftpd配置文件使用的被动端口范围是39000-4000,如需自定义可以编辑修改Pure-Ftpd配置文件。进入腾讯云主机的安全组,添加放行TCP39000-40000,解决报错:读取目录列表失败。
官方QQ群号码:922069959(空)、1093596563(空)