本指南将分步详细讲解如何从零开始搭建一个安全的 FTP 服务器。
核心概念:FTP vs. FTPS
在开始之前,请务必了解一个重要概念:
- FTP (File Transfer Protocol):传统的文件传输协议。所有数据(包括用户名和密码)都是明文传输的,非常不安全! 仅在完全可信的内网环境中使用。
- FTPS (FTP Secure):基于 SSL/TLS 加密的 FTP 协议,它通过加密连接保护了数据传输和用户凭据,是目前推荐的标准。
本指南将重点介绍 FTPS 的搭建,因为它更安全,我也会同时介绍如何开启不安全的 FTP 以作备用。
第一步:安装 FTP 服务
-
打开服务器管理器
点击屏幕左下角的“开始”按钮,然后选择“服务器管理器”。
-
添加角色服务
- 在服务器管理器的右侧,点击“添加角色”。
- 在“开始之前”页面,直接点击“下一步”。
- 在“选择服务器角色”页面,勾选 “Web 服务器 (IIS)”。
- 系统会弹出“添加必需的功能”对话框,点击“添加必需的功能”,然后点击“下一步”。
-
选择 Web 服务器角色服务

- 在“角色服务”列表中,展开 “FTP 服务器”。
- 勾选以下两项:
- FTP 服务
- FTP 扩展性
- 点击“下一步”。
-
确认安装
- 在“确认安装选择”页面,检查无误后点击“安装”。
- 等待安装完成,点击“关闭”。
FTP 服务的核心组件已经安装完毕。
第二步:创建 FTP 用户和文件夹
为了安全,强烈建议不要使用 Administrator 或其他高权限账户来登录 FTP,我们应该为 FTP 创建一个专用的低权限用户。
-
创建用于 FTP 的文件夹

- 在 D 盘创建一个名为
FTP_Site的文件夹。 - 在该文件夹下,为每个用户创建一个独立的子文件夹,
UserA、UserB。 - 重要:右键点击每个用户文件夹(如
UserA),选择“属性” -> “安全”选项卡,点击“编辑”,添加”,输入Everyone并检查,取消其“完全控制”权限,只保留“读取和执行”、“列出文件夹内容”、“读取”权限,将你即将创建的 FTP 用户的权限设置为“完全控制”,这样可以隔离不同用户的文件。
- 在 D 盘创建一个名为
-
创建专用 FTP 用户
- 右键点击“计算机”,选择“管理”。
- 展开“本地用户和组”,点击“用户”。
- 在右侧空白处右键点击,选择“新用户”。
- 填写用户信息(用户名
ftpuser1,密码YourStrongPassword123!,取消勾选“用户下次登录时须更改密码”和“用户不能更改密码”)。 - 点击“创建”,关闭”。
- 可选但推荐:双击新创建的用户,切换到“隶属于”选项卡,点击“添加”,将其从
Users组中移除(如果需要更严格的控制)。
第三步:配置 FTP 站点
-
打开 IIS 管理器
- 点击“开始” -> “管理工具” -> “Internet 信息服务 (IIS) 管理器”。
-
添加 FTP 站点
- 在 IIS 管理器左侧,右键点击“FTP 站点”,选择“添加 FTP 站点”。
- 站点名称:输入一个易于识别的名称,
MyFTPSite。 - 物理路径:点击右侧的“浏览”,选择你之前创建的文件夹,
D:\FTP_Site。 - 点击“下一步”。
-
绑定和 SSL 设置

- IP 地址:如果你的服务器有多个IP,选择一个,如果不确定,选择“未分配”。
- 端口:FTP 默认端口是 21,FTPS 默认端口是 990,我们这里先设为 21。
- SSL:这是最关键的一步,选择 “需要 SSL”。
- 点击“下一步”。
-
身份验证和授权
- 身份验证:
- 勾选 “匿名”:允许任何人匿名访问,不推荐用于生产环境。
- 勾选 “基本”:需要用户名和密码。注意:Basic 认证是明文传输的,所以这一步必须配合上一步的“需要 SSL”才能保证安全。
- 授权:
- 授权:选择“授权”。
- 权限:根据你的需求选择“读取”或“读取/写入”。
- 添加:点击“添加...”,选择“指定的用户”,然后输入你之前创建的 FTP 用户名(如
ftpuser1),点击“确定”。 - 点击“完成”。
- 身份验证:
-
设置 FTP 权限(文件系统权限)
- IIS 中的授权只是第一层,你还需要确保 NTFS 文件系统权限是正确的。
- 在 IIS 管理器左侧,选中你刚刚创建的 FTP 站点
MyFTPSite。 - 在中间的“操作”面板中,点击“编辑权限...”。
- 切换到“安全”选项卡。
- 确保你的 FTP 用户(如
ftpuser1)在列表中,并且拥有你需要的权限(对于其个人文件夹UserA,应拥有“完全控制”权限)。
第四步:配置防火墙
为了让外部用户能访问,必须开放 FTP 相关的端口。
- 打开“控制面板” -> “Windows 防火墙”。
- 点击左侧的“允许程序或功能通过 Windows 防火墙”。
- 点击“设置...”按钮。
- 在“允许的程序和功能”列表中,找到并勾选 “文件传输协议 (FTP)”。
- 确保在“域”、“专用”、“公用”三个网络位置下都已勾选(根据你的网络环境选择)。
- 点击“确定”。
第五步:连接测试
FTP 服务器已经搭建完成,你可以使用以下方式测试:
使用 Windows 资源管理器(推荐用于内网或测试)
- 在文件资源管理器的地址栏中输入:
ftp://你的服务器IP地址 - 系统会弹出登录对话框,输入你创建的用户名和密码。
- 如果一切正常,你应该能看到你授权访问的文件夹。
使用 FileZilla(推荐用于外网和客户端测试)
FileZilla 是一个功能强大的 FTP 客户端,可以很好地处理 FTPS。
- 下载并安装 FileZilla。
- 打开 FileZilla,在顶部快速连接栏中填写信息:
- 主机:你的服务器公网IP地址。
- 端口:
21(FTP) 或990(FTPS),因为我们配置了 SSL,所以必须使用 990。 - 用户名:
ftpuser1 - 密码:
YourStrongPassword123!
- 协议:确保选择 “FTP - 文件传输协议”,如果选择 “FTPES - 在文件传输协议上使用隐式 SSL”,它会自动使用端口 990。
- 点击“快速连接”。
如果连接成功,FileZilla 底部的日志会显示“状态:已成功连接”,并且会列出文件,如果失败,请仔细检查防火墙设置、IIS 配置和用户权限。
常见问题排查
- 错误 530:用户无法登录。
- 原因:最常见的原因是用户密码错误,或者该用户不是“本地用户和组”中创建的用户。
- 解决:确认用户名和密码无误,在 IIS 管理器中,确保该用户被添加到了授权列表中。
- 错误 550:拒绝访问。
- 原因:这是 NTFS 文件系统权限问题,用户在 IIS 中被授权了,但操作系统层面的文件权限不够。
- 解决:右键点击 FTP 根目录或用户子文件夹,选择“属性” -> “
