使用Nginx反向代理 filezilla ftp服务,配置PASV 解决ftp 227错误

@TOC

前言

问题环境:

使用filezilla搭建ftp服务,IP:192.168.10.1:21

使用nginx反向代理,IP:192.168.10.11

遇到227 Entering Passive Mode(xxx,xxx,xxx,xxx,xxx,xxx,xxx)错误,或425 Can't open data connection for transfer of "/"错误。

主要方式是通过filezilla server Interface对被动模式PASV进行配置来解决。
ftp的主动模式及被动模式的理论自行百度吧~

一、filezilla server 部署ftp(略)

filezilla客户端及服务端下载地址

最近更新有中文版,服务端一路确定即可。

二、配置Nginx

编辑nginx主目录/conf/nginx.conf文件

stream {
    upstream ftp{
        hash $remote_addr consistent;
        # server 192.168.10.1:21;(此处为ftp服务ip端口)
        server 192.168.10.1:21;
    }
    server {
        # listen 21;(监听端口,除已用端口的任意端口)
        listen 21;
        proxy_connect_timeout 10s;
        proxy_timeout 10s;
        proxy_pass ftp;
    }
}

nginx代理配置完毕,使用客户端登录会报227错误

三、配置ftp服务端被动模式PASV

Windows

找到配置页面


在这里插入图片描述

在这里插入图片描述
  • 第一步,将数据端口范围调整至固定较小的几个,例如:3000-3001(看自己,闲的不行可以多搞一些,目前不清楚有什么用 =-=!)


    在这里插入图片描述
  • 第二步,将公网IP设置为Nginx服务IP


    在这里插入图片描述
  • 第三步,取消勾选不使用公网IP


    在这里插入图片描述
  • 第四步,点击OK

  • 第五步,在Nginx配置文件stream层加入新的端口

stream {
    upstream ftp{
        hash $remote_addr consistent;
        # server 192.168.10.1:21;(此处为ftp服务ip端口)
        server 192.168.10.1:21;
    }
    server {
        # listen 21;(监听端口,除已用端口的任意端口)
        listen 21;
        proxy_connect_timeout 10s;
        proxy_timeout 10s;
        proxy_pass ftp;
    }

# 以下为新增数据端口
    upstream ftp3000{
        hash $remote_addr consistent;
        server 192.168.10.1:21;
    }
    server {
        listen 3000;
        proxy_connect_timeout 10s;
        proxy_timeout 10s;
        proxy_pass ftp3000;
    }
    upstream ftp3001{
        hash $remote_addr consistent;
        server 192.168.10.1:21;
    }
    server {
        listen 3001;
        proxy_connect_timeout 10s;
        proxy_timeout 10s;
        proxy_pass ftp3001;
    }
}

到此应该没有问题了

linux

步骤差不多,不同的是找到filezillasever的配置文件:FileZilla Server.xml,找到如下片段进行修改。

        <Item name="Custom PASV IP type" type="numeric">1</Item>
        <Item name="Custom PASV IP" type="string">192.168.10.11</Item>
        <Item name="Custom PASV min port" type="numeric">3000</Item>
        <Item name="Custom PASV max port" type="numeric">3001</Item>
        <Item name="Use custom PASV ports" type="numeric">1</Item>

原创,转载请表明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容