windows server2019搭建用户隔离的FTP服务

环境介绍

  操作系统:windows server 2019
  ftp服务:windows自带的IIS服务

安装FTP服务

在服务器管理其中添加角色和功能

  打开服务器管理器,然后选择添加角色和功能,选择添加Web服务(IIS)

勾选FTP服务器

  在添加的Web服务器角色服务中勾选FTP服务

等待安装结束

  除了以上两个选项需要勾选以外,其他选择默认选项,直到安装完成。

创建FTP用户和FTP用户组

创建FTP用户

  在操作系统的计算机管理中找到本地用户和组,然后在用户中创建用户,建议使用全英文用户名。

  其中用户的密码要符合window的密码策略,建议勾选用户不能更改密码密码永不过期的选项。

创建FTP用户组

  在操作系统的计算机管理中找到本地用户和组,选择组中创建组,组名建议直接使用ftp。

  使用添加按钮将ftp用户添加到该组。

后续操作

  如果后续有其他的成员需要添加,则直接添加新用户并添加到ftp所在组即可。

创建FTP目录

  为了搭建FTP服务,需要为FTP站点创建基本的文件目录,其中目录结构如下所示:

ftproot
|--localuser
|   |-- public
|   |-- user1
|   |-- user2
|   |-- user3

  其中ftproot为ftp站点的根目录,localuser为固定要求(我也不找到为什么),public为匿名用户的默认文件夹,user1、user2、user3为添加的ftp的用户名。
  注意:FTP目录中的文件夹名字需要和用户名相同。后续添加ftp用户的同时也要为其增加对应的文件夹。

添加FTP站点

添加站点

  使用IIS服务添加FTP站点。

  设置站点名称,可以自己命名,建议使用全英文。 然后,设置ftp的物理路径,也就是我们之前创建的fptroot文件夹。

  绑定IP和SSL设置,IP默认即可,SSL根据实际情况选择,如果没有则选择无SSL。

  勾选默认的身份验证和授权信息,这里暂时勾选所有的选项,然后搭建好之后再进行设置。

配置身份验证

  点击左侧创建的FTP站点,然后单击右侧的身份验证进行设置。保证基本身份验证和匿名身份验证都启用。

配置授权规则

  点击右侧的FTP授权规则,对授权进行设置:

  将ftp组的用户权限指定为读取和写入:

  将匿名用户权限指定为读取,不勾选写入:

  最后的规则如下所示:

配置用户隔离

  点击右侧的FTP用户隔离,设置用户隔离:

  选择用户名目录选项即可:

  点击右侧的应用,应用设置。

其他设置

开放端口

  如果使用的是阿里云或者腾讯云的云主机,需要在主机的控制台开放ftp服务的端口。

FTP防火墙支持

  由于云主机的防火墙有运营商负责控制,所以需要为FTP服务的防火墙配置为外部地址,否则无法使用公网进行访问。
  在FTP防火墙支持选项中填写主机的公网IP:

访问测试

本机测试

  在本机的资源管理器中输入ftp://127.0.0.1进行访问,可以看到默认为匿名登录,显示为public中内容,且只能下载,无法上传:

  点击鼠标右键,选择登录按钮可以由用户名进行登录,登陆后显示对应用户文件夹的内容,且同时具有上传和下载的权限:

它机测试

  在其他机器上使用资源管理器访问ftp://ip地址效果和本机测试相同,默认为匿名登录。同样也可使使用账号进行登录。
  如果无法登录请检查是否开发端口以及是否配置了FTP的防火墙支持。

资源管理器添加网络位置

  可以在资源管理器中使用右键添加一个网络位置,配置ftp的访问链接和身份验证信息,可以避免每次都要登录的麻烦。

其他问题

  win11用户新版的右键菜单使用ftp登录会直接卡死,请更换为旧版的菜单,在cmd窗口中执行以下命令,然后重启电脑即可:

# 切换为旧版的右键菜单
reg.exe add “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32” /f 
# 切换为新版的右键菜单
reg.exe delete “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}” /f

  windows server中不显示我的电脑图标解决方法,使用运行执行以下命令,可以唤出设置界面,勾选需要显示的图标即可:

rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

当珍惜每一片时光~