Filetransfer 中文文档 下载 App

Windows 防火墙拦截 FTP 连接的放行方法

为什么会被拦截

Windows Defender 防火墙(Windows 10/11 默认开启)有一套严格的入站连接规则——默认只放行经过 Microsoft 认证的服务端口。FTP 协议使用的端口(标准端口 20 和 21,Filetransfer 用的 2121)不在默认放行列表里,所以电脑向外发起 FTP 连接时,防火墙会把响应拦掉。

典型表现:

方法一:Windows 安全中心界面操作(推荐)

步骤一:打开防火墙设置

按 Win + I 打开设置 → 搜索"防火墙" → 点"Windows Defender 防火墙"。或者直接按 Win + R 输入 wf.msc 回车打开高级防火墙管理。

步骤二:添加入站规则

在高级防火墙窗口左侧:

  1. 点"入站规则"
  2. 右侧操作栏点"新建规则"
  3. 选择"端口"作为规则类型 → 下一步
  4. 选择"TCP",在"特定本地端口"里输入 Filetransfer 使用的端口号(默认 2121,如果改了端口就填改后的)
  5. 选择"允许连接" → 下一步
  6. 勾选所有配置文件(域、专用、公用都勾上)→ 下一步
  7. 给规则起个名字,比如"Filetransfer FTP 2121"→ 完成

步骤三:添加出站规则(可选)

一般只需要入站规则就够了,但如果还是不行,也给出站加一条:

方法二:命令行一键添加(最快)

以管理员身份打开 PowerShell 或 CMD,运行:

netsh advfirewall firewall add rule name="Filetransfer FTP" dir=in action=allow protocol=TCP localport=2121

如果改了端口号,把 2121 换成你实际用的端口。

如果用了 SFTP 模式,再加一条 SFTP 的端口放行:

netsh advfirewall firewall add rule name="Filetransfer SFTP" dir=in action=allow protocol=TCP localport=50050

确认规则添加成功,会显示"确定"。

方法三:临时关闭防火墙测试

为了快速确认是不是防火墙的问题,临时关掉试试:

Windows 10/11

  1. 设置 → 更新和安全 → Windows 安全中心
  2. 点"防火墙和网络保护"
  3. 点"当前网络的防火墙状态"(通常是专用网络)
  4. 把"Microsoft Defender 防火墙"的开关暂时关掉

然后回到资源管理器重新尝试连接 FTP。如果关掉防火墙后立刻能连上,说明确认是防火墙拦截。

测试完记得立刻重新打开防火墙——关掉防火墙会让电脑暴露在网络攻击中,只是用来做排查验证,不能长期关着。

确认规则已生效

添加完放行规则后,重新打开高级防火墙管理(wf.msc),在入站规则列表里应该能看到刚才添加的规则。规则的状态应该是"已启用",操作是"允许连接"。

防火墙冲突:第三方安全软件

如果你装了第三方杀毒软件或防火墙(如 360、火绒、Comodo 等),它们可能会接管 Windows 防火墙。这种情况下:

更简单的替代:用被动模式

如果配置防火墙规则太麻烦,尝试让 FTP 客户端用被动模式(PASV)连接:

实际上 Windows 资源管理器连接 FTP 时本身就能穿透绝大多数防火墙,只有极个别严格的网络环境才需要手动放行。先试试资源管理器能不能连上,再考虑加防火墙规则。

Mac 上的防火墙

Mac 上 FTP 连接被拦截的情况较少——macOS 的应用层防火墙默认只拦截入站连接,不拦出站。但如果开了 FileVault 或启用了"隐身模式",可能有影响。系统设置 → 网络 → 防火墙 → 关掉"隐身模式"即可。