第一种方法:利用iptable进行转发(以下操作在代理机器配置)
/sbin/iptables -t nat -I PREROUTING -d 代理机器ip -p tcp --dport 21 -j DNAT --to-dest 目标IP(FTP服务器):21
/sbin/iptables -t nat -I POSTROUTING -d 目标(FTP服务器)ip -p tcp --dport 21 -j MASQUERADE
/sbin/iptables -I FORWARD -s 源ip(客户端) -j ACCEPT
添加内核模块
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
windows的连接可能还是会报pasv_promiscuous问题,或者可以把配置文件的该选项改为NO
第二种方法:利用ftpproxy(该方法比较简单)
a. 下载后,解压到某个目录
b. 编译
cd ftpproxy-1.2.3
make
可能会出一些警告,不用理会
完成后,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即可。