Windows防火墙阻止IIS FTP连接(已启用FTP端口规则)
我的问题
我用IIS搭了个Windows FTP服务器,安装FTP的时候防火墙端口规则是自动配置并启用的,允许端口21、1024-65535和990的FTP流量。
从服务器本地连接完全没问题,但从局域网里另一台电脑连就超时,关掉防火墙就能正常连上。我是用PowerShell测试FTP连接的,有没有大佬能帮忙看看?谢谢!
可能的排查方向和解决办法
根据我碰到过的类似情况,你可以试试下面这些步骤:
确认被动模式端口的配置一致性
IIS默认的FTP被动模式端口是1024-65535,但有时候防火墙的自动规则可能没和FTP服务的设置对应上。你可以手动指定一个更小的端口范围(比如50000-50100),然后在Windows防火墙里添加入站规则允许这个范围的流量,同时在IIS管理器的FTP站点“FTP防火墙支持”里设置相同的端口范围,两边一定要匹配。检查防火墙规则的作用域
去看看自动创建的FTP防火墙规则,在“作用域”选项卡下的“远程IP地址”,确认是不是允许你的局域网IP段访问。有时候自动规则可能默认只允许本地IP,你可以改成“任何IP地址”,或者手动添加你的局域网IP范围(比如192.168.1.0/24)。验证FTP站点的绑定和SSL设置
如果你的FTP用了SSL(对应端口990),要确保防火墙不仅开了990端口,被动模式的端口也开放了。另外,检查FTP站点绑定的IP地址是不是服务器的局域网IP,别只绑了127.0.0.1,不然外部设备肯定连不上。用PowerShell测试端口连通性
在客户端电脑上运行Test-NetConnection <你的服务器IP> -Port 21和Test-NetConnection <你的服务器IP> -Port 990,先看看基础端口能不能通。如果这些端口能通但还是连不上FTP,那大概率是被动模式的端口被防火墙拦截了,得重点排查被动端口的规则。重启相关服务
有时候配置改了之后需要重启服务才生效,你可以先重启IIS里的FTP服务,再重启Windows防火墙服务(用管理员PowerShell运行net stop mpssvc,等停了再运行net start mpssvc),之后再测试连接试试。
备注:内容来源于stack exchange,提问作者Paul Alexander




