1. 首页
  2. 系统运维
  3. Linux

使用Pureftpd在局域网内搭建ftp服务器的配置问题总结

Pureftpd的安装很简单,具体怎么安装这里就不说了。之前我的内网环境中已经有一台用pureftpd搭建的ftp服务器,现在的要求是把这个ftp共享给外部使用。外网FTP我使用的是被动传输模式,规划被动模式使用的端口范围50000到50100 。FTP和一般的端口映射有些区别,需要分别映射控制端口和数据端口。

FTP主动模式和被动模式具体可以参考这篇文章:http://blog.nbqykj.cn/?p=1874.html

内网的环境大致如下:

20141231113239

把192.168.188.104这台ftp服务器映射给外网,必须经过防火墙和路由器。

先修改pureftpd配置,指定被动传输端口为50000~50100 。

# Port range for passive connections replies. - for firewalling.

PassivePortRange          50000 50100

然后添加iptables防火墙端口转发规则。

iptables -t nat -A PREROUTING -d 192.168.178.100 -p tcp --dport 18021 -j DNAT --to-destination 192.168.188.104:21
iptables -t nat -A POSTROUTING -d 192.168.188.104 -p tcp --dport 21 -j SNAT --to 192.168.188.1
iptables -t nat -A PREROUTING -d 192.168.178.100 -p tcp --dport 50000:50100 -j DNAT --to-destination 192.168.188.104
iptables -t nat -A POSTROUTING -d 192.168.188.104 -p tcp --dport 50000:50100 -j SNAT --to 192.168.188.1

接着在路由器上添加端口转发。

本来以为这样外网就可以访问这台FTP服务器了,但是我碰到一个奇怪的现象,FlashFXP可以访问,而windows的资源管理器不行。

20141231114554

最后我修改了pureftpd的配置,把ForcePassiveIP这项强制配上内网的公网IP地址,重启ftp后资源管理器就可以访问外网的ftp了。

# Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
# Symbolic host names are also accepted for gateways with dynamic IP
# addresses.

ForcePassiveIP                xxx.xxx.xxx.xxx

外网被动模式配置完成,但是内网现在只能使用FlashFXP客户端的主动模式来连接了。

参考链接:http://grefr.iteye.com/blog/1874865

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code