很多站长使用Pure-FTPd搭建FTP服务,近日笔者配置一台新服务器的时候,也用到了它。配置成功后,FileZilla客户端上传文件时提示:“服务器发回了不可路由的地址。使用服务器地址代替。”,虽说文件是上传成功了,但作为有洁癖的站长必须解决此问题。
既然是用Pure-FTPd搭建的FTP服务,当然要从Pure-FTPd的配置文件来解决问题。官方有文档说明,其配置文件为:Pure-ftpd.conf,打开文件后,发现有两个参数与FTP被动连接有关。ForcePassiveIP与PassivePortRange,从字面上的意思理解,ForcePassiveIP是强制被动IP,PassivePortRange是被动端口范围的意思。
ForcePassiveIP参数默认是被注释掉的,如下(约180行):
# Force an IP address in PASV/EPSV/SPSV replies. - for NAT. # Symbolic host names are also accepted for gateways with dynamic IP # addresses. # ForcePassiveIP 192.168.0.1
改为(约188行,注意去掉ForcePassiveIP前面的#):
# Force an IP address in PASV/EPSV/SPSV replies. - for NAT. # Symbolic host names are also accepted for gateways with dynamic IP # addresses. ForcePassiveIP 180.76.196.88
将180.76.196.88替换成自己的服务器外网IP。
PassivePortRange参数默认是开启的,如下:
# Port range for passive connections replies. - for firewalling. PassivePortRange 39000 40000
也就是说默认情况下FTP将使用39000-40000端口做为被动端口范围(无需修改),此处需要注意的是主机的安全策略是否开放了39000-40000端口。拿腾讯云服务器为例,需要在云服务器的安全组规则中将39000-40000端口放行,添加规则如下图:
注:其它云服务商基本上都会有类似的安全规则,如果不会修改,可以查阅相关的帮助文档或咨询客服。
将以上两处修改完成后,重启Pure-FTPd或重启服务器,“服务器发回了不可路由的地址。使用服务器地址代替。”这样的问题解决了。希望本文能帮到遇到类似问题的站长。
Pure-FTPd简介
Pure-FTPd是免费的(BSD),安全,生产质量和符合标准的FTP服务器。它不会提供无用的花哨的信息,而是注重效率和易用性。它为常见需求提供了简单的答案,还为个人用户以及托管服务提供商提供了独特的有用功能。