多台服务器之间文件共享,最简单的方案是搭建一个Ftp服务器

Winserver2019安装Ftp服务器

前言

文件传输协议是一组规则,定义如何通过 TCP/IP 网络共享(发送和接收)和操作(创建、重命名和删除)文件。一般Windows上开Ftp服务安装和设置很简单,实际操作中碰到些问题,也了解到了Ftp的两种工作模式。

新增用户

新增一个用户用于控制进入Ftp服务器的权限,修改为密码永不过期。

image-20250819162730789

image-20250819162818593

启用Ftp服务器功能

启动服务器管理器

点击“Windows”键并搜索“服务器管理器”,单击“添加角色和功能

image-20250819163019809

单击向导上的“下一步”

在“添加角色和功能向导”的第一页上,单击“下一步

image-20250819163051469

选择安装类型

在“选择安装类型页面”中,选择“基于角色或基于功能的安装”,然后单击“下一步

image-20250819163111533

选择目标服务器

选择要安装 NFS 的服务器,然后单击“下一步

image-20250819163144461

选择要安装的角色

选择“Web Server (IIS)”复选框,然后在弹出窗口中单击“添加功能”,如下所示,完成后点击“下一步

image-20250819163231917

image-20250819163253773

选择功能

在“选择功能”阶段,只需单击“下一步”,然后在“Web 服务器角色”中再次单击“下一步” (IIS)”阶段也是如此

image-20250819163324477

image-20250819163412221

选择角色服务

这是我们一直在等待的一步,在众多复选框中,选择“文件服务器”之一,然后单击“下一步”。之后,愉快地点击“安装”并等待服务器完成安装。

image-20250819163441613

确认安装选择并点击“安装

image-20250819163506125

新建Ftp站点

路径

打开服务器管理器 >工具> Internet 信息服务 (IIS) 管理器

image-20250819164336663

新建

image-20250819164613820

站点信息

image-20250819164748908

绑定和SSL设置

image-20250819164824108

身份验证和授权信息

image-20250819164851518

防火墙设置

启用Ftp服务器功能后,默认会创建3条入站防火墙规则和2条出战防火墙规则,如果客户端无法连接,Telnet端口无法连通,则需要重启Ftp服务。

image-20250819170708194

image-20250819175634227

重启Ftp服务器,在ftp站点重启无效。

image-20250819171008547

image-20250819171132325

命令行进入Ftp

image-20250819170935180

Ftp主动模式和被动模式

问题

在服务器上部署Ftp服务之后,在服务器本机防火墙上只放开21端口,发现局域网的其他机器都无法访问Ftp,被动模式重启Ftp服务后可以访问,主动模式下把客户端防火墙全部停掉后可以访问ftp。

Ftp的两种模式

FTP具有两种模式,分别是port模式(也叫主动模式)和pasv模式(也叫被动模式)。在主动模式下:客户端给服务器端的21端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会通过另外一个数据端口(一般是ftp端口-1,比如ftp设置的是21,数据接口就是20)把东西传给客户端,这就是主动模式,可以理解为服务端主动给客户端传输文件;在被动模式下:客户端给服务器端的21端口发命令说,我要下载什么什么,服务器端知道后,就打开一个端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧,于是客户端就从那个端口进去拿文件了,这就是被动模式,可以理解为服务端被客户端拿走了东西。

优劣

主动模式对服务器好,因为服务器只需要打开21和20两个端口(如果ftp设置了其他端口,例如121,那么数据接口就是120),更加安全,但是这种方式,对客户端不够好,因为客户端需要打开随机端口,让服务器传东西进来,一旦客户端有防火墙限制,可能就是导致连接失败; 而被动模式对客户端好,因为是客户端去连服务器的某个随机端口,客户端防火墙不会限制,只要ftp服务器配置正确,客户端肯定能连上,但是服务器端就需要将用到的随机数据端口也开放出来才可以。

选择不同模式

可以选择ftp的主动模式、被动模式,ftp客户端一般两种模式都支持,而且大部分ftp客户端都可以设置是用主动模式还是被动模式,甚至大部分ftp客户端即使不设置也会先用被动模式连接,连接失败之后再自动换用主动模式连接。但是ftp服务端才是最关键的,ftp服务端大部分是主动模式和被动模式同时支持的。但由于被动模式下,能保证客户端不需要特别设置,都能连接上,所以一般ftp服务器,都是按照被动模式需要放开的端口去映射端口。被动模式的ftp服务器需要映射哪些端口呢?上面说的,ftp服务端会随机打开一个端口用来连接数据,我们总不能把所有端口都映射出去吧?所以一般我们在设置ftp服务端的时候,一般有一个端口范围可以设置,我们根据可能的ftp客户端数量设置一个数据端口用的随机端口范围,例如设置成55536-55540 设置5个端口,ftp也不建议用21端口,可以改成其他端口,比如121,那么我们就只需要在服务器上映射出 121、120、55536-55540这几个端口就可以了。客户端通过Internet选项设置切换主动还是被动模式。

image-20250820113502031

Ftp启用端口分析

被动模式下端口连接。

image-20250820145052664

主动模式下端口连接。

image-20250820145234149

Ftp数据通道端口设置

设置Ftp被动模式下数据端口,在Ftp站点无法设置数据通道端口,是灰色的。

image-20250819171611218

image-20250819171701092

要从最上级的服务器级别的站点设置。

image-20250819172025605

image-20250819172232242

设置后需要重启Ftp服务器生效,在ftp站点重启无效,同时需要调整防火墙设置,修改Ftp规则设置缩小端口范围。

image-20250819172637926