FTP如何使用,第1张

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,用内网动态域名标准版cmnatproy

这种情况下,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以上的高端端口。

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

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

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

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

在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。

IE:

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

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客户端工具。首先,IE60以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试自己的FTP网站的时候,强烈建议不要使用IE。

FTP建站的详细配置过程

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

使用Serv-U建立FTP网站

高级话题

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

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

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

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

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

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

FTP客户端

101001

端口 <==> ISP NAT网关

6114412

端口 <==> TH服务器

端口21 <==> TH客户端 <==> 用户FTP服务器

101001

端口21

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

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

PORT 10,10,0,1,30,4 (即IP=101001 端口=30256+4=7684)

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

PORT 61,144,1,2,50,6 (即IP=6114412 端口=50256+6=12806)

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

用户FTP服务器

101001

端口20 <==> ISP NAT网关

6114412

端口12806 <==> FTP客户端

101001

端口7684

但是,因为NAT网关的公网IP只能接收外来的连接请求。就是说,6114412:12806只能接收其他公网IP的连接请求,对于从NAT内部(101001: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服务器

101001

端口20 <==> FTP客户端

101001

端口7684

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

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

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

1Linux下启动ftp

2连接FTP

3进入FTP目录

4查看目录文件数

ls -l 普通文件就是以 - 开头,文件夹以 d 开头,grep 后面接正则表达式:^- 以 - 开头的匹配。

扩展资料:

1查看当前目录下的文件数量(不包含子目录中的文件):

ls -l|grep "^-"| wc -l

2 查看当前目录下的文件数量(包含子目录中的文件):

ls -lR|grep "^-"| wc -l

3查看当前目录下的文件夹目录个数,(不包含子目录中的目录):

ls -l|grep "^d"| wc -l

4查询当前路径下的指定前缀名的目录下的所有文件数量 例如:统计所有以“20161124”开头的目录下的全部文件数量:

ls -lR 20161124/|grep "^-"| wc -l

在cmd中ftp命令很多,常用的主要有:

1、 ftp 19216813 登陆ftp。

2、dir 显示远程主机目录。

3、cd remote-dir:进入远程主机目录。

4、help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。

5、get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file(本地文件夹)。

6、put local-file[remote-file]:将本地文件local-file传送至远程主机。

扩展资料:

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。

FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。

因此,FTP服务是网络中经常采用的资源共享方式之一。FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。

-FTP服务器

1、首先,同时按下快捷键 Win+R,调出运行窗口,然后在运行窗口中输入 FTP,回车。

2、这时,将会打开 FTP 命令行窗口。在命令行窗口中输入以下命令并回车,以便连接到服务器open  服务器地址。

3、连接到服务器后,输入FTP用户名并回车。

4、然后,再输入FTP密码并回车,在此注意,输入密码时不会有任何提示。

5、如果用户名和密码都正确无误,网络也没有问题,很快便会出现登陆成功的提示信息。

FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中

-v显示远程服务器的所有响应信息;

-n限制ftp的自动登录,即不使用;

n etrc文件;

-d使用调试方式;

-g取消全局文件名。

ftp使用的内部命令如下(中括号表示可选项):

1![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!lszip

2$ macro-ame[args]:执行宏定义macro-name

3account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。

4append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。

5ascii:使用ascii类型传输方式。

6bell:每个命令执行完毕后计算机响铃一次。

7bin:使用二进制文件传输方式。

8bye:退出ftp会话过程。

9case:在使用mget时,将远程主机文件名中的大写转为小写字母。

10cd remote-dir:进入远程主机目录。

11cdup:进入远程主机目录的父目录。

12chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 aout。

13close:中断与远程服务器的ftp会话(与open对应)。

14cr:使用asscii方式传输文件时,将回车换行转换为回行。

15delete remote-file:删除远程主机文件。

16debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。

17dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。

18disconnection:同close。

19form format:将文件传输方式设置为format,缺省为file方式。

20get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。

21glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。

22hash:每传输1024字节,显示一个hash符号(#)。

23help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。

24idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

25image:设置二进制传输方式(同binary)。

26lcd[dir]:将本地工作目录切换至dir。

27ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。

28macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

29mdelete[remote-file]:删除远程主机文件。

30mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir ozipoutfile

31mget remote-files:传输多个远程文件。

32mkdir dir-name:在远程主机中建一目录。

33mls remote-file local-file:同nlist,但可指定多个文件名。

34mode[modename]:将文件传输方式设置为modename,缺省为stream方式。

35modtime file-name:显示远程主机文件的最后修改时间。

36mput local-file:将多个文件传输至远程主机。

37newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。

38nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。

39nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap $1$2$3[$1,$2][$2,$3],则传输文件a1a2a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。

40ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。

41open host[port]:建立指定ftp服务器连接,可指定连接端口。

42passive:进入被动传输方式。

43prompt:设置多个文件传输时的交互提示。

44proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。

45put local-file[remote-file]:将本地文件local-file传送至远程主机。

46pwd:显示远程主机的当前工作目录。

47quit:同bye,退出ftp会话。

48quote arg1,arg2:将参数逐字发至远程ftp服务器,如:quote syst

49recv remote-file[local-file]:同get。

50reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。

51rhelp[cmd-name]:请求获得远程主机的帮助。

52rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。

53rename[from][to]:更改远程主机文件名。

54reset:清除回答队列。

55restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。

56rmdir dir-name:删除远程主机目录。

57runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀1,2等。

58send local-file[remote-file]:同put。

59sendport:设置PORT命令的使用。

60site arg1,arg2:将参数作为SITE命令逐字发送至远程ftp主机。

61size file-name:显示远程主机文件大小,如:site idle 7200。

62status:显示当前ftp状态。

63struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。

64sunique:将远程主机文件名存储设置为唯一(与runique对应)。

65system:显示远程主机的操作系统类型。

66tenex:将文件传输类型设置为TENEX机的所需的类型。

67tick:设置传输时的字节计数器。

68trace:设置包跟踪。

69type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。

70umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3。

71user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。

72verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是LINUX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。

[root@www ~]# yum install ftp 安装ftp支持 RedHat系列版本下命令

  [root@www ~]# ftp 输入ftp命令

  FTP open 连接 命令

  FTP to 1010228 连接主机

  FTPadmin 登入名

  FTPpasswd  登入密码

  连接成功

FTP ! 从 ftp 子系统退出到外壳。

  FTP 显示 ftp 命令说明。 和 help 相同。

  FTP append 使用当前文档类型配置将本地文档附加到远程电脑上的文档。

  FTP ascii 将文档传送类型配置为默认的 ASCII。

  FTP bell 转换响铃以在每个文档传送命令完成后响铃。默认情况下,铃声是关闭的。

  FTP binary(或bi) 将文档传送类型配置为二进制。

  FTP bye(或by) 结束和远程电脑的linux中ftp命令参数会话并退出linux中ftp命令参数。

  FTP cd 更改远程电脑上的工作目录。

  FTP close 结束和远程服务器的linux中ftp命令参数会话并返回命令解释程式。

  FTP debug 转换调试。当调试打开时,发送到远程电脑的每个命令都打印,前面是字符串“”。默认情况下,调试是关闭的。

  FTP delete 删除远程电脑上的文档。

  FTP dir 显示远程目录文档和子目录列表。

  FTP disconnect 从远程电脑断开,保留linux中ftp命令参数提示。

  FTP get 使用当前文档转换类型将远程文档复制到本地电脑。

  FTP glob 转换文档名组合。组合允许在内部文档或路径名中使用通配符(和)。默认情况下,组合是打开的。

  FTP hash 转换已传输的每个数据块的数字签名 (#) 打印。数据块的大小是2048 字节。默认情况下,散列符号打印是关闭的。

  FTP help 显示linux中ftp命令参数命令说明。

  FTP lcd 更改本地电脑上的工作目录。默认情况下,工作目录是启动linux中ftp命令参数的目录。

  FTP literal 将参数逐字发送到远程linux中ftp命令参数服务器。将返回单个的linux中ftp命令参数回复代码。

  FTP ls 显示远程目录文档和子目录的缩写列表。

  FTP mdelete 删除远程电脑上的文档。

  FTP mdir 显示远程目录文档和子目录列表。能够使用 mdir 指定多个文档。

  FTP mget 使用当前文档传送类型将远程文档复制到本地电脑。

  FTP mkdir 创建远程目录。

  FTP mls 显示远程目录文档和子目录的缩写列表。

  FTP mput 使用当前文档传送类型将本地文档复制到远程电脑上。

  FTP open 和指定的linux中ftp命令参数服务器连接。

  FTP prompt 转换提示。假如关闭提示时 mget 及 mput 传送任何文档,linux中ftp命令参数在多文档传送过程中将提示允许您有选择地检索或存储文档。默认情况下,提示是打开的。

  FTP put 使用当前文档传送类型将本地文档复制到远程电脑上。

  FTP pwd 显示远程电脑上的当前目录。

  FTP quit 结束和远程电脑的linux中ftp命令参数会话并退出linux中ftp命令参数。

  FTP quote 将参数逐字发送到远程linux中ftp命令参数服务器。将返回单个的linux中ftp命令参数回复代码。

  FTP recv 使用当前文档传送类型将远程文档复制到本地电脑。Recv 和 get相同。

  FTP remotehelp 显示远程命令帮助。

  FTP rename 重命名远程文档。

  FTP rmdir 删除远程目录。

  FTP send 使用当前文档传送类型将本地文档复制到远程电脑上。Send 和put 相同。

  FTP status 显示linux中ftp命令参数连接和转换的当前状态。

  FTP trace 转换数据包跟踪。Trace 在运行linux中ftp命令参数命令时显示每个数据包的路由。

  FTP type 配置或显示文档传送类型。

  FTP user 指定远程电脑的用户。

  FTP verbose 转换 verbose 模式。假如打开,将显示任何 linux中ftp命令参数响应。在文档传送完成后,将同时显示和传送效率有关的统计信息。默认情况下,verbose 是打开的。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » FTP如何使用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情