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

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

我在 Windows 10 上配置了 FTP 服务器。关闭 Windows 防火墙后,我可以从同一 LAN 上的其他计算机访问 FTP 服务器。但是当我打开防火墙时,我无法访问 FTP。这些是我的防火墙入站规则,我认为这些规则与我的问题有关(我原本想截取并分享完整的 Windows 防火墙规则列表。但它太大了。请指出我需要调整的任何其他规则。我会截取它并在此处分享。)

入境规则 在此处输入图片描述 在此处输入图片描述

出站规则 在此处输入图片描述 在此处输入图片描述

请告诉我哪里配置不正确。(我在 Windows 10 上)

答案1

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

快速端口细分

看来您正在 TCP 端口上运行不安全的 FTP 20,并且21即主动和被动),或许还有 FTPS在 TCP 端口上使用隐式 SSL990989

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

不安全的 FTP

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

具有隐式 SSL 的 FTPS

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

命令行防火墙(此部分应该可以解决问题)

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

您需要指定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

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

netsh advfirewall set global StatefulFTP disable

Windows 防火墙图形用户界面

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

端口

笔记: 如果适用,添加被动端口范围。

在此处输入图片描述

范围

在此处输入图片描述

个人资料

在此处输入图片描述


更多资源

相关内容