Windows Server充当FTP客户端的防火墙设置


5

我有一个充当FTP客户端的Windows Server 2012 R2,它需要通过FTP从其他设备检索某些文件。如果我完全关闭防火墙,则传输成功。随着防火墙的启动,该过程继续进行,但是文件无法保存在Windows服务器上。

我已经按照Microsoft关于如何为被动模式FTP服务器配置Windows防火墙的说明进行操作,但这仍然导致失败。

我删除了以前的防火墙规则,并用以下规则替换了它:

New-NetFirewallRule -DisplayName "FTP Service In" -Direction Inbound -Protocol TCP –Enabled True –Action Allow -Profile Any -Service ftpsvc -LocalPort Any -EdgeTraversalPolicy Allow

我还尝试仅影响端口20和21。所有结果相同。

关于如何正确设置防火墙以允许FTP流量下载文件的任何建议?

Answers:


3

在Windows Server(2012和2012R2)上,为了使用ftp get该程序检索文件ftp.exe需要访问端口20、21和1024-65535,因此,必须创建新的防火墙规则。在这种情况下,Windows服务器是FTP客户端,防火墙规则仅适用于FTP程序,不适用于服务(ftpsvc)。

New-NetFirewallRule -DisplayName "FTP In" -Direction Inbound -Protocol TCP –Enabled True –Action Allow -Profile Any -Program "%SystemRoot%\System32\ftp.exe" -Service Any -LocalPort 20,21,1024-65535 -EdgeTraversalPolicy Allow

Microsoft在如何为被动模式FTP服务器配置Windows防火墙中涵盖的说明在您的情况下没有用。它们在您运行FTP服务器时适用,但在Windows Server上使用FTP 客户端时适用。


这是对的。知道Windows内置ftp.exe客户端仅支持FTP活动模式非常有帮助,因此,只有在可以与FTP服务器建立活动模式连接的情况下(如果它位于NAT设备之后,这种情况很少发生),此功能才有用。
Twisty模仿者,

0

如果在这种情况下Windows Server 2012在活动模式下充当客户端,则它所需要的只是端口20和21和1024-65535。

您遵循的Microsoft链接适用于充当服务器的情况,因此可能不适用。

有关端口的更多信息,请参见本文:
为成功的FTP事务配置客户端防火墙(于2017年1月11日检索)。


请参阅编辑后的问题。我创建了一个防火墙规则,以允许任何端口上的ftp服务,并且仍然存在相同的问题。
slybloty

这还不够。请参阅我在上面的编辑中的文章,以了解根据主动/被动模式所需的端口。请记住,在这种情况下,Windows Server是客户端。
harrymc

将规则应用于ftpsvc不会影响ftp传输,因此,我的防火墙规则没有用。
slybloty

您可以使用GUI代替PowerShell吗?
harrymc

1
我已授予您赏金,因为您的回答帮助我找到了所需的解决方案。我不接受您的回答,因为它很模糊,不是我想要的。谢谢。
slybloty

-1

如果您需要解决此类问题,建议这样做:

我遇到了类似的问题,因此强烈建议您在FTP设置上观看以下精彩视频:https//www.youtube.com/watch?v = pSmlooPiHm4(以及之前的两个视频)。

有人建议,如果可以的话,实际上是重新启动整个Windows 2012 R2服务器。

最后,对我而言,有用的是用本地服务器的IP 替换了防火墙的外部IP地址

如果您看不到该图像,请执行以下操作:在ISS Manager中>转到站点>选择FTP站点> FTP防火墙支持>防火墙的外部IP地址-您很可能会自动为其填充防火墙IP。将此更改为本地服务器的IP,然后从服务器本身(例如FileZilla客户端)在本地测试FTP。如果有效,则说明是导致问题的防火墙。然后改回IP并查看防火墙。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.