Windows功能之FTP服务器搭建

一、创作背景

        之前有用linux系统搭建过ftp服务器,最近想着用windows系统也顺便搭建一个,看网上有第三方服务软件一键部署,记得windows可以不借助第三方软件就可以搭建,就想顺便操作试试,结果老是连接不上,费了点时间,在这里总结下操作的步骤,并记录下搭建过程遇到的一些问题。

二、环境准备

虚拟机软件:VMware® Workstation 16 Pro

操作系统:windows 7 企业版

三、操作步骤

(一)启用IIS及FTP服务

        1、开启windows功能

               打开控制面板->程序->启用或关闭windows功能->勾选:

               1) Internet信息服务->展开后勾选FTP服务器、FTP扩展性

               2) Web管理工具->IIS管理控制台

                点击确定等待安装完成。

        2、验证IIS安装

                安装完成后,在【开始】菜单->搜索"IIS"->打开Internet信息服务(IIS)管理器


(二)配置用户账户与权限

        1、创建专用FTP用户

        右键“计算机” ->管理 ->本地用户和组 ->用户 ->右键新建用户 -> 设置用户名及密码(建议勾选“密码永不过期”)‌

        2、设置文件夹权限

        右键共享文件夹 ->属性 ->安全 ->添加新建的用户 ->勾选“读取”和“写入”权限‌。


 (三)创建FTP站点

        1、新建站点

          在IIS管理器中->右键“网站”->选择“添加FTP站点”->输入站点名称(如MyFTP)->设置站点目录的物理路径。

        2、配置绑定与SSL

        1)IP地址:选择本机IP或“全部未分配”(若需局域网访问建议绑定具体IP)

        2)端口:默认21(若端口冲突可改为2121等)

        3)SSL:选择“无SSL”或根据需求启用加密‌

        3、设置身份验证与权限

        1)身份验证:勾选“基本身份验证”

        2)授权:选择“指定用户”或“所有用户” -> 设置读取/写入权限‌。


(四)防火墙与网络配置

        1、开放防火墙端口

手工配置防火墙入站规则:

        1)控制面板 -> 系统和安全 -> Windows防火墙 -> 高级设置 -> 右键入站规则 -> 新建规则 -> 允许TCP端口21(或自定义端口)‌;

规则类型:端口

协议和端口:TCP、特定本地端口21

操作:允许连接

配置文件:专用、公用

名称:允许TCP端口21

新添加的入站规则默认启用

        2)若使用被动模式,需额外开放TCP端口范围1024-65535‌。

使用FTP服务器自带防火墙配置:

控制面板 -> 系统和安全 -> Windows防火墙 -> 允许程序或功能通过Windows防火墙 -> 更改设置 -> 勾选FTP服务器(家庭、公用)-> 确定

        2、局域网/外网访问测试

        在宿主机上,打开CMD窗口,执行ftp IP地址 -> 输入账号密码验证连接


四、问题思考

1、当用宿主机文件资源管理器,目录框内输入ftp://IP地址,并且输入账号密码连接,提示FTP文件夹错误,但是使用CMD窗口键入命令正常连接。

通过查看日志文件发现,这两种连接方式有区别

通过CMD窗口输入命令连接ftp服务器采用主动模式,而window资源管理器连接ftp服务器默认采用被动模式,而防火墙没有配置或启用被动模式的高位端口的入站规则,所以导致数据传输通道建立失败。

扩展

ftp服务器的主动模式与被动模式

主动模式:

客户端通过21端口连接服务器,发送PORT命令将自身ip与特定端口告知服务器,服务器主动通过20端口与客户端特定端口建立数据通道进行数据传输。

被动模式:

客户端向通过21端口连接服务器,发送PASV命令采用被动模式,服务器随机返回高位端口(1024-65535‌)进行监听,客户端主动与服务器高位端口建立数据通道进行数据传输。

2、手工配置防火墙时只需要添加入站规则,不需要添加出站规则的嘛?

防火墙入站规则严格控制,默认阻止所有入站流量,而出站规则宽松,默认允许所有出站流量,与允许通过入站流量相反,配置出站规则是为了阻止数据传出,例如防止恶意软件外传数据、限制访问某些不信任的危险网站等

3、ftp站点的文件夹目录安全属性不配置 ftp_user用户权限会怎样?配置的权限分别有什么作用?

默认情况下,通过计算机管理界面创建的新用户,隶属用户组为Users,如果配置的ftp根目录的安全属性列表没有配置的新用户访问对象,则按照Users用户组的权限去执行(Users用户组默认没有写入权限),但是如果安全属性列表里访问对象有Authenticated Users经过身份验证的用户组(默认有写入权限),ftp服务器有配置身份验证,经过身份验证的用户可以按照Authenticated Users用户组的访问控制权限去操作ftp根目录文件内容。不同文件路径下新建文件的安全属性-可访问对象用户组可能不同:

配置ftp站点目录可访问对象(用户和用户组)的可操作权限,最常用的就是读取、写入权限,拥有读取权限可查看ftp根目录(站点目录)的文件内容和下载文件,而拥有写入权限则可以上传文件。

五、总结

        FTP服务器搭建其实很简单的,通过反复测试,其实是VMware虚拟机网络配置的问题,我虚拟机采用的NAT模式,由于都是宿主机与虚拟机测试不涉及外网设备也不需要开启端口转发功能。之前一直卡在防火墙配置那块,手动配置入站规则能正常连接访问,自动配置的入站规则启用后,老是连接不上,后面把VM虚拟网络编辑器打开重置了下网络配置,重启虚拟机后又能正常访问(⊙﹏⊙) 当所有配置都没有问题的时候,然后一直出现连接ftp服务器超时的时候,大家可以考虑下重置一下虚拟机的网络。还有就是站点权限编辑的问题,如果文件安全属性有Authenticated Users,那新建的用户可以不配读取写入权限,没有这个用户组的话,USERS组默认也有读取权限,就是没有写入权限,上传不了文件,对用户及用户组权限感兴趣的可以去研究一下windows各类用户组具体的作用及应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

星型组网模块的两种交互方式优缺点解析

星型组网模块简介 星型组网模块工作在433MHz频段;星型组网模块集主机(协调器)、终端为一体,星型组网模块具有长距离、高速率两种传输模式,一个主机(协调器)支持多达200个节点与其通讯&#xff0…

二分+前缀和——森林的最大美丽值

森林的最大美丽值(二分差分数组) 题目分析 求最小值的最大值,联想到二分。 第一阶段二段性分析 对于所有树的高度都可以大于等于mid,那么我们可以确定高度小于mid的值一定也可以,但是此时我需要找的是最大的高度,那么mid一定比…

Pytorch实现之最小二乘梯度归一化设计

简介 简介:LSGAN提出了一种利用最小二乘法来计算两个数据分布之间的距离,该论文在此基础上采用梯度归一化来进一步稳定训练。 论文题目:LSN-GAN: A Novel Least Square Gradient Normalization for Generative Adversarial Networks(LSN-GAN:一种新的生成对抗网络的最小…

JavaScript基础-全局作用域

在JavaScript编程中,理解变量的作用域是编写高效、可维护代码的关键之一。全局作用域是指变量在整个程序范围内都可访问的状态,这意味着它们可以在任何函数或代码块中被读取和修改。然而,过度使用全局变量也可能导致一些问题,如命…

【2025.3.13】记一次双系统笔记本加装固态硬盘记录 linux扩容 linux更换/home和/opt所在硬盘 windows无法调整亮度

文章目录 🌕事情经过🌕更换/home和/opt的挂载硬盘🌙目的🌙初始化1t固态硬盘🌙打开Linux查看硬盘信息🌙给新1t固态硬盘分区🌙格式化分区🌙把新1t固态硬盘先挂载到/mnt/ssd_1t 用于后续…

山东省新一代信息技术创新应用大赛-计算机网络管理赛项(样题)

目录 竞赛试题 网络拓扑 配置需求 虚拟局域网 IPv4地址部署 OSPF及路由部署 配置合适的静态路由组网 MSTP及VRRP链路聚合部署 IPSEC部署 路由选路部署 设备与网络管理部署 1.R1 2.R2 3.S1 4.S2 5.S3 竞赛试题 本竞赛使用HCL(华三云实验室)来进行网络设备选择…

【测试语言基础篇】Python基础之List列表

一、Python 列表(List) 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。序列都可…

大数据面试之路 (二) hive小文件合并优化方法

大量小文件容易在文件存储端造成瓶颈,影响处理效率。对此,您可以通过合并Map和Reduce的结果文件来处理。 一、合并小文件的常见场景 写入时产生小文件:Reduce任务过多或数据量过小,导致每个任务输出一个小文件。 动态分区插入&…

MySQL 批量插入 vs 逐条插

MySQL 插入数据:批量插入 vs 逐条插入,哪个更快? 在 MySQL 中,插入数据有两种常见方式: 批量插入:一条 SQL 插入多条数据。逐条插入:每次插入一条数据。 这两种方式有什么区别?哪…

Docker基础命令说明

Docker基础操作命令众多,这些命令可以按如下方式进行分类: 镜像操作容器操作网络操作数据卷操作LOG查询 等方面进行分类。 一、镜像操作命令 docker images:用于列出本地系统中所有的 Docker 镜像。镜像就像是一个模板,它包含…

AI重构私域增长:从流量收割到终身价值运营的三阶跃迁

私域运营的AI进化论:内容即服务的三个阶段 随着企业微信生态的成熟,私域运营正经历从"流量收割"到"关系养成"的本质转变。在AIGC技术的推动下,2024年私域场景正式进入**"内容即服务"**的价值共创期&#xff1…

Linux date 命令使用指南

date 命令用于 显示或设置系统日期和时间&#xff0c;支持灵活的时间格式化和计算。以下是常用场景与详细示例&#xff1a; 一、基本用法 1. 显示当前日期和时间 <BASH> date # 输出&#xff1a;Thu Jun 13 14:25:36 CST 20242. 设置系统时间&#xff08;需root权限&am…

Maven的依赖管理

maven相关依赖的官网&#xff1a;https://mvnrepository.com/ pom.xml是项目依赖的配置文件 maven首先会去本地仓库下载相关依赖&#xff0c;如果没有&#xff0c;则会去私服下载&#xff0c;再没有&#xff0c;就去中央仓库或镜像下载。 自定义properties&#xff0c;可使用…

Mybaties批量操作

1、批量插入 <!--批量操作-插入--><!-- 相当于INSERT INTO t_goods (c1,c2,c3) VALUES (a1,a2,a3),(b1,b2,b3),(d1,d2,d3),...--><insert id"batchInsert" parameterType"java.util.List">INSERT INTO t_goods (title,sub_title,origina…

向量库集成指南

文章目录 向量库集成指南Chroma集成Pinecone集成MiLvus集成向量库集成指南 向量库是一种索引和存储向量嵌入以实现高效管理和快速检索的数据库。与单独的向量索引不同,像Pinecone这样的向量数据库提供了额外的功能,例如,索引管理、数据管理、元数据存储和过滤,以及水平扩展…

软件测试之使用Requests库进行接口测试

文章目录 前言Requests库是什么为什么要用Requests库进行接口测试安装Requests库Requests库使用发送GET请求发送带查询参数的GET请求响应内容格式添加请求头信息发送一个POST请求查看响应内容断言请求超时Cookie与Session模拟登录 参考目录 前言 阅读本文前请注意最后编辑时间…

AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

AttributeError: module backend_interagg has no attribute FigureCanvas 这个错误通常是由于 Matplotlib 的后端配置问题引起的。具体来说&#xff0c;Matplotlib 在尝试加载某个后端时&#xff0c;发现该后端模块中缺少必要的属性&#xff08;如 FigureCanvas&#xff09;&a…

iWebOffice2015 中间件如何在Chrome107及之后的高版本中加载

iWebOffice2015是江西金格科技有限公司开发的一款智能文档中间件&#xff0c;和一些知名OA及ERP公司曾经达成OEM合作&#xff0c;所以用户一度比较多&#xff0c;但不幸的是Chromium内核浏览器在2022年10月份发布的107版本中永久取消了对PPAPI插件的加载支持&#xff0c;导致使…

【MyBatis Plus JSON 处理器简化数据库操作】

文章目录 什么是 MyBatis-Plus JSON 处理器&#xff1f;开始使用 MyBatis-Plus JSON 处理器步骤 1: 创建实体类步骤 2: 创建 Mapper 接口步骤 3: 查询 JSON 数据步骤 4: 插入和更新 JSON 数据 什么是 MyBatis-Plus JSON 处理器&#xff1f; MyBatis-Plus 是一个基于 MyBatis 的…

OpnenHarmony 开源鸿蒙北向开发——1.开发环境搭建(DevEco Studio 5.03)

我这边是基于window下对OpenHarmony开源鸿蒙进行北向开发。 一、安装DevEco Studio 1、下载 下载中心 | 华为开发者联盟-HarmonyOS开发者官网&#xff0c;共建鸿蒙生态 2、安装 下载完成之后进行解压 双击进行安装 按照我的步骤进行 选择安装目录&#xff0c;全部配置完成后…