因为需要FTP公网进行访问,遂在公司搭建FTP服务
使用软件,免费开源的Fillzilla Server版本,当然这不是主要的
添加用户密码,用户访问目录,更改21端口为21212

出现棘手问题,因为公司使用cisco路由器公网接入,默认所有公网端口是不打开状态。
做端口映射
ip nat inside source static tcp 192.168.1.4 21212 公网地址 21212 extendale

telnet 公网地址 21212
结果端口是通的

使用fillzilla配置好之后进行访问
发现,
使用window命令行进行访问
C:\Users\Administrator>ftp
ftp> open 公网地址 21212
连接到 公网地址。
220 FTP Server
用户(公网地址:(none)): Dtt-share
331 Password required for dtt-share
密码:
230 Logged on
ftp>dir
200 Port command successful
150 Opening data channel for directory listing of "/"
_

登入成功但是会出现无法下一步访问目录的情况

开始考虑是FTP的主被动模式造成:
详细阐述下主被动模式

1)主动模式

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户 端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条 数据链路来传送数据。


2)被动模式

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务 器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来 传送数据。


关于网关设备映射的问题:

  • 如果用被动模式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,对于网关来说没有问题;

  • 反过来,如果用主动方式登录 FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被网关拦截;

  • 如果要用主动方式登录FTP服务器,请在网关上打开1024-65533。


遂在Fillzilla中开启被动模式,选项中有特定端口的范围21200-21250,此时遇到问题,如果做端口映射的话,需要做单个端口

映射50次,还是端口范围定义的问题。

网关后的FTP服务器公网访问配置
Cisco路由器解决方案:
路由器中增加配置
ip nat service list 11 ftp tcp port 21212
ip nat inside source static 192.168.1.4 公网地址
access-list 11 permit 192.168.1.4

参考官方资料
http://www.cisco.com/support/zh/556/6.shtml

后发现出现错误
telnet 公网地址   
想进行公网方式的23端口维护,发现失败,但是其他(linux的22及3389)成功
问题持续解决中....


Cisco防火墙参照路由器设置外,还需要增加访问控制


天融信防火墙使用时,放开源客户端,对目的FTP服务器端口限制21,1024-65533。


防火墙解决方案:

源IP——》目的IP  端口范围:1024-65533

源为     客户端

目的为  FTP服务器