FTP主动模式和被动模式!

FTP主动模式和被动模式!,第1张

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20 和 21 这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

FTP支持两种模式,它在工作运行时也主要是这两种模式,一种模式叫作Standard也被称为PORT方式和 主动方式 ,另一种模式叫作Passive也叫作PASV, 被动方式 。Standard模式FTP的客户端发出PORT命令到服务器,Passive模式FTP的客户端发送PASV命令到FTP Server中,从而保证文件相互传输正常。

我们使用华为的模拟器Ensp来做一个小实验。

FTP三次握手有两次,第一次的TCP三次握手是控制层的握手,第二次是数据层的TCP三次握手

(1)服务器打开端口 21,等待连接;

(2)客户端(100.1.12.1)发起控制连接的建立请求,服务器响应连接,控制连接建立,使用TCP 三次握手(第一次TCP三次握手)

随机端口的计算

可以看到PORT为 10,0,0,2,8,6

随机端口计算为: 8*256+6=2054

(3)客户端通过控制连接发送 PORT 命令(在应用层数据中带有自己的 ip 地址和临时端口),将客户端数据连接的临时端口号告诉服务器

(4)服务器的 20 号端口与客户端建立起数据连接,使用TCP 三次握手(第二次TCP三次握手)

点击登出后控制端口断开连接

FTP三次握手有两次,第一次的TCP三次握手是控制层的握手,第二次是数据层的TCP三次握手

(1)服务器打开端口 21,等待连接

(2)客户端发起控制连接的建立请求,服务器响应连接,控制连接建立,使用TCP 三次握手(第一次TCP三次握手);

(3)客户端通过控制连接发送命令字 PASV,告知服务器处于被动模式;

(4)服务器回应,将服务器数据连接的临时端口号(2060)告诉客户端;

(5)客户端与服务器的临时端口建立起数据连接,使用TCP 三次握手(第二次TCP三次握手)

做了一个下划线,修改与2020年2月17号下午

发布文章以来,很多朋友找我问具体的配置,说实话,当初配置的迷迷糊糊的,也忘记当时到底有没有配置好。

无论如何,过去了,大家用心得方法吧。

大家不需要再自己手工配置了,2020年2月10号左右,我使用了免费的filezilla配置一下。

因为我是阿里云,所以,在配置的时候,还需要进入阿里云的安全规则里,开启21端口,和你所需要的端口。

服务器上,装filezilla的服务端。

电脑上,用filezilla的客户端。

阿里云的配置,跟网上的很多教程,有点不一样,所以,我贴出来,给大家看看。

https://www.cnblogs.com/leowork/p/setup_ftp_server.html

---------------------------------------------------------------------------------------

以下内容是以前的。

2017.08.23 14:17:28字数 657阅读 1,179

本文配置win2008 FTP服务器,基于以下几点。

1.win2008服务器

2.使用win2008自带的FTP功能

3.配置特定账户的FTP,不配置FTP隔离用户。

其他条件下,自行寻找其他文档。另注:相关操作,都在IIS7,或者IIS7.5管理器中进行。一点都不需要IIS6。网上有些教程,是忽悠我的。

本人配置FTP服务器遇到的错误

一.账号密码明明是对的,内网,外网都无法访问。这是权限问题。需要三件事,确定权限 。

1.在服务器管理中,新建用户,配置账号密码。这是你准备使用的FTP账号,密码

2.新建FTP目录,配置目录的权限,右键文件属性,安全,添加,高级搜索,立刻查找,找到刚建的FTP用户名,添加所有权限,应用。

3.新建FTP站点的时候,到了用户选项,选择基本,输入FTP账号密码,上面的匿名选项,可以忽略。

4.绑定IP的时候,绑定到指定IP,或者不填。

这四点保证了,FTP账号的访问权权限,可以进入外网和内网的测试。

二.内网能访问,外网访问的时候,出现227.这是服务器配置的遇到的防火墙问题。

网上建议在连接FTP的时候,选择主动模式。(具体操作是。如果是浏览器访问服务器,设置IE禁止被动访问,如果是FTP软件访问服务器,也选择主动模式。)

然而,这其实是服务器自身的配置问题。需要在服务器端解决。

1.在IIS7界面,选择FTP站点,进入FTP防火墙选项。

a.查看端口范围。如果是灰色0-0.那就到IIS最顶端的服务器站点配置里配置端口。

很多人建立FTP站点以后,在IIS管理界面。发现FTP端口范围是灰色的,无法修改。那是因为,你要从最上级的服务器级别的站点设置。我的设置是1025-2000.

b.配置防火墙外网IP,这里必须要填,填上服务器的外网IP就好了。

2.防火墙允许程序选项。 允许windows主服务程序的运行。(2B的微软,在2003,2008服务器里都默认禁止了win主服务。这里需要允许程序运行,增加一条就好了。win2008,是svchost.exe,  win2003 是inetsrv.exe)

3.添加入站规则。

a.开始添加入站规则。命名为FTP PASV端口(主要是好记,可以随便叫)。

b.属性设置里,端口配置,填上1025-2000,跟步骤1对应。

c.程序和服务选项,选择所有符合指定条件的程序。

d.程序和服务选项.服务--设置--仅应用于服务。

至此,设置完成。不需要重启服务器,只需要重启IIS。如何重启IIS,不需要从命令中重启,只需要在IIS服务器级别的那个网站选项上,右键。

也不需要重启FTP服务。真不行才重启FTP服务。net  stop ftpsvc ,net start ftp ftpsvc。

四.WIN2008的FTP服务器配置,以及FTP防火墙的配置至此完成。有不会的,联系我,QQ:909743105.

此文作为记录,以免自己忘记。

主动式有利于服务器端管理 但是可能会被客户端防火墙拦截

被动式由于数据传输由客户端发起出 所有不会被客户端防火墙拦截  但是不利于服务器管理

使用windows server搭建完毕   双击FTP防火墙

填写端口和IP即可   例如填写5000-5100,即为允许100个被动连接 (此时可能为灰色需要开通防火墙)

如果端口位置为灰色,需执行以下命令添加防火墙策略 允许ftp

netsh advfirewall firewall  add rule name="FTP Service" action=allow service=ftpsvc protocol=TCP dir=in

netsh advfirewall   firewall set global StatefulFTP disable

添加完毕再看端口可以输入数值

输入数值 和外部连接的IP地址  点击应用

此时再次使用被动式连接 即可成功连接

按: 测试发现关闭防火墙无效,填写被动式端口依然为灰色. 必须添加2条命令


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/409865.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存