默认情况下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条命令
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)