摘要
在 Windows 上搭建 FTP 服务器主要有两种方式:

- 使用 Windows 自带的 IIS (Internet Information Services):功能强大,与系统集成度高,适合需要管理多个网站/服务的用户。
- 使用第三方工具 FileZilla Server:轻量级,配置简单,界面直观,非常适合个人用户或小型团队快速搭建 FTP 服务。
使用 Windows 内置的 IIS (FTP 服务器)
这种方法需要通过“服务器管理器”或“控制面板”安装 IIS 功能。
第一步:安装 IIS 和 FTP 服务
-
打开服务器管理器 (Server Manager)。
- 对于 Windows Server:点击“管理” -> “添加角色和功能”。
- 对于 Windows 10/11:在“控制面板” -> “程序” -> “程序和功能” -> “启用或关闭 Windows 功能”。
-
安装角色/功能:
- 在向导中,选择“角色” (对于服务器) 或 “功能” (对于客户端)。
- 找到并勾选 Internet Information Services (IIS)。
- 展开它,确保勾选以下所有子项:
- FTP 服务器:这是核心功能。
- 管理工具:包含 IIS 管理器。
- 万维网服务:通常也需要,即使你只用 FTP。
- 点击“安装”,等待完成。
-
验证安装:
(图片来源网络,侵删)- 安装完成后,打开“Internet Information Services (IIS) 管理器”。
- 在左侧树状图中,你应该能看到你的计算机名称,展开它,你应该能看到一个名为“FTP 站点”的文件夹,说明安装成功。
第二步:创建 FTP 站点
-
在 IIS 管理器中,右键点击“FTP 站点”,选择“添加 FTP 站点...”。
-
基本信息:
- FTP 站点名称:给你的站点起一个名字,
MyFTP。 - 物理路径:选择一个用于存放 FTP 文件的文件夹。
D:\FTP_Files。请确保此文件夹已存在,并且你对该文件夹有完全控制权限。
- FTP 站点名称:给你的站点起一个名字,
-
绑定和 SSL:
- IP 地址:选择服务器的 IP 地址,如果不确定,选择“全部未分配”。
- 端口:FTP 默认端口是 21,通常无需修改。
- SSL:这是安全的关键选项,有三个选择:
- 无:不加密,不安全,仅用于测试环境。
- 允许:允许客户端使用 FTPS (FTP over SSL/TLS) 连接,这是推荐的选项。
- 需要:强制客户端必须使用 FTPS 连接,如果客户端不支持,将无法连接。
- 点击“下一步”。
-
身份验证和授权:
(图片来源网络,侵删)- 匿名:允许任何人访问,无需用户名密码。不推荐在生产环境中使用,除非你明确知道风险。
- 基本:需要用户名和密码。注意:基本身份验证的密码是明文传输的,因此必须在上一步中启用 SSL。
- 授权:
- 匿名:如果勾选了匿名,可以设置匿名用户的权限(读取、写入)。
- 指定用户:选择“指定用户”,然后点击“添加...”。
- 输入你希望允许访问 FTP 的 Windows 用户名(
ftpuser),点击“确定”。 - 设置这些用户的权限:通常选择“读取”和“写入”。
- 点击“完成”。
第三步:配置高级 FTP 设置
-
在 IIS 管理器左侧,右键点击你刚刚创建的 FTP 站点(如
MyFTP),选择“编辑绑定...”。 -
选中你的 FTP 绑定,点击“编辑...”。
-
在弹出的窗口中,你可以配置更多高级选项:
- FTP 日志:启用日志记录,方便排查问题。
- 主目录:确保路径正确。
- 权限:再次检查用户权限。
- 文件权限:设置用户对文件的 NTFS 权限(读取、写入、读取和执行等),这比 FTP 站点权限更底层,非常重要。
第四步:配置 Windows 防火墙
- 打开“Windows Defender 防火墙”。
- 点击左侧的“允许应用或功能通过 Windows Defender 防火墙”。
- 点击“更改设置”(需要管理员权限)。
- 找到并勾选 “文件传输协议 (FTP)”。
- 确保在“专用”和“公用”网络类型下都勾选了它。
- 点击“确定”。
你的 FTP 服务器已经基本配置完成,你可以使用任何 FTP 客户端(如 FileZilla、WinSCP)进行测试。
使用 FileZilla Server (第三方工具)
这种方法更简单,无需安装庞大的 IIS。
第一步:下载并安装 FileZilla Server
- 访问 FileZilla Server 官方下载页面。
- 下载并运行安装程序,按照向导完成安装,过程非常简单。
第二步:启动并配置 FileZilla Server
- 安装完成后,FileZilla Server 管理界面会自动启动。
- 首次运行,它会让你设置一个管理员密码,请务必设置一个强密码并记住它。
第三步:添加用户和设置权限
- 在管理界面,点击菜单栏的“Edit” -> “Users”。
- 点击“Add”按钮,创建一个新用户(
ftpuser)。 - 在右侧的设置面板中:
- Password:为该用户设置密码。
- Shared folders:这是用户可以访问的目录,点击“Add”,选择一个文件夹(
D:\FTP_Files)。 - Permissions:为该用户设置对所选文件夹的权限:
Read:读取(下载)文件和列表。Write:上传和创建文件。Delete:删除文件和文件夹。Append:追加写入文件(通常与Write一起勾选)。Execute:执行文件(通常不需要)。Create:创建文件夹。List:列出文件夹内容(通常与Read一起勾选)。
- 建议:对于上传/下载用户,勾选
Read,Write,Append,List,Create,Delete。
第四步:设置服务器端口和绑定
- 在管理界面,点击菜单栏的“Edit” -> “Settings”。
- 在左侧选择“FTP Server” -> “Passive mode settings”。
- Passive mode ports:FileZilla 默认使用一个端口范围(如 50000-51000),这个范围需要在防火墙中开放。
- 勾选“Use custom port range”,并设置一个起始和结束端口(
50000到50100)。
- 在左侧选择“Edit” -> Settings -> FTP Server -> General settings。
- Listen on these ports:默认是
21,无需修改。 - Bind to IP address(es):可以留空(监听所有 IP),或指定服务器的 IP 地址。
- Listen on these ports:默认是
第五步:配置 Windows 防火墙
- 打开“Windows Defender 防火墙”。
- 点击“高级设置”。
- 在左侧点击“入站规则”,然后在右侧点击“新建规则...”。
- 选择“端口”,点击“下一步”。
- 选择“TCP”,并在“特定本地端口”中输入
21(FTP 命令端口) 和你之前设置的被动模式端口范围(50000-50100),用逗号分隔。 - 点击“下一步”,选择“允许连接”。
- 点击“下一步”,勾选所有配置文件(域、专用、公用)。
- 点击“下一步”,给规则起个名字(
FileZilla FTP),然后点击“完成”。
你的 FileZilla FTP 服务器也配置完成了,可以直接用客户端连接测试。
安全配置最佳实践 (非常重要!)
无论使用哪种方法,安全都是第一位的。
- 禁用匿名登录:永远不要在生产环境中启用匿名 FTP。
- 使用强密码:为 FTP 用户设置复杂且不易猜测的密码。
- 使用 FTPS (FTP over SSL/TLS):
- 必须启用 SSL/TLS 加密,使用 IIS 时,在“SSL”设置中选择“允许”或“需要”,使用 FileZilla 时,在“设置” -> “FTP over TLS settings” 中,勾选“Enable FTP over TLS support”,并选择“Required”。
- 这样可以防止用户名和密码在传输过程中被窃听。
- 限制用户访问:
- 创建专用的 FTP 用户,不要使用管理员账户(如
Administrator)。 - 在 Windows NTFS 权限中,只授予 FTP 用户必要的最小权限(只给他们一个文件夹的“读取”和“写入”权限)。
- 创建专用的 FTP 用户,不要使用管理员账户(如
- 配置防火墙:只开放必要的端口(21 和被动模式端口范围),并限制访问来源 IP(如果可能)。
- 定期更新:保持操作系统和服务器软件(IIS 或 FileZilla Server)为最新版本。
- 使用日志记录:启用日志功能,定期检查日志以发现异常活动。
- 考虑 SFTP (SSH File Transfer Protocol):
- FTP/FTPS 本身不安全,即使使用了 FTPS,其设计也存在一些安全漏洞。
- SFTP 是更现代、更安全的选择,它运行在 SSH 协议之上,默认加密所有数据,且端口统一(22)。
- 在 Windows 上,你可以使用 OpenSSH 服务器(Windows 10/11 已内置)来提供 SFTP 服务,这是目前最推荐的文件传输方式。
常见问题排查
- 连接被拒绝:
- 检查 FTP 服务器是否正在运行。
- 检查防火墙是否放行了 21 端口(和被动模式端口)。
- 检查用户名和密码是否正确。
- 用户名正确但密码错误:
- 确认用户密码是否正确。
- 如果使用 IIS,检查“身份验证”是否设置为“基本”并启用了 SSL。
- 如果使用 FileZilla,检查用户密码是否设置正确。
- 无法列出文件 (425 Can't open data connection):
- 这是被动模式的经典问题。
- 原因:客户端无法连接到服务器在被动模式下指定的数据端口。
- 解决:
- 在服务器端(IIS 或 FileZilla)确认被动模式端口范围已设置。
- 在服务器端的防火墙中开放这个端口范围。
- 在客户端的 FTP 设置中,启用被动模式(PASV),大多数现代 FTP 客户端默认开启。
希望这份详细的指南能帮助你成功配置 Windows FTP 服务器!
