扫一扫浏览

FTP连接成功后无法获取目录的原理与分析

未结贴
0 748
追梦人未认证 2019-01-08 08:40:07
收藏

FTP是我们常用于跟服务器直接建立连接的一种方式,有时FTP搭建不是那么顺利,接着对FTP工具(CuteFTP、FlashFTP、LeechFTP、WinSCP)连接成功却不能获取目录进行经验的分析

FTP基础知识

FTP是文件传输协议的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:

PORT方式

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路,当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了****端口,你过来连接我”于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据

PASV方式

PASV (被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了****端口,你过来连接我”于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

FTP 服务器端的的注意事项

一,FTP英文的服务器公网IP,网公用动态域名;或是内网IP,用内网专业版TrueHost

  • 1,服务器如果安装了防火墙,请记住要在防火墙上打开FTP端口(默认是21)
  • 2,所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上
  • 3,为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围(设置方法)。此外,还要在服务器的防火墙上打开这些端口。当客户端以PASV方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。

二,FTP服务器是内网IP,用内网动态域名标准版本cm * natpro * y

这种情况下,FTP服务器不需要做特殊设置,只要支持PASV方式就可以了。大部分FTP服务器软件都支持PASV方式.FTP

客户端的注意事项

请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。

一,客户端只有内网IP,没有公网IP

从上面的FTP基础知识可知,如果用PORT方式,客户因为端的的的没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分FTP站长发现自己的服务器有人能登录上,有人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。

作为FTP站长,有必要掌握FTP的基础知识,然后指导您的朋友如何正确登录您的FTP。

二,客户端有公网IP,安装但防火墙了

如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开1024以上的高端端口。

三,连接用内网标准版* natpro * Y搭建的FTP服务,必 要PASV方式。连接任何公网FTP服务器,或用内网专业版TrueHost搭建的FTP服务器,PORT方式和PASV方式都可以使用。

当然,使用PORT方式的时候,满足还要上面的两个条件。

四,常见的FTP客户端软件PORT方式与PASV方式的切换方法

大部分FTP客户端默认使用PASV方式.IE默认使用PORT方式。

在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式.IE:工具 - >互联网选项 - >高级 - >“使用被动FTP”(需要IE6.0以上才支持)

  • CuteFTP

    编辑 - >设置 - >连接 - >防火墙 - >“PASV模式”

    文件 - >站点管理器,在左边选中站点 - >编辑 - >“使用PASV模式”

  • FlashGet

    工具 - >选项 - >代理服务器 - >直接连接 - >编辑 - >“PASV模式”

  • FlashFTP

    选项 - >参数选择 - >代理/防火墙/标识 - >“使用被动模式”

    站点管理 - >对应站点 - >选项 - >“使用被动模式”

    快速连接 - >切换 - >“使用被动模式”

  • LeechFTP

    选项 - >防火墙 - >不要用

  • WinSCP

    连接管理->编辑->高级->连接->被动模式(取消)

五,请尽量不要用IE作为FTP客户端

IE只是个很粗糙的FTP客户端工具首先,IE6.0以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息在登录出错的时候,无法找到错误的原因在测试自己的FTP网站的时候,强烈建议不要使用

文章大部分整理于互联网

最近热帖 HOT TOPIC
父元素flex之后,子元素高度自适应问题 2017
thinkphp5隐藏默认模块的一些问题 1961
【全套视频】thinkphp5视频教程 1717
教你如果处理高并发数据不同步的问题php篇 1587
关于thinkphp5.0.x getshell漏洞的说明 1573
移动web资源整理,你值得收藏的干货 1457
一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)php实现 1448
tpframe新建主题 1424
tpframe安装教程 1389
TPFrame框架robot模块重磅来袭,内附2.1版本 1368
月度热议HOT COMMENTS
tpframe 后续版本你希望有的功能是什么(分享贴) 12
关于tpframe的一点话题 6
cms插件在分类排序的时候JSON错误 6
基于tpframe v3.x 的微信公众号插件已批量上线 5
tpframe插件tcms插件v2.2已发布上线,欢迎下载使用 5
新增的管理员没有权限操作CMS模块。 3
api接口文档插件easydoc的基本用法,快速搞定接口文档 3
thinkphp5自动完成操作,两次运行的详解 2
thinkphp5隐藏默认模块的一些问题 2
tpframe-curd操作之添加数据 2
爆料早知道:Tcms微信、百度小程序、微信公众号功能已全部上线我有好想法