快速入门FTP服务器:手把手教你搭建

数据来源

1、介绍

        文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议。

2、端口号:

        TCP 20/21

3、FTP工作模式

主动模式和被动模式的控制权都在客户机手上

        1)主动模式

                21端口:客户端连接FTP服务器就是通过服务器的21端口实现连接。

                20端口:  20端口是用于FTP数据传输的默认端口号。(只有客户端下载数据时才会临时开放)

        2)被动模式

                21端口

                随机开启一个端口N用于传输数据:

        3)查看端口:netstat -an

 

注意:

  • 主被动模式,阐述的是数据传输过程
  • 主被动模式,选择权在客户机上
  • 主被动模式,所谓主或被是站在服务器的角度

详细的主被动模式介绍可以看下这篇文章:FTP的主动模式和被动模式

主动和被动模式连接演示:

8UFTP下载

在FTP服务器上开启防火墙,并开放20和21的TCP端口 (因为只有20和21端口开放,客户机就只能通过主动模式连接FTP服务器)防火墙开启后,没有被允许开放的端口都会关闭,其他软件也开启不了。

        

        客户机通过被动模式连接 -- 连接失败

        切换主动模式 -- 连接成功

4、部署FTP服务器:(以虚拟机win2003为例)

        1)配置静态iP

        2)安装IIS-FTP插件

        3)使用默认站点或创建新的站点

        4)IIS-FTP去掉站点去掉匿名访问对勾

        注意:用户的最终权限为FTP权限与NTFS权限取交集。

        建议:FTP权限全部勾选然后具体权限的在NTFS里做。

 安装IIS-FTP插件: 

        1)配置静态IP地址(手动配置连接wifi成功之后也能得到一个静态地址,不过重新连接之后,IP地址可能就不一样了)

        2)开始安装IIS-WEB插件,开始 -- 打开控制台

        

         3)选择添加或删除程序

        

         4)添加/删除组件 -- 应用程序服务器

        5)信息服务

        

         6)选择文件传输协议(FTP服务)-- 确定 -- 确定

        

  7)下一步

        

          

         

        8)安装成功,选择完成 

        

        9)打开

        

  

利用默认站点测试一下: 

        

        这是一个默认的文件路径 

         

然后去到同一个局域网下的客户机,在我的电脑地址栏输入:ftp://win2003的IP地址(安装FTP电脑的IP)  

 

更改默认站点的文件路径 :

        

 五、FTP站点

新建FTP站点:

        1)FTP右键 -- 新建 -- FTPz站点

         

        2) 输入站点名称

         

        3)选择站点的IP地址

        

         4)是否要做隔离

        

        5)选择站点的文件路径

        

        6)配置权限

         

         7)完成

        

六、配合文件系统NTFS做文件的权限管理:NTFS安全权限

1)在站点下准备了两个文件,一个机密文件管理员账户才能查看、修改,一个普通文件管理员账户和普通用户都能查看,但是只有管理员才能修改。

 

2)创建管理员、普通用户账户命令:net user  用户名    密码   /add  # 新建用户,验证 net user 查看用户列表,我这里创建一个amd当做管理员user当做普通用户,实际上在windows系统内这两个的权限都是普通用户。

3)取消站点的允许匿名链接 ,取消后别人想访问就需要,输入账号了

4)开始给文件夹设置权限

  (1)取消继承

        

         

  (2)给amd用户完全控制权限(让这个用户充当FTP的管理员,毕竟我们不可能把系统的管理员账户给别人登录)

 

机密文件夹和普通用户文件夹都加上(管理员拥有全部文件的所有权限)

 

  (3)给普通用户读取普通文件夹的权限 

5 )测试

管理员账户增删改查都可以没啥好测试的 (设置权限时选择了完全控制就自动把所有权限勾上了)

测试普通用户 

上传和删除都不行 

如果需要给普通用户上传权限,勾选写入(这个权限只能上传不能删除)

 

七、推荐几个绿色的FTP小软件

1、Slyar  FTPserver

        优点:大小84k,操作及其简单,用户权限就是软件的权限,不关NTFS  的事。 

        缺点:访问的人太多会崩溃三四十个人还是没问题。

                链接:https://pan.baidu.com/s/1GyOf5uhnWEPdwQQYSM-9lA?pwd=ax12 
                提取码:ax12

        总结:适合平时使用,不适合生产环境,使用时建议把电脑的FTP站点关闭,避免冲突。

        

2、Serv-U

这是一个强大的第三方FTP软件,支持正版,不要汉化,建议使用英文正版,更加稳定。

软件首页:

使用示例:

        1)新建域

        

         

        

         之后一路下一步使用默认的,直到完成创建 

        2)新建用户 (一个用户对应一个主目录)

        

         

         

        主目录也可以选择整个磁盘空间,D盘、E盘这些 

         

         

         3)给用户设置权限

        4)客户机连接:ftp:// ip地址

        5)虚拟路径的使用

        使用场景:比如我电脑内有个文件夹IOS,需要共享给A用户和B用户分别对应的文件夹是A和B和IOS文件夹同级(或在其他盘也行),但是我又不想把文件复制两份到A用户的主目录和B用户的主目录,这时就可以使用虚拟路径。

        

        

         

        创建映射路径成功                        

         使用映射路径,把刚才创建了映射路径的文件添加到需要的用户目录路径内

 

         6、还有一些其他功能,可自行尝试

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这个错误是由于两个数组的形状不兼容导致的。其中一个数组的形状是(none, 1),另一个数组的形状是(none, 2)。这意味着它们的行数相同,但列数不同。在某些情况下,这可能是由于数据类型不匹配或数据维度不正确引起的。您需要检查数据并确保它们具有相同的形状和数据类型。如果需要,您可以使用numpy库中的reshape函数来更改数组的形状。 ### 回答2: ValueError: shapes (None, 1) and (None, 2) are incompatible。是Python语言中常见的错误,通常出现在人工智能、机器学习等领域。这个错误提示显示的是两个数组的形状(Shapes)不兼容。简单来说,就是指两个数组的维度不一致,无法进行运算。 其中,None代表的是数组的尺寸,意味着这个维度大小可以被任意赋值,但是两个数组在某些维度上的大小是不匹配的。这个问题通常可以通过改变数组形状或对数组进行重新组合来解决。 实际上,这个错误可能涉及到函数、方法、操作、层、参数等各种因素。其中,常见的原因是两个数组中的一部分维度大小不匹配、缺少数据或维度没有进行扩展等。在解决这个错误的过程中,需要认真检查代码中涉及到的所有参数和变量,特别是需要仔细检查数组的形状、大小和数据类型是否匹配。 在数据科学领域中,这个错误通常会出现在机器学习的模型训练和预测过程中。如果两个数组的维度不匹配,可能会导致无法正常训练模型或预测出错。因此,在使用Python进行数据处理和机器学习的过程中,需要注意数组的形状和大小,以避免这个错误的出现。 总之,ValueError: shapes (None, 1) and (None, 2) are incompatible。这个错误提示意味着两个数组的形状不兼容,需要进行调整和匹配才能进行运算。在处理数据和编写代码时需要认真检查数据的大小、形状和类型,以避免这个错误的出现。 ### 回答3: 这个错误是由于两个numpy数组的形状不兼容而导致的。在 numpy 中,数组的形状是非常重要的,不同的形状可以产生不同的结果,如果两个数组的形状不兼容,就会出现这种 ValueError。 首先我们需要了解一下 numpy 数组的形状。在 numpy 中,数组的形状通常由两个属性组成:维度和大小。维度表示数组的维度数量,大小表示每个维度上的元素数量。比如一个二维数组的形状可以表示为 (3, 4),其中 3 表示该数组有 3 个维度,4 表示每个维度上有 4 个元素。 在出现 "shapes (none, 1) and (none, 2) are incompatible" 的错误时,通常是因为两个数组的形状在维度数量或者每个维度上的元素数量上不匹配。其中, (none, 1) 表示第一个数组的形状为一维数组,大小为 none 表示元素数量未知,后面的 1 表示每个维度上有 1 个元素。同理,(none, 2) 表示第二个数组的形状为一维数组,大小为 none 表示元素数量未知,后面的 2 表示每个维度上有 2 个元素。 针对这种错误,我们需要检查一下代码中两个数组的形状是否一致。如果不一致,我们需要进行相应的修改,使它们的形状兼容。具体的做法可以通过 numpy 提供的一些数组操作函数来实现,比如 reshape()函数可以改变数组的形状, concatenate()函数可以将两个数组拼接在一起,等等。 在解决这个错误时,我们还需要注意一些细节,比如 numpy 中不同操作函数对数组形状的要求可能会有所不同,我们需要根据具体情况进行选择。此外,我们还需要注意避免在操作数组时出现类型不一致的错误,比如将字符串类型的数组和浮点类型的数组进行拼接,这也可能会导致 ValueError 错误的出现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗蛋的博客之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值