因网络环境限制,需要从内网(不能直接连通外网)向外部的ftp上传、下载文件,只能在网关服务器上架设ftp反向代理(网关服务器可同时连通外网与内网,但是不允许内部应用部署在这台机器上)。
试了几个方案:
1、利用apache的mod_proxy_ftp模块,折腾了一下,下载可以,上传没折腾成功,放弃。
2、https://github.com/c960657/ftpproxy 利用github上的开源项目ftpproxy,看了下介绍,应该可以,但是其配置文件参数太多,瞄了一眼官网给出的配置文件
https://github.com/c960657/ftpproxy/blob/master/ftpproxy.conf 密密麻麻,顿时没心情继续了
3、利用www.ftpproxy.org
的ftp.proxy开源项目,这个最简单,使用步骤如下:
ftpproxy-1.2.3.tgz.zip 为防止官网挂掉,已经上传到博客园(园子不允许上传.tgz后缀的文件,只能将其又压缩了一道,变成了.zip文件,所以下载后,要解压二次)
a. 下载后,解压到某个目录,本文是:/Users/jimmy/Downloads/app/ftp.proxy/ftpproxy-1.2.3
b. 编译
cd ftpproxy-1.2.3
make
可能会出一些警告,不用理会(想起了那个经典笑话:程序员只关心Error,从来不在意Warning)
完成后,src目录下,就会生成ftp.proxy命令
c.启动
./src/ftp.proxy -D 本机空闲端口 外网FTP服务器IP:端口
比如:
./src/ftp.proxy -D 12306 12.34.56.78:21
这样,访问 ftp://网关服务器IP:12306就相当于访问 ftp://12.34.56.78:21
注:如果要在同时反向代理多个ftp,将端口错开,多启动几个ftp.proxy即可。