当 Windows 防火墙打开时,无法从同一 LAN 中的其他计算机访问 FTP 服务器

Mah*_*aha 4 networking ftp firewall windows-7 windows-10

我在 Windows 10 上配置了 FTP 服务器。当我关闭 Windows 防火墙时,我可以从同一 LAN 上的其他计算机访问 FTP 服务器。但是当我打开防火墙时,我无法访问FTP。这些是我的防火墙入站规则,我认为这些规则是针对我的问题的(我想剪切并共享完整的 Windows 防火墙规则列表。但它很大。请指出我需要调整的任何其他规则。我将剪切它并在这里分享。)

入境规则 在此输入图像描述 在此输入图像描述

呼出规则 在此输入图像描述 在此输入图像描述

请告诉我什么配置不好。(我在 Windows 10 上)

Vom*_*yle 5

对于FTP,您需要确保打开 TCP 端口2021. 此外,如果计算机上运行的服务器服务使用被动模式,那么您还需要打开 FTP 服务器配置使用的 TCP 端口范围。

快速端口分解

看起来您正在 TCP 端口2021即主动和被动)上运行不安全的 FTP,并且可能还在 TCP 端口和上运行带有隐式 SSL 的FTPS990989

FTP 协议使用一个端口/通道用于控制/命令,另一个端口/通道用于客户端和服务器的数据交换部分。

不安全的FTP

  • 命令通道:TCP端口21
  • 数据通道(主动):TCP端口20
  • 数据通道(被动):<FTP Server configured TCP port range>

具有隐式 SSL 的 FTPS

  • 命令通道:TCP端口990
  • 数据通道(主动):TCP端口989

命令行防火墙(本节应该解决问题)

在以管理员身份提升的命令行中运行以下命令,创建 Windows 防火墙规则,允许 FTP 服务器服务的入站流量在 Windows 操作系统分类网络的任何 IP 地址和任何配置文件范围的适用命令和数据端口上进行通信。

您需要指定program="<C:\FTPServer\FTPServer.exe>"适合您的服务器的值,或者使用 代替service=<ftpsvc>指向服务名称。

netsh advfirewall firewall add rule name="FTP Inbound" dir=in action=allow program="%windir%\system32\svchost.exe" remoteip=any localip=any protocol=TCP localport=20,21,990,989 remoteport=20,21,990,989 profile=any
Run Code Online (Sandbox Code Playgroud)

运行以下命令禁用状态 FTP 过滤,以便防火墙不会阻止任何 FTP 流量,因此您无需打开整个被动端口范围来允许该流量。

netsh advfirewall set global StatefulFTP disable
Run Code Online (Sandbox Code Playgroud)

Windows 防火墙图形用户界面

确保您在规则中定义了范围,以便允许LAN 的 IP 地址范围通过,或者允许任何 IP 地址通过。最后,您需要确保服务器上的网络适配器是在防火墙规则允许的配置文件中配置的。

港口

注意: 添加被动端口范围(如果适用)。

在此输入图像描述

范围

在此输入图像描述

型材

在此输入图像描述


更多资源