‘壹’ FTP是做什么用的怎么使用
FTP说简单一点就是可以进行网络文件共享,可以将你电脑上的资料(一般指的是较大的文件)通过FTP的方式进行公开,也就是将你的电脑设为简单的服务器,并且你自己可以设置访问用户名和密码,只要你的电脑是开机的,不管在哪个地方的人都可以通过网络来访问并下载你共享的文件,前提是要知道你的用户名和密码以及访问的FTP地址
说得很简单了,不知明白没有,上面只是关于FTP的理解,要实际使用,则可以通过专业软件完成,如何你安装完软件,应该你不知道的也就知道了,如FTP的地址是什么,FTP的用户和密码怎么设置,需要共享的文件怎么选择等等...
实际方法,说一下简单的方法吧,自己做过的
1、下载一个Serv-UFTPServerV8的专业FTP软件,下载地址搜一下,一大堆
2、查一下它的使用说明,网络也很多,没有的话,直接安装软件,中文版的,里面都有使用说明,你仔细研究一下也就了解了
PS:总的来说,感觉要学习的东西较多,实际上你只要安装软件,问题就都可以解决了,这个软件我自己也用过,很好用,发一张操作界面让你KK吧,打字好多字噢,希望对你有所帮助!
‘贰’ FTP的常用命令和使用方法
FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。下面以Win9x的DOS窗口中的FTP命令为例,介绍一下其用法。(本站注:若想在纯DOS下使用FTP命令,则需先加载网络设备如网卡或调制解调器的Packet驱动程序,再使用本站“网络工具”中的Wattcp FTP程序,其用法与下面介绍的类似,详情请见本站的“DOS使用”栏目)
FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中
-v 显示远程服务器的所有响应信息;
-n 限制ftp的自动登录,即不使用;
.n etrc文件;
-d 使用调试方式;
-g 取消全局文件名。
FTP使用的内部命令如下(中括号表示可选项):
1.![cmd[args]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip
2.$ macro-ame[args]: 执行宏定义macro-name。
3.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cp:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile 。
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。 该命令特别适用于远程主机为非UNIX机的情况。
40.ntrans[inchars[outchars]:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀.1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3
71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响应都将显示给用户,缺省为on.
73.?[cmd]:同help.
‘叁’ 急求!ftp命令的全部命令集合
1)[crud[args)1:在本地机中执行交互shell,exit回到FTP环境,列如:!LS*.zip.
2)$macro-amc[args儿执行宏定义macro-name。
3)accountlpassword]:提供登录远程系统成功后访问系统资源所需的补充口令。
4)appendlocal-file[remote-file]:将本地文件追加到远程系统主机,若未指定远系统文件名,则使用本地文件名。
5)aSCii:使用ascII型传输方式。
6)bell:每个命令执行完毕后计算机响铃—次
7)bin:使用二进制文件传输方式
8)bye..退出FTP会话过程—
9)case:在使用mget时,带凳将远程主文件名中的大写字母转为小写字母
10)cdremote·dir:进入远程主机目录。
11)cp..进入远程主机目录的蠢兆旅父目录。
12)chmodmodefile-name:将远程主机文件file-name的存取方式设置为mode。列如:chmod777a.OUt。
13)close:中断与远程服务器的FTP会话(与open对应)。
14)cr:使用aSSC“方式传输文件时,将回车换行转换为回行
15)deleteremote-file-删除远程主机文件:
16)debugldebug-value3:.设置调试方式,显示发送至远程主机的每条命令。例如:debup3,若设为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的修改时间比本地硬猜肆盘同名文件的时间巨近,则重新传输该文件。·
38)nlist正remote·di41local-file3:显示远程主机目录的文件清单,并存入本地硬盘的local-fileo
39)nmap[npattemoutpattem]设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmapSl.S2.S3[,][,],则传输文件a1.a2.a3时,文件名变为a1,a20该命令特别适用于远程主机为非UNIX机的情况o
40)ntrans[Inchars[outchars]]设置文件名字符的翻译机制,如ntranslR,则文件名LLI将变为RRR。
41)openhost[port]:建立指定FTP服务器连接,可指定连接端口。
42)passive:进入被动传输方式。
43)prompt:设置多个文件传输时的交互提示。
44)proxyFTP-cmd:在次要控制连接中,执行一条FTP命令,该命令允许连接两个FTP服务器,以在两个服务器间传输文件。第一条FTP命令必须为open,以首先建立两个服务器间的连接。
45)putlocal-file[remote-file]:将本地文件local-file传送至远程主机。
46)vwd:显示远程主机的当前工作目录。
47)qmt-.同bye,退出FTP会话。
48)quoteargl,arg2。。。:将参数逐字发至远程卸服务器,如:quote,syst。
49)recvremote-file[Local-file):同get。
50)regetremote-file[Local-file]:类似于get,但若local-file存在,则从上次传输中断处继续传输。
51)rhelp[cmd-name]:请求获得远程主机的帮助。
52)rstatus[FILe-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态,
53)rename[FRom)[to]:更改远程主机文件名。
55)restartmarker:从指定的标志marker处,重新开始get或put,如:restartl30。
56)rmdirdir-name:删除远程主机目录。
57)mnique:设置文件名惟一性存储,若文件存在,则在原文件后加后缀.1,.2等
58)sendlocal-file[remote-file):同put
59)sendport:设置PORT命令的使用。
60)siteargl,arg2。。。:将参数作为SITE命令逐字发送至远程卸主机。
61)sizefile-name:显示远程主机文件大小,如:Slteidle7200。
62)stares:。显示当前FTP状态。·
63)struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。
64)suniclue:将远程主机文件名存储设置为惟一(与mnique对应)。
65)system:显示远程主机的操作系统类型。
66)tenex:将文件:传输类型设置为TENEX机的所需的类型
67)tick:设置传输时的字节计数器
68)trace:设置包跟踪。
69)type[type-name):设置文件传输类型为type-name,缺省为ascii,
例如:typebinary,设置二进制传输方式。
70)umask[newmask):将远程服务器的缺省umask设置为newmask。例如:umask3。
71)useruser-name[passwordⅡaccount]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:useranonymousmy@emaiL。
72)verbose:同命令行的-v参数,即设置详尽报告方式,FTP服务器的所有响应都将显示给用户,缺省为on。
73)?[cmd]:同help。
‘肆’ FTP常用命令全ji
文件传输软件的使用格式为:FTP,若连 接成功,系统将提示用户输入用户名及口令:
LOGIN: (输入合法的用户名或者“ANONMOUS”):
PASSWORD: (输入合法的口令,若以“ANONMOUS”方式登录,一般不用口令):
第一节 FTP命令基础
进入想要连接的FTP站点后,用户就可以进行相应的文件传输操作了,其中一些重要 的命令及相似的命令 如下:
1)HELP、 ?、RHEIP、REMOTEHELP
HELP显示LOCAL端的命令说明,若不接受则显示所有可用命令;
?相当于HELP,例如:?CD:
RHELP同HELP,只是它用来显示REMOTE端的命令说明;
REMOTEHELP相当于RHELP。
2)ASC(ASCll)、Bm(BmARY)、IMAGE、TYPE
ASCII切换传输模式为文字模式(只能用来传送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为RECEWE的简写):
SEND相当于PUT。
7)HASH、PROMPT、VERBOSE、STATUS、BELL
HASH切换#字号的出现,每一个#字号表示传送了1024/8192BYTES:
PROMPT切换iNTERACTIVEON/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再输入一次用户名和口令(有点像UNIX下的SU)。
第二节FTP命令完全掌握
FTP命令是Intemet用户使用最频繁的命令之一,不论在DOS还在UNIX操作系统下使 用FTP,都会遇到大量的 FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便 使用者,并收到事半功倍之效。
FTP的命令行格式为:
FTP-v-d-i-n-g[主机名],其中:
—v——显示远程服务器的所有响应信息;
—n.------限制FTP的自动登录,即不使用; ,
n-----etRc文件:
-d——使用调试方式:
·g——取消全局文件名。
FTP使用的内部命令如下(中括号表示可选项):
1)[crud[args)1:在本地机中执行交互shell,exit回到FTP环境, 列如:!LS*.zip.
2)$macro-amc[args儿执行宏定义macro-name。
3)accountlpassword]:提供登录远程系统成功后访问系统资源所需的补充口令。
4)append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远系统文件名,则使用本地文件名。
5)aSCii:使用ascII型传输方式。
6)bell:每个命令执行完毕后计算机响铃—次
7)bin:使用二进制文件传输方式
8)bye..退出FTP会话过程—
9)case:在使用mget时,将远程主文件名中的大写字母转为小写字母
10)cdremote·dir:进入远程主机目录。
11)cp..进入远程主机目录的父目录。
12)chmodmodefile-name:将远程主机文件file-name的存取方式设置为mode。列如:chmod777a.OUt。
13)close:中断与远程服务器的FTP会话(与open对应)。
14)cr:使用aSSC“方式传输文件时,将回车换行转换为回行
15)deleteremote-file-删除远程主机文件:
16)debugldebug-value3:.设置调试方式,显示发送至远程主机的每条命令。例如:debup3,若设为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的修改时间比本地硬盘同名文件的时间巨近,则重新传输该文件。 ·
38)nlist正remote·di41local-file3:显示远程主机目录的文件清单,并存入本地硬盘的local-fileo
39)nmap[npattem outpattem]设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmapSl.S2.S3[$1,$2][$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a20该命令特别适用于远程主机为非UNIX机的情况o
40)ntrans[Inchars[outchars]]设置文件名字符的翻译机制,如ntranslR,则文件名LLI将变为RRR。
41)openhost[port]:建立指定FTP服务器连接,可指定连接端口。
42)passive:进入被动传输方式。
43)prompt:设置多个文件传输时的交互提示。
44)proxy FTP-cmd:在次要控制连接中,执行一条FTP命令,该命令允许连接两个FTP服务器,以在两个服务器间传输文件。第一条FTP命令必须为open,以首先建立两个服务器间的连接。
45)putlocal-file[remote-file]:将本地文件local-file传送至远程主机。
46)vwd:显示远程主机的当前工作目录。
47)qmt-.同bye,退出FTP会话。
48)quote argl,arg2。。。:将参数逐字发至远程卸服务器,如:quote, syst。
49)recvremote-file[Local-file):同get。
50)reget remote-file[Local-file]:类似于get,但若local-file存在,则从上次传输中断处继续传输。
51)rhelp[cmd-name]:请求获得远程主机的帮助。
52)rstatus[FILe-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态,
53)rename[FRom)[to]:更改远程主机文件名。
54)reset:清除回答队列。
55)restart marker:从指定的标志marker处,重新开始get或put,如:restartl30。
56)rmdirdir-name:删除远程主机目录。
57)mnique:设置文件名惟一性存储,若文件存在,则在原文件后加后缀.1,.2等
58)send local-file[remote-file):同put
59)sendport:设置PORT命令的使用。
60)siteargl,arg2。。。:将参数作为SITE命令逐字发送至远程卸主机。
61)sizefile-name:显示远程主机文件大小,如:Slteidle7200。
62)stares:。显示当前FTP状态。 ·
63)struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。
64)suniclue:将远程主机文件名存储设置为惟一(与mnique对应)。
65)system:显示远程主机的操作系统类型。
66)tenex:将文件:传输类型设置为TENEX机的所需的类型
67)tick:设置传输时的字节计数器
68)trace:设置包跟踪。
69)type[type-name):设置文件传输类型为type-name,缺省为ascii,
例如:typebinary,设置二进制传输方式。
70)umask[newmask):将远程服务器的缺省umask设置为newmask。 例如:umask 3。
71)user user-name [passwordⅡaccount]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:useranonymousmy@emaiL。
72)verbose:同命令行的-v参数,即设置详尽报告方式,FTP服务器的所有响应都将显示给用户,缺省为on。
73)?[cmd]:同help。
‘伍’ 怎么知道自己电脑的FTP端口号
FTP 的默认端口21,
如果不是默认端口的话,
Windows 在命令行里面输入 netstat -an,可以查看开放了哪些端口
Linux和Unix下,输入 netstat -tp, 可以查看哪些程序开放了哪些端口
‘陆’ 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的命令行格式为:ftp -v -d -i -n -g [主机名],其中
-v显示远程服务器的所有响应信息;
-n限制ftp的自动登录,即不使用;
.n etrc文件;
-d使用调试方式;
-g取消全局文件名。
ftp使用的内部命令如下(中括号表示可选项):
1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip.
2.$ macro-ame[args]:执行宏定义macro-name.
3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cp:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3。
71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on。
‘捌’ FTP的主要工作过程是怎样的主进程和从属进程各起什么作用
(1)FTP 使用客户服务器方式。一个FTP 服务器进程可同时为多个客户进程提供服
务。
FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干
个从属进程,负责处理单个请求。
主进程的工作步骤:
1、打开熟知端口(端口号为21),使客户进程能够连接上。
2、等待客户进程发出连接请求。
3、启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕
后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
4、回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是
并发地进行。
(2)作用:控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发
送给服务器端的控制进程,但控制连接不用来传送文件。
实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到FTP 客户发送来
的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端
的数据传送进程。
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
‘玖’ FTP使用详解
1.什么是FTP(文件传输协议)
FILE TRANSFERPROTOCOL(FTP)意为文件传输协议,用于管理计算机之间的文件传送。FTP通常指文件传输服务。
FTP是Internet上使用非常广泛的一种通讯协议。它是由支持Internet文件传输的各种规则所组成的集合,这些规则使 Internet用户可以把文件从一个主机拷贝到另一个主机上,因而为用户提供了极大的方便和收益。FTP通常也表示用户执行这个协议所使用的应用程序(例如:凯屋“上当“),从而获取所需的信息资料。
FTP和其它 Internet服务一样,也是采用客户机/服务器方式。使用方法很简单,启动FTP客户端程序先与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。FTP有一个根本的限制,那就是,如果用户未被某一FTP主机授权,就不能访问该主机,实际上是用户不能远程登录(Remote Login)进入该主机。也就是说,如果用户在某个主机上没有注册获得授权,没有用户名和口令,就不能与该主机进行文件的传输。而AnonymousFTP(匿名FTP)则取消了这种限制。
2.什么是Anonymous FTP(匿名文件传输)
Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”和“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许上传 (upload)文件。也就是说,用户只能从匿名FTP主机拷贝需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。在具有图形用户界面的WorldWide Web环境于1995年开始普及以前,匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名PTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息,数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登但是匿名FTP仍是 Internet上传输分发软件的一种基本方法。
3.什么是Remote Login(远程登录)
Remote Login(远程登录)指用户通过Internet登录到远程主机上。在这种连接建立之后,用户所在的计算就可以作为远程主机的终端一样使用。 Internet上远程登录的主要方式是Telnet,匿名FTP也需要首先经过远程登录才能进行文件传输。
4.什么是Upload(上传)
Upload(上传)指把数据从本地计算机传到远程主机上,因此受到严格的管理和控制,但Upload是提交用户信息和要求以实现远程交互应用的基础。
5.何为FTP连接
进行FTP连接首先要给出目的FTP服务器的名称或地址,当连接到FTP服务器后,一般要进行登录,在检验用户ID号和口令后,连接才得以建立,某些系统也允许用户进行匿名登录。与在所有的多用户系统中一样,对于同一目录或文件,不同的用户拥有不同的权限,所以在使用过程中,如果发现不能下载或上载某些文件时,一般是因为用户权限不够。
6.FTP文件传输方式
FTP可用多种格式传输文件,通常由系统决定,大多数系统(包括UNIX系统)只有两种模式:文本模式(ASCII)和二进制模式(BIN/IMAGE)。
文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换或格式化就可传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理员一般将FTP设置成二进制模式。应注意在用FIP传输文件前,必须确保使用正确的传输模式,按文本模式传二进制文件必将导致错误。
7.FTP的可靠性问题
FTP建立在传输层TCP协议之上,TCP是面向连接的协议,负责保证数据从源计算机到目的计算机的传输。TCP采用校验、确认接收和超时重传等一系列措施提供可靠的传输,所以在传输过程中FTP程序如果没有提示错误,就无需担心传输问题。