You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows防火墙阻止IIS FTP连接(已启用FTP端口规则)

Windows防火墙阻止IIS FTP连接(已启用FTP端口规则)

看你的描述,你用IIS搭建了Windows FTP服务器,安装时自动配置并启用了包含21、1024-65535、990端口的防火墙规则,本机连接正常,但局域网其他电脑连接就超时,关掉防火墙就能正常连接——我之前也碰到过一模一样的问题,给你几个亲测有效的排查和解决方向:

  • 确认FTP站点的被动模式配置
    IIS自动开了端口,但如果没在FTP站点里指定被动端口范围,防火墙的动态规则可能不会生效。打开IIS管理器,找到你的FTP站点,双击右侧的「FTP防火墙支持」,在「数据通道端口范围」里填写和防火墙一致的1024-65535,然后在「外部IP地址」里填入服务器的局域网IP(比如192.168.x.x),保存配置后重启FTP服务。

  • 检查防火墙规则的网络配置文件
    自动创建的FTP防火墙规则可能默认只应用于「域」网络,而你的客户端所在的是「专用」网络。打开「Windows Defender防火墙高级设置」,找到那些FTP相关的入站规则(比如「FTP Server (FTP Traffic-In)」「FTP Server (FTP SSL Traffic-In)」等),右键选「属性」,切换到「高级」标签,确保勾选了所有适用的网络配置文件(比如「域」「专用」)。

  • 用PowerShell测试时切换连接模式
    你用PowerShell测试的话,试试切换到主动模式排查问题。比如用ftp命令连接时,输入passive关闭被动模式,看能不能连上——如果主动模式能成,那肯定是被动模式的端口配置没匹配好。

  • 查看防火墙丢弃日志精准定位
    开启防火墙的日志记录,能直接看到被阻止的连接细节。路径是:防火墙高级设置 -> 右键「Windows Defender防火墙属性」,在对应的网络配置文件(比如「专用」)的「日志」部分,设置日志保存路径,勾选「记录被丢弃的数据包」,然后测试连接,打开日志文件就能看到是哪个端口、哪个IP被拦截了。

  • 验证端口监听状态
    在服务器上打开PowerShell,执行netstat -ano | findstr ":21"netstat -ano | findstr ":990",确认这两个端口是被IIS的进程(通常是inetinfo.exe或者w3wp.exe)监听着,排除FTP服务本身没正常启动的问题。

按这些步骤走下来,基本就能解决你遇到的局域网FTP连接超时问题了,我之前就是因为防火墙规则没覆盖专用网络,调整后立刻就正常了。

备注:内容来源于stack exchange,提问作者Paul Alexander

火山引擎 最新活动