首页 > 栏目列表 > 正文

tokyo hot n0250

tokyo hot n0250
阅读数16468
tokyo hot n0250
冷月寒笙
冷月寒笙
个性签名:在人生的素笺上清墨淡写下旧时暗恋

ftp怎样使用

分类: 电脑/网络 >> 互联网
解析:

FTP基础知识

您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章。所谓磨刀不误砍柴功,掌握这些基础知识,会令您事半功倍。否则,很可能折腾几天,最后一事无成。

FTP基础知识

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



FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

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

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以上的高端端口。

三、连接用内网标准版cm*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:

工具 -> Inter选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。

CuteFTP:

Edit -> Setting -> Connection -> Firewall -> “PASV Mode”



File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”

FlashGet:

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

FlashFTP:

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



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



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

LeechFTP:

Option -> Firewall -> Do not Use

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

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

FTP建站的详细配置过程

请参考这个网页的说明来配置:

使用Serv-U建立FTP网站

高级话题

一、为什么没有公网IP,也能使用PORT方式登录FTP?

NAT 网关的工作方式是在TCP/IP数据包的包头里找局域网的源地址和源端口,替换成网关的地址和端口。对数据包里的内容,是不会改变的。而使用PORT方式登录FTP的时候,IP地址与端口信息是在数据包里面的,而不是在包头。因此,没有公网IP,使用PORT方式是无法从inter上的ftp服务器下载数据的。

但是,极少数的NAT网关也支持PORT方式。这些NAT网关连数据包里面的内容都扫描,扫描到 PORT指令后会替换PORT方式的IP和端口。在这种NAT网关下面,用PORT方式就没问题了。不过,这些网关也只扫描21端口的数据包,如果FTP 服务器不是用默认的21端口,也无法使用PORT方式。

二、内网可以用PORT访问其他FTP,为什么不能用PORT访问自己的TrueHost FTP?

下面要讨论的问题,只是为了说明一些原理,是不影响实际使用的。如果您没有兴趣深究这些原理,不必花时间看。

内网用户通过支持PORT方式的NAT网关,访问自己本机利用TrueHost建立的FTP服务器,FTP命令链路的建立过程如下:

FTP客户端

10.10.0.1

端口*** ISP NAT网关

61.144.1.2

端口**** TH服务器

*.*.*.*

端口21 TH客户端 用户FTP服务器

10.10.0.1

端口21

FTP客户端通过ISP的NAT网关、科迈TrueHost服务器、TrueHost客户端,连接用户本机的FTP服务器的21端口。

当需要下载数据的时候,FTP客户端通过这条命令链路,向FTP服务器发送PORT命令。假设命令为:

PORT 10,10,0,1,30,4 (即IP=10.10.0.1 端口=30*256+4=7684)

当命令通过ISP的NAT网关的时候,NAT网关判断目的端口是21,并且是PORT命令,于是,修改命令里的IP和端口,替换为自己的IP和端口,比如:

PORT 61,144,1,2,50,6 (即IP=61.144.1.2 端口=50*256+6=12806)

用户的FTP服务器最终收到的是上面这个PORT命令。于是,FTP服务器向这个IP和端口发送连接请求,建立数据链路。

用户FTP服务器

10.10.0.1

端口20 ISP NAT网关

61.144.1.2

端口12806 FTP客户端

10.10.0.1

端口7684

但是,因为NAT网关的公网IP只能接收外来的连接请求。就是说,61.144.1.2:12806只能接收其他公网IP的连接请求,对于从NAT内部(10.10.0.1:20)发起的连接请求,是无法建立连接的。为什么?原因很简单,因为内网IP要访问外网,必须要通过NAT建立映射。于是FTP数据链路无法建立。于是,用户无法在自己的机器上通过21端口访问自己的TrueHost FTP。

我们再来看看,如果FTP端口不是21,比如是22,会发生什么情况呢?在FTP客户端发送PORT命令的时候,NAT网关检测到目标端口是22,因为支持PORT的 NAT网关只监视目的端口是21的数据包,发现目的端口是22的数据包,不做任何处理,完全放行。于是FTP服务器收到的PORT命令依然是PORT 10,10,0,1,30,4。于是FTP服务器向这个IP和端口发送连接请求。

用户FTP服务器

10.10.0.1

端口20 FTP客户端

10.10.0.1

端口7684

这种情况下命令链路就可以建立起来了。而且是等于本机连接本机,速度飞快。

综上所述,内网用户无法用PORT方式通过21端口访问自己的TrueHost FTP服务器。如果FTP端口不是21,则可以访问,而且实际上是本机连接本机。

上面的文字,仅仅是为了说明一些原理,不影响实际使用。如果本机访问本机,还要通过FTP的话,就有画蛇添足之嫌了。


冷月寒笙
冷月寒笙
个性签名:在人生的素笺上清墨淡写下旧时暗恋

ftp命令详细资料大全

档案传输软体的使用格式为:FTP,若连 接成功,系统将提示用户输入用户名及口令: LOGIN: (输入合法的用户名或者“anonymous”): PASSWORD: (输入合法的口令,若以“anonymous”方式登录,一般输入自己的信箱): 基本介绍 中文名 :ftp命令 使用格式 :FTP 口令 : LOGIN FTP :一个客户机/伺服器系统 简介,基础命令,命令进阶,语法,详解,其它, 简介 与大多数Inter服务一样,FTP也是一个客户机/伺服器系统。用户通过一个支持FTP协定的客户机程式,连线到在远程主机上的FTP伺服器程式。用户通过客户机程式向伺服器程式发出FTP命令,伺服器程式执行用户所发出的FTP命令,并将执行的结果返回到客户机。 FTP命令是Inter用户使用最频繁的命令之一,不论是在DOS、Windows的命令行、LINUX、UNⅨ 还是AⅨ作业系统下都可以使用FTP,都会遇到大量的FTP内部命令,熟悉并灵活套用FTP命令,可以大大方便使用者,并收到事半功倍之效。 比如说,用户发出一条命令,要求伺服器向用户传送某一个档案的一份拷贝,伺服器会回响这条命令,将指定档案送至用户的机器上。客户机程式代表用户接收到这个档案,将其存放在用户目录中。 基础命令 进入想要连线的FTP站点后,用户就可以进行相应的档案传输操作了,其中一些重要 的命令及相似的命令 如下: 1、HELP、、RHELP、REMOTEHELP HELP显示LOCAL端的命令说明,若不接受则显示所有可用命令; ?相当于HELP,例如:?CD: RHELP同HELP,只是它用来显示REMOTE端的命令说明; REMOTEHELP相当于RHELP。 2、ASC(ASCll)、bin(BINARY)、IMAGE、TYPE ASCⅡ切换传输模式为文字模式(只能用来传送DOC档案,因为是7-BIT); BINARY切换传输模式为二进制模式(除文字档案外皆用此模式); IMAGE相当于BINARY: TYPE让你更改或显示传输模式。 3、BYE、QUIT BYE退出FTP: QUIT相当于BYE。 4、CD、CDUP、LCD、P~WD、 ! CD改变当前工作目录,例如:CD\PUB; CDUP回到上一层目录,相当于你打CD..: LCD让你更改或显示LOCAL端的工作目录,例如:LCD\TMP; PWD显示的工作目录(REMOTE端): !让你执行外壳命令,例如:!LS。 5、DELETE、MDELETE、RENAME DELETE删除REMOTE端的档案: MDELETE批量删除档案,需配合?或,* RENAME更改REMOTE端的档案名称。 6、GET、MGET、PUT、MPUT、RECV、SEND GET下传档案; MGET批量下传档案,需配合万用字元,例如:MGET*.GZ; PUT上传档案; MPUT批量上传档案,需配合万用字元; RECV相当于GET(RECV为RECEIVE的简写): SEND相当于PUT。 7、HASH、PROMPT、VERBOSE、STATUS、BELL HASH切换#字号的出现,每一个#字号表示传送了1024/8192BYTES: PROMPT切换iNTERACTⅣEON/OFF; VERBOSE切换所有档案传输过程的显示; STATUS显示的一些参数: BELL当指令做完时会发出叫声。 8、LS、DIR、MLS、MDIR、MKDIR、RMDIR LS有点像UNIX下的LS(LIST)命令: DIR相当于LS-L(LIST-LONG); MLS只是将远端某目 录下的档案存于LOCAL端的某档案里; MDIR相当于MLS; MKDIR像DOS下的MD(创建子目录)一样: RMDIR像DOS下的RD(删除子目录)一样。 9、OPEN、CLOSE、DISCONNECT、USER OPEN连线某个远端FTP伺服器; CLOSE关闭连线; DISCONNECT相当于CLOSE; USER再输入一次用户名和口令(有点像UNⅨ下的SU)。 命令进阶 语法 ftp [ -d] [ -g ] [ -i ] [ -n ] [ -v] [ -f ] [ -k realm] [-q[-C]][ HostName [ Port ] ] -C 允许用户指定:通过 send_file 命令发出的档案必须在网路高速缓冲区(NBC)中经过快取处理。此标志必须在指定了-q 标志的情况下使用。只有当档案在无保护的情况下以二进制方式传送时此标志才适用。 -d 将有关 ftp 命令操作的调试信息传送给 syslogd 守护进程。如果您指定-d 标志,您必须编辑/etc/syslog.conf 档案并添加下列中的一项: OR user.debug FileName 请注意:syslogd 守护进程调试级别包含信息级别讯息。 如果不编辑/etc/syslog.conf 档案,则不会产生讯息。变更了/etc/syslog.conf 档案之后,请运行 refresh -s syslogd 或 kill -1 SyslogdPID 命令,以通知 syslogd 守护进程其配置档案的变更。关于调试级别的更多信息,请参考/etc/syslog.conf 档案。也请参考 debug 子命令。 -g 禁用档案名称中的元字元拓展。解释元字元可参考为扩展(有时叫做档案名称匹配替换)档案名称。请参考 glob 子命令。 -i 关闭多档案传送中的互动式提示。请参考 prompt、mget、mput 和 mdelete 子命令,以取得多档案传送中的提示的描述。 -n 防止在起始连线中的自动登录。否则, ftp 命令会搜寻$HOME/rc 登录项,该登录项描述了远程主机的登录和初始化过程。请参考 user 子命令。 -q 允许用户指定:send_file 子例程必须用于在网路上传送档案。只有当档案在无保护的情况下以二进制方式传送时此标志才适用。 -v 显示远程伺服器的全部回响,并提供数据传输的统计信息。当 ftp 命令的输出是到终端(如控制台或显示)时,此显示方式是预设方式。 如果 stdin 不是终端,除非用户调用带有-v 标志的 ftp 命令,或传送 verbose 子命令,否则 ftp 详细方式将禁用。 -f 导致转发凭证。如果Kerberos 5 不是当前认证方法,则此标志将被忽略。 -k realm 如果远程站的域不同于本地系统的域,系统将允许用户指定远程站的域。因此,域和DCE 单元是同义的。如果Kerberos 5 不是当前认证方法,则此标志将被忽略。 ? 详解 1、[crud[args)1:在本地机中执行互动shell,exit回到FTP环境, 列如:!LS*.zip. 2、$macro-amc[args儿执行宏定义macro-name。 3、aount[password]:提供登录远程系统成功后访问系统资源所需的补充口令。 4、append local-file[remote-file]:将本地档案追加到远程系统主机,若未指定远系统档案名称,则使用本地档案名称。 5、ASCii:使用ascⅡ型传输方式。 6、bell:每个命令执行完毕后计算机响铃—次 7、bin:使用二进制档案传输方式 8、bye..退出FTP会话过程— 9、case:在使用mget时,将远程主档案名称中的大写字母转为小写字母 10、cdremote·dir:进入远程主机目录。 11、cdup..进入远程主机目录的父目录。 12、chmodmodefile-name:将远程主机档案file-name的存取方式设定为mode。列如:chmod777a.OUt。 13、close:中断与远程伺服器的FTP会话(与open对应)。 14、cr:使用ASCii“方式传输档案时,将回车换行转换为回行 15、deleteremote-file-删除远程主机档案: 16、debugldebug-value3:.设定调试方式,显示传送至远程主机的每条命令。例如:debug3,若设为0,表示取消debug。 17、dir[remote-dir][Local-file]:显示远程主机目录,并将结果存入本地档案local-file: 18、disconnection-.同close。 19、formformat:将档案传输方式设定为format,预设为file方式。 20、getremote-file[10cal-file]:将远程主机的档案remote-file传至本地 硬碟的local-file。 21、glob:设定mdelete,mget,mput的档案名称扩展,预设时不扩展档案名称,同命令行的-g参数。 22、hash:每传输1024位元组,显示一个hash符号(#)。 23、help[cmd]:显示FTP内部命令cmd的帮助信息,如.-helpget。 24、idle[seconds]:将远程伺服器的休眠计时器设为[seconds]秒。 25、image:设定二进制传输方式(同binary)。 26、LCD[DIR]:将本地工作目录切换至dir。 27、LS[remote-DIR][LOCAL-FILE]:显示远程目录remote-dir,并存入本地文local-fileo 28、macdefmacro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。 29、mdelete[remote-file]:删除远程主机档案。 30、mdirremote-fileslocal-file:与dlr类似,但可指定多个远程档案。列如mdir*.O.*.zipoutfiLe。 31、mgetremote-files:传输多个远程档案。 32、mkdirdirname:在远程主机中建一目录。 33、misremote-filelocal-file.同nlist,但可指定多个档案名称。 34、mode[modename]:将档案传输方式设定为modename,预设为stream方式。 35、modtimefile-name..显示远程主机档案的最后修改时间。· 36、mputlocal-file:将多个档案传输至远程主机, 37、newerfile-name:如果远程机中file-name的修改时间比本地硬碟同名档案的时间巨近,则重新传输该档案。· 其它 FTP伺服器及匿名FTP FTP的全称是File Transfer Protocol(档案传输协定),顾名思义,就是专门用来传输档案的协定。FTP的主要作用,就是让用户连线上一个远程计算机(这些计算机上运行着 FTP伺服器程式)察看远程计算机有哪些档案,然后把档案从远程计算机上拷到本地计算机,或把本地计算机的档案送到远程计算机去。 其实 早期在Inter上传输档案,并不是一件容易的事,我们知道 Inter是一个非常复杂的计算机环境,有PC、工作站、MAC、伺服器、大型机等等,而这些计算机可能运行不同的作业系统,有Unix、Dos、 Windows、MacOS等等,各种作业系统之间的档案交流,需要建立一个统一的档案传输协定,这就是所谓的FTP。虽然基于不同的作业系统有不同的 FTP应用程式,而所有这些应用程式都遵守同一种协定,这样用户就可以把自己的档案传送给别人,或者从其它的用户环境中获得档案。 与大 多数Inter服务一样,FTP也是一个客户机/伺服器系统(C/S)。用户通过一个支持FTP协定的客户机程式,连线到远程主机上的FTP伺服器 程式。用户通过客户机程式向伺服器程式发出命令,伺服器程式执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求伺服器向用户传送某一个档案,将其存放在用户指定目录中。FTP客户程式 有字元界面和图形界面两种。字元界面的FTP的命令复杂、繁多。图形界面的FTP客户程式,操作上要简洁方便的多。 在FTP的使用当 中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"档案就是从远程主机拷贝档案至自己的计算机上;"上载"文 件就是将档案从自己的计算机中拷贝至远程主机上。用Inter语言来说,用户可通过客户机程式向(从)远程主机上载(下载)档案。 在ftp的使用过程中,必须首先登录,在远程主机上获得相应的许可权以后,方可上传或下载档案。也就是说,要想同哪一台计算机传送档案,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送档案。这种情况违背了Inter的开放性,Inter上的FTP主机何止千 万,不可能要求每个用户在每一台主机上都拥有帐号。因此就衍生出了匿名FTP。