FTP 服务搭建与被动端口范围
发布时间:2025-12-12 15:02       
更新时间:2025-12-13 13:23
FTP 站点搭起来不难,难在被动模式的端口范围,配不好就是能登录却看不到文件列表。这篇按完整流程走一遍,重点讲清楚为什么要放行一段数据端口。
## 角色安装
服务器管理器→"添加角色和功能"→服务器角色里展开"Web 服务器 (IIS)"→勾选"FTP 服务器"及其下的"FTP 服务",管理工具会一并装上。命令行等价:
```
Install-WindowsFeature Web-Ftp-Server
```
装完不需要重启。
## 建立站点与用户
IIS 管理器里右键"网站"→"添加 FTP 站点":站点名和物理路径(如 D:\ftpdata)填好;绑定选"全部未分配"、端口 21;SSL 一栏内网可暂选"无",公网服务建议选"需要 SSL"。身份验证勾"基本",授权里指定允许的用户和读写权限。要给多人分目录的,启用"用户隔离"模式:物理路径下按 LocalUser\用户名 建目录,每个用户登录后直接落在自己的目录里,互相看不见,出问题也好定位。
## 被动模式与端口范围
FTP 有两种工作方式:主动模式由服务器反向连接客户端传数据,公网和防火墙环境下几乎必挂;被动模式由客户端连服务器的数据端口,这才是公网可用的方式。被动模式需要服务器开放一段数据端口:IIS 里在 FTP 站点级"FTP 防火墙支持"中设置数据通道端口范围,比如 5000-5100,配置后重启 FTP 服务生效。然后三处放行:Windows 防火墙放行 21 和 5000-5100 入站,云控制台安全组同步放行,客户端侧的出向一般不用管。
```
netsh advfirewall firewall add rule name="FTP-Data" dir=in action=allow protocol=TCP localport=5000-5100
```
## 验证与常见报错
命令行 ftp 服务器IP 登录,执行 dir 看能否列出目录,列得出来说明数据通道正常。高频故障:登录成功但 dir 卡住超时,就是被动端口没放全,核对范围是否与 IIS 配置一致;一边正常一边异常,多半有一侧走了主动模式,客户端设置里强制被动;报 534 要求 SSL,把客户端与服务端的 SSL 设置对齐。日志在 C:\inetpub\logs\LogFiles\FTP 下,按时间点对照看一眼就有结论。
FTP 协议年代久远,公网使用务必有迁移到加密方案的计划,至少先把这篇里的端口范围收到够用的最小段,减少暴露面。