我试图在运行Windows Server 2008和IIS 8.0的计算机上安装第二台FTP服务器。 我已经有一个可以通过一个端口访问的FTP服务器,而且这个服务器可以在不同的端口上访问并指向相同的目录。
我在路由器上转发了端口,并且在使用基本身份validation进行设置后,允许Windows防火墙中的新端口发生exception。
现在,我可以使用localhost:2020从本地机器访问FTP服务器(假设2020是我的端口)。 当我尝试使用ftp://mydomain.biz:2020时 ,仍然提示inputlogin屏幕,但是在input与localhost一起使用的相同login信息时,出现此错误:

我该如何解决这个错误?
这听起来像是防火墙和路由器都没有意识到你正在运行FTP协议,这可能是因为你正在使用非标准的端口进行控制连接。
当数据连接被宣布(PASV端口)该端口可能不被Windows防火墙打开时,使连接不可能。
即使Windows防火墙确实打开了系统防火墙中的端口,因为您在不指定FTP帮助程序模块的情况下使用端口转发,您的路由器也不会通过控制连接检查来自FTP服务器的响应。 那么在PASV响应中,不会将Windows服务器的内部IP地址重写为路由器的公有IP地址,也不会为数据连接dynamic创build正确的端口转发规则。
全身心的哀悼
请检查同一networking中另一主机的非标准FTP端口的function,以确认Windows防火墙是否正常工作。
然后检查你的NAT路由器的configuration。
FTP协议使用了过多的端口:端口21用于控制连接,端口20用于处于活动模式的数据连接,以及用于被动数据连接的可变数量的通常高端口。
在这种情况下,FTP客户端可能会通知您端口50297上的IP 192.168.1.165的被动数据连接失败。 几乎总是发生这种情况, 这是一个防火墙(或NAT)configuration问题 。
在你的情况下,我认为我们可以排除NAT问题,因为你连接到同一局域网上的IP(192.168.1.0/24),因此它必须是Windows防火墙的问题。
简单(但不太安全)的解决scheme是将Windows防火墙例外configuration为信任FTP服务器进程(它是EXE)。 这样,它将能够接受任何端口上的传入连接。 更优雅(更安全)的解决scheme是configurationFTP服务器用于被动连接的确切端口范围,然后仅打开Windows防火墙上的那些端口(加上端口2020)。