从静态IP访问FileZilla FTP服务器时出现问题

我试图从Comcast Business上的外部IP地址连接到我的FTP服务器。

在网关上,我在端口20-21上设置了端口转发到我的服务器。 此外,我已经转发端口7000-8000到我的服务器使用被动模式。

在我的FileZilla Server应用程序中,我设置了被动模式来使用我的静态IP,并使用上面列出的端口子集。

不幸的是,由于某些原因,它不能通过外部静态IP工作,但我可以在内部。

当我尝试通过静态IP连接时,FileZila监视器说

Connected, sending welcome message.... 220 FileZillaServer version 0.9.37 beta could not send reply, disconnected 

我的防火墙没有注册任何块事件,并且Windows防火墙被禁用。 我做错了什么或失踪?

一般来说,如果没有在防火墙/ NAT设备上进行重新configuration,您所做的一切将无法正常工作。

当前设置的stream量基本如下(使用示例IP):

内部客户端IP:10.0.0.100
内部FTP IP:10.0.0.1
外部FTP IP:1.2.3.4

  1. 内部客户端(10.0.0.100)打开一个FTP连接(端口21)到1.2.3.4
  2. 内部客户端将stream量发送到默认网关/防火墙
  3. 防火墙有一个规则,将端口21的stream量发送到10.0.0.1,并将stream量发送到10.0.0.1,并使用客户端IP的真实源地址(10.0.0.100)
  4. FTP服务器将响应直接发回10.0.0.100,源地址为10.0.0.1,因为它看到本地源地址,所以永远不会退出防火墙。
  5. 内部客户端期望FTPstream量返回源1.2.3.4并丢弃10.0.0.1的响应
  6. FTP连接超时

您需要在防火墙上设置或启用发夹NAT规则(或NATreflection或取决于制造商的其他各种术语),以便在stream量回来之前build立到外部接口的NAT会话。Comcast设备可能有一个启用NATreflection的选项,但是之前没有和他们一起工作,我不能肯定他们是否做过。

真正的问题是你为什么要这样做? 如果你只是想testing,然后使用一个真正的外部客户端(或者有一个朋友testing或设置一个外部客户端)。 如果您想以这种方式继续前进,那么就直接使用IP或分离DNS解决scheme。

这似乎是出于原因,端口21上的连接在外部IP和您的Filezilla服务器之间不起作用。

我build议您允许在外部IP站和服务器上的端口21上的入站和出站连接。 之后,你可以尝试:

  1. 从端口21的telnet从外部ip到Filezilla服务器

    2.您可能需要将来自Filezilla服务器的响应转发回外部IP(错误220 – 无法接收欢迎消息)

被动模式和高编号端口不用于命令阶段,所以这与端口21上的传输有关。

选项是:

  • Filezilla的外部IP地址configuration是错误的:尝试在同一个IP上的另一个服务来确认。 这是最有可能基于你提供的
  • ISP正在做一些阻塞:尝试将端口从21更改为1024以上
  • Windows可能会被阻塞:Windows防火墙不擅长logging事情。 运行Wireshark将确认数据包是否真的离开Windows主机

最后,你应该尽量避免使用FTP,如果可以的话。 因为包括用户名和密码在内的所有内容都以明文forms发送,SFTP或FTPS在公共互联网上的select要好得多。