欢迎光临殡葬网
详情描述

IIS 来实现。下面是一个从零开始的详细图文教程。

方案一:使用 IIS 管理器(图形化界面)

这是最常用和推荐的方法。

第一部分:安装 FTP 服务器角色

打开服务器管理器

  • 点击左下角的“开始”按钮,找到并打开“服务器管理器”。

添加角色和功能

  • 在“服务器管理器”仪表板中,点击“添加角色和功能”。

启动安装向导

  • “开始之前”页面,直接点击“下一步”。
  • “安装类型”页面,选择“基于角色或基于功能的安装”,点击“下一步”。
  • “服务器选择”页面,确保选中了当前服务器,点击“下一步”。

选择服务器角色

  • 在角色列表中,找到并展开“Web 服务器(IIS)”。
  • 在展开的列表中,再次找到并展开“FTP 服务器”。
  • 关键步骤:勾选“FTP 服务”。这会自动勾选其下的“FTP 扩展性”(基础功能已足够,扩展性提供更多功能如 SSL 等)。
  • 点击弹出的“添加功能”按钮。
  • 点击“下一步”。

完成安装

  • 在“功能”和“Web 服务器角色(IIS)”页面,均无需额外选择,直接点击“下一步”。
  • 最后在“确认”页面,确认要安装“FTP 服务”和“Web 服务器(IIS)管理控制台”,点击“安装”。
  • 等待安装完成,然后点击“关闭”。
第二部分:创建 FTP 站点

打开 IIS 管理器

  • 在“开始”菜单或“服务器管理器”的“工具”菜单中,打开“Internet Information Services (IIS) 管理器”。

创建 FTP 站点

  • 在左侧连接面板,展开服务器节点。
  • 右键点击“站点”,选择“添加 FTP 站点...”。

站点信息

  • FTP 站点名称:输入一个易于识别的名称,例如 MyCompanyFTP
  • 物理路径:指定一个本地或网络路径作为FTP的根目录。例如:D:\FTPRoot。请确保该文件夹已存在,或先创建它。
  • 点击“下一步”。

绑定和 SSL 设置

  • 绑定
    • IP 地址:可以选择“全部未分配”(使用所有服务器IP),或从下拉列表中选择一个特定的IP。
    • 端口:默认为 21。若无冲突,保持默认。
    • 虚拟主机名:一般留空。
    • 自动启动 FTP 站点:保持勾选。
  • SSL
    • 无 SSL:最简易,但数据传输不安全(适用于纯内网测试)。
    • 允许 SSL:兼容性和安全性兼顾(推荐)。
    • 需要 SSL:安全性最高,要求客户端必须使用 SSL 连接。
    • 如果没有 SSL 证书,可以先选择“无 SSL”或“允许 SSL”。如需证书,请提前导入到服务器的“个人”证书存储中,然后在此处选择。
  • 点击“下一步”。

身份验证和授权信息

  • 身份验证
    • 匿名:允许任何人无需用户名密码访问(慎用,极不安全)。
    • 基本:要求输入 Windows 用户名和密码进行验证(密码明文传输,除非用 SSL)。
    • 通常只勾选“基本”
  • 授权
    • 允许访问:选择“指定用户”或“所有用户”。为了安全,建议选择“指定用户”,并输入一个你希望授权的 Windows 本地用户或域用户(例如 FTPUser)。
    • 权限:根据需要勾选“读取”(下载)和/或“写入”(上传)。
  • 点击“完成”。
第三部分:配置 Windows 防火墙(允许外部访问)

如果服务器防火墙开启,需要放行 FTP 端口。

打开“控制面板” -> “Windows Defender 防火墙” -> “高级设置”。 在“入站规则”中,点击“新建规则...”。 规则类型:选择“端口”,下一步。 协议和端口:选择“TCP”,特定本地端口输入 21,下一步。 操作:选择“允许连接”,下一步。 配置文件:根据需要勾选(域、专用、公用),通常全选,下一步。 名称:输入一个规则名,如“FTP Server (Port 21)”,完成。

(可选但重要)被动模式端口范围: FTP 被动模式会使用随机的高位端口。为了确保客户端能正常连接,你最好在防火墙中开放一个端口范围,例如 50000-51000,然后在 IIS 管理器中配置:

  • 在 IIS 管理器左侧,点击你创建的 FTP 站点。
  • 在中间功能视图,双击“FTP 防火墙支持”。
  • 在“数据通道端口范围”中,输入 50000-51000
  • 在“外部 IPv4 地址”中,如果服务器有公网IP或特定 NAT 地址,需要填写,否则客户端可能无法返回数据。
  • 同样,在防火墙中为 TCP 50000-51000 端口范围创建一条新的入站规则。
第四部分:测试连接 在同一局域网内的另一台电脑上,打开文件资源管理器。 在地址栏输入:ftp://你的服务器IP地址ftp://你的服务器域名。例如:ftp://192.168.1.100 按回车,系统会提示你输入用户名和密码(如果设置了基本身份验证)。 输入之前授权的 Windows 用户名和密码,看是否能成功登录并浏览/上传/下载文件。

也可以使用专业的 FTP 客户端(如 FileZilla、WinSCP)进行测试,连接时协议选择“FTP”,加密模式根据你的 SSL 设置选择(如果没配 SSL 就选“普通 FTP”)。

方案二:使用 PowerShell(命令行)

适合批量部署或远程管理,更高效。

安装 FTP 角色

Install-WindowsFeature -Name Web-Ftp-Server -IncludeManagementTools

创建 FTP 目录并设置权限(假设使用 FTPUser 账户):

New-Item -ItemType Directory -Path D:\FTPRoot
# 为FTPUser账户设置目录的完全控制权限(请根据实际需要调整权限)
icacls D:\FTPRoot /grant FTPUser:(OI)(CI)F

创建 FTP 站点

Import-Module WebAdministration
New-WebFtpSite -Name "PowerShellFTP" -Port 21 -PhysicalPath "D:\FTPRoot" -Force

配置身份验证和授权(设置基本身份验证并禁止匿名):

Set-WebConfigurationProperty -Filter /system.ftpServer/security/authentication/anonymousAuthentication -PSPath IIS:\ -Location "PowerShellFTP" -Name enabled -Value $false
Set-WebConfigurationProperty -Filter /system.ftpServer/security/authentication/basicAuthentication -PSPath IIS:\ -Location "PowerShellFTP" -Name enabled -Value $true
Set-WebConfigurationProperty -Filter /system.ftpServer/security/authorization -PSPath IIS:\ -Location "PowerShellFTP" -Name @{accessType="Allow";roles="";permissions="Read,Write";users="FTPUser"}

启动 FTP 站点

Start-WebItem -PSPath 'IIS:\Sites\PowerShellFTP'

配置防火墙(使用 PowerShell):

New-NetFirewallRule -DisplayName "FTP Server (Port 21)" -Direction Inbound -Protocol TCP -LocalPort 21 -Action Allow

常见问题和安全建议

连接问题

  • 无法连接:检查防火墙、IP地址、端口是否正确。
  • 用户名/密码错误:确认 Windows 用户密码正确,且该用户在服务器上有登录权限(可通过“本地安全策略”调整)。
  • 被动模式失败:确保在防火墙中开放了被动模式的端口范围,并在 IIS 中正确配置了“FTP 防火墙支持”的外部IP地址。

安全加固

  • 强烈建议使用 SSL/TLS(FTPS):申请或创建一个自签名证书,在绑定中设置为“需要 SSL”。这可以加密所有数据(包括密码)。
  • 隔离用户:在 IIS 管理器中,可以配置“FTP 用户隔离”,将不同用户限制在自己的目录内,防止越权访问。
  • 强密码策略:为 FTP 用户设置复杂的密码。
  • 限制 IP 访问:在 FTP 授权规则中,可以添加允许或拒绝的 IP 地址范围。
  • 定期审计日志:IIS 的 FTP 日志默认存储在 %SystemDrive%\inetpub\logs\LogFiles 下,定期检查可疑活动。

性能与高级配置

  • 可以在站点级别设置连接限制、超时、日志格式等。
  • 考虑使用 Windows 自带的“Windows Server Backup”功能或第三方工具定期备份 FTP 目录和 IIS 配置。

按照以上步骤操作,你应该可以在 Windows Server 2016 上成功搭建并运行一个功能完整的 FTP 服务器。对于生产环境,请务必做好安全配置。