扫一扫浏览

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

未结贴
0 3138
追梦人未认证 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之后,子元素高度自适应问题 5077
thinkphp5隐藏默认模块的一些问题 4740
一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)php实现 4386
关于thinkphp5.0.x getshell漏洞的说明 4101
tpframe新建主题 4070
教你如果处理高并发数据不同步的问题php篇 4057
移动web资源整理,你值得收藏的干货 3926
【全套视频】thinkphp5视频教程 3905
omnicore rpc api中文手册【usdt】 3877
2018最新版PHP视频教程-ThinkPHP5商城系统+项目实战 3789
月度热议HOT COMMENTS
tpframe 后续版本你希望有的功能是什么(分享贴) 12
权限那里怎么一登录别的账号就报错啊 9
关于tpframe的一点话题 6
cms插件在分类排序的时候JSON错误 6
基于tpframe v3.x 的微信公众号插件已批量上线 5
tpframe插件tcms插件v2.2已发布上线,欢迎下载使用 5
tpframe6.0马上就要跟大家见面了,一次全新的升级 5
新增的管理员没有权限操作CMS模块。 3
api接口文档插件easydoc的基本用法,快速搞定接口文档 3
thinkphp5自动完成操作,两次运行的详解 2