分享

FileZilla 

 开启美好每一天 2014-01-15

1. 解决方案:
更改FileZilla设置,【编辑】->【设置】->【连接】->【FTP】->【被动模式】,将“使用服务器的外部IP地址来代替”改为“退回到主动模式”即可。

 

2. 原因分析:
+ 首先,FTP的连接方式:主动模式和被动模式。主动模式是客户端Client主动通知服务器数据通信端口N + 1(N为命令通信端口),服务端Server通过此端口N + 1向客户端Client发送数据连接和数据,然而对于内网中的客户端Client,其内网端口通过NAT或防火墙后会被映射为其他值,从而服务器无法访问此值,造成失败;被动模式是客户端Client向服务端Server发送PASV命令通知服务端Server,服务端Server会向客户端Client发送数据通信端口P,客户端Client通过此端口P向服务端Server发送数据连接和数据,因此,可以看出被动模式是针对主动模式的缺陷设计的,但是当我们将FTP服务端架设在一台网关服务器的内网节点中时,此时NAT或防火墙在服务端,被动模式因此不适用,相反主动模式适用于客户端Client连接FTP服务端,因为被动模式要求服务端Server将其数据通信端口P发送给客户端Client,然而此端口会被NAT或防火墙屏蔽导致客户端无法连接,因此FileZilla在配置被动模式时“一些配置错误的远程服务器放在了路由器后面,可能会返回它们的本地地址”说的就是这种情形,因此其给出两个选项:“使用服务器的外部IP地址来代替”和“退回到主动模式”,自然我们要选择后者。
+ 但是,Server-U架设的FTP服务器,其文档中:【服务器】->【服务器限制和设置】->【服务器设置】->【网络设置】描述:通过 UPnP 自动配置防火墙启用时,Serv-U 在启用 UPnP 的网络设备(通常为路由器)中自动配置必要的端口转发,从而可以从网络外部访问该文件服务器。这对于启用 PASV 模式的 FTP 数据传输特别有用。应该可以使用前面的“使用服务器的外部IP地址来代替”选项,通过勾选【通过 UPnP 自动配置防火墙】并设置其下面【PASV端口范围】,将其被动模式的端口范围设置成1个值,如:9835 - 9835,然后在通过设置内网网关的端口映射将外网端口9835映射到内网FTP服务器主机的9835端口,这样的话,FTP服务器在内网中通过被动模式告知客户端其端口号时,映射到外网后,仍然是9835,因此,客户端可以实现以被动模式连接一台隐藏在内网中的FTP服务器,且完全可以脱离FTP客户端,直接使用IE等浏览器进行ftp://IP:Port/的FTP访问,此方案看似生硬,其实比较巧妙。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多