* 示例系统:Centos 7.7
* 程序版本:Pure-Ftpd 1.0.49
0.前言
新年一过,大家又重新投入到新的生活中来。在新年期间,碰到了许多刚刚购买自己人生中第一台服务器的同学,他们有的是学生,或是自学编程,刚刚入门。他们反馈的最大问题是:为什么我的 FTP 总是连不上?跟着网上的教程检查了一遍,软件都是一样的,为什么我就是连不上。特意开了这篇文章和大家聊一下 FTP 无法连接目录或是直接显示空白怎么解决。
1.问题
我们先来看一看问题。
大多数人所反馈的都是在使用 FTP 客户端(如 FileZilla)时,准确的配置了 FTP 地址、端口、账号、密码,但是客户端返回的却是“服务器发回了不可路由的地址,使用服务器地址代替”这样一条不知所云的错误。通过错误提示在网上搜索,无非就是要求检查 21 端口是否正常打开、网络是否畅通,再或者是让你修改 FTP 为主动模式等等,但大多都不起效,连接后还是报错并显示空白。
2.定位
本次以 Pure-Ftpd 服务端做示范,若为其它服务端请自行查找对应配置文件。
打开你的 Pure-Ftpd 配置文件,如下。
普通用户:
宝塔用户:
到这里,其实问题已经显而易见了。看注释我们可以得知,这是设置用于被动连接的端口范围。大多数遇到该问题的同学主要原因就出在这里,只打开了 21 端口的防火墙,而没有将 39000 - 40000 也添加到防火墙中。
要想解决问题,在 Linux 防火墙中放开 39000 - 40000 端口范围即可。若为宝塔用户,需要在宝塔防火墙中一同设置开放该范围的端口。如果你还在使用云主机,需要前往主机商的后台一同开放对应端口后便可无阻访问。