使用IIS(Internet Information Services) 和使用第三方FTP服务器软件。
方法一:使用Windows自带的IIS搭建FTP服务器
1. 安装IIS和FTP功能
# 通过控制面板安装:
1. 控制面板 → 程序和功能 → 启用或关闭Windows功能
2. 勾选:
✓ Internet Information Services
✓ FTP服务器
✓ IIS管理控制台
3. 点击"确定"安装
2. 创建FTP站点
# 步骤:
1. 打开"IIS管理器"(搜索"iis")
2. 右键"网站" → 添加FTP站点
3. 配置:
- 站点名称:MyFTPServer
- 物理路径:D:\FTP(提前创建好文件夹)
3. 绑定和SSL设置
绑定和SSL设置:
- IP地址:选择"全部未分配"或特定IP
- 端口:21(默认)
- 虚拟主机名:留空
- SSL:根据需要选择
4. 身份验证和授权
身份验证:基本身份验证(勾选)
授权:添加允许的用户
- 所有用户/指定用户
- 权限:读取/写入
5. 防火墙配置(重要!)
# 允许FTP通过防火墙
1. 控制面板 → Windows Defender 防火墙
2. 允许应用或功能通过防火墙
3. 找到"FTP服务器",勾选"专用"和"公用"
# 或使用命令:
netsh advfirewall firewall add rule name="FTP Server" dir=in action=allow protocol=TCP localport=21
6. 被动模式配置(解决客户端连接问题)
<!-- 编辑:C:\Windows\System32\inetsrv\config\applicationHost.config -->
<system.ftpServer>
<firewallSupport>
<externalIp4Address>你的公网IP</externalIp4Address>
<dataChannelPortRange min="50000" max="50100" />
</firewallSupport>
</system.ftpServer>
方法二:使用第三方FTP服务器软件(以FileZilla Server为例)
1. 下载和安装
# 步骤:
1. 下载FileZilla Server:https://filezilla-project.org
2. 安装时注意:
- 安装为服务,随系统启动
- 设置管理端口(默认14147)
- 设置管理员密码
2. 基本配置
# 启动FileZilla Server Interface
连接设置:
- 主机:127.0.0.1
- 端口:14147
- 密码:安装时设置的密码
3. 用户管理
步骤:
1. Edit → Users
2. 添加用户组(可选)
3. 添加用户:
- 用户名/密码
- 分配主目录
- 设置权限(读取、写入、删除等)
4. 被动模式配置
Edit → Settings → Passive mode settings:
- 使用自定义端口范围:50000-50100
- 使用服务器外网IP
5. 安全设置
Edit → Settings → FTP over TLS settings:
- 启用TLS
- 选择证书文件(自签名或CA颁发)
两种方式对比
| 特性 |
IIS FTP |
FileZilla Server |
|---|
| 安装难度 |
中等 |
简单 |
| 功能丰富度 |
基本 |
丰富 |
| 用户界面 |
图形化 |
图形化+详细配置 |
| 性能 |
一般 |
优秀 |
| 安全性 |
中等 |
高(支持TLS) |
| 被动模式配置 |
较复杂 |
简单 |
| 适合场景 |
简单内部使用 |
专业/生产环境 |
常见问题解决
1. 连接超时/无法连接
# 检查步骤:
1. 确保服务已启动
2. 防火墙已放行端口21和被动端口范围
3. 路由器端口转发(公网访问时需要)
4. 检查Windows防火墙日志
2. 被动模式问题
# 解决方法:
# 对于IIS:
netsh advfirewall firewall add rule name="FTP Passive" dir=in action=allow protocol=TCP localport=50000-50100
# 对于FileZilla:
在设置中正确配置外网IP和端口范围
3. 用户权限问题
# 检查:
1. FTP文件夹权限(右键→属性→安全)
2. 添加IIS_IUSRS或对应用户的完全控制权限
3. 重启FTP服务
安全建议
1. 基本安全措施
1. 使用强密码
2. 限制IP访问(如果有固定IP)
3. 定期更换密码
4. 启用连接日志
5. 限制最大连接数
2. 高级安全
1. 使用FTPS(FTP over SSL/TLS)
2. 使用SFTP(SSH File Transfer Protocol)
3. 配置失败登录锁定
4. 定期审计日志
3. 性能优化
# FileZilla性能设置:
Edit → Settings → Speed Limits:
- 限制上传/下载速度
- 设置连接数限制
# 日志设置:
Edit → Settings → Logging:
- 启用日志文件
- 设置日志级别
快速启动脚本示例
IIS FTP配置脚本(PowerShell)
# 安装IIS和FTP功能
Enable-WindowsOptionalFeature -Online -FeatureName IIS-FTPServer, IIS-FTPSvc, IIS-ManagementConsole
# 创建FTP目录
New-Item -ItemType Directory -Path "D:\FTP" -Force
# 设置文件夹权限
icacls "D:\FTP" /grant "IIS_IUSRS:(OI)(CI)F"
# 创建FTP站点(需要管理员权限)
Import-Module WebAdministration
New-WebFtpSite -Name "MyFTP" -Port 21 -PhysicalPath "D:\FTP" -Force
总结建议
简单内部使用:选择IIS FTP,无需额外安装
生产环境/高级需求:选择FileZilla Server或其他专业FTP软件
安全第一:务必配置SSL/TLS,使用强密码
网络配置:注意防火墙和路由器设置,特别是被动模式
根据你的具体需求选择合适的方式,如有特定问题可以提供更多细节,我可以给出针对性建议。