当前位置:首页 » 文件传输 » 连接ftp服务器可以单例模式吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

连接ftp服务器可以单例模式吗

发布时间: 2023-07-07 07:24:21

1. 简述文件传输协议FTP的工作原理及一般使用步骤。

1、FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive(也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Port
FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive
在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

2、使用步骤
(1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。

(2)用户运行FTP命令,请求FTP服务器为其服务。

例:FTP 202.119.2.197

(3)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP端口21。

(4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20,进行数据传输。

(5)本次子命令的数据传输完,拆除数据连接,结束FTP-DATA进程。

(6)用户继续输入FTP子命令,重复(4)、(5)的过程,直至用户输入quit命令,双方拆除控制连接,结束文件传输,结束FTP进程。

2. 求FTP命令用法及什么是后台下载

给你举个例子吧:
假设我在某某服务器上的服务信息为:
FTP server :58.19.237.135
User: heibang
Password: heibang7785

现在让我们打开Windows的开始菜单,执行“运行”命令,在对话框中输入ftp命令,按下“确定”按钮执行。
其时将会切换至DOS窗口,出现提示符

ftp>

现在让我们输入命令连接FTP服务器:

ftp> open 58.19.237.135(回车)

稍等片刻,屏幕提示连接成功:

ftp> connected to 58.19.237.135(回车)

接下来服务器询问你用户名和口令,分别输入heibang和heibang7785,待认证通过即可。

下面进入正题,开始上传文件,比如说我们要把c:\index.html传至服务器的根目录中,可以这么键入:

ftp> put c:\index.html (回车)

当屏幕提示你已经传输完毕,可以打入相关命令查看一番:

ftp> dir (回车)

你就能看见你刚才上传的文件了。

刚刚讲的是上传,现在来看下载。假设要把服务器\images目录中的所有.jpg文件传至本机中,按以下指令操作:

ftp> cd images(回车) [注:进入\images目录]
ftp> mget *.jpg

上传与下载工作完毕,可以运行bye中断连接。

ftp> bye(回车)

最后为了方便大家记忆,总结一下常用的FTP命令:

1. open:与服务器相连接;
2. send(put):上传文件;
3. get:下载文件;
4. mget:下载多个文件;
5. cd:切换目录;
6. dir:查看当前目录下的文件;
7. del:删除文件;
8. bye:中断与服务器的连接。

命令虽然简单,但不一定人人皆知;再说“养兵千日,用兵一时”,说不定什么时候就会用得着的呢。如果想了解得更多,就打ftp> help (回车)查看命令集吧。

ascii: 设定以ASCII方式传送文件(缺省值)

bell: 每完成一次文件传送,报警提示

binary: 设定以二进制方式传送文件

bye: 终止主机FTP进程,并退出FTP管理方式

case: 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母

cd: 同UNIX的CD命令

cp: 返回上一级目录

chmod: 改变远端主机的文件权限

close: 终止远端的FTP进程,返回到FTP命令状态,所有的宏定义都被删除

delete: 删除远端主机中的文件

dir [remote-directory] [local-file]: 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件

get [remote-file] [local-file]: 从远端主机中传送至本地主机中

help [command]: 输出命令的解释

lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录

ls [remote-directory] [local-file]: 同DIR

macdef: 定义宏命令

mdelete [remote-files]: 删除一批文件

mget [remote-files]: 从远端主机接收一批文件至本地主机

mkdir directory-name: 在远端主机中建立目录

mput local-files: 将本地主机中一批文件传送至远端主机

open host [port]: 重新建立一个新的连接

prompt: 交互提示模式

put local-file [remote-file]: 将本地一个文件传送至远端主机中

pwd: 列出当前远端主机目录

quit: 同BYE

recv remote-file [local-file]: 同GET

rename [from] [to]: 改变远端主机中的文件名

rmdir directory-name: 删除远端主机中的目录

send local-file [remote-file]: 同PUT

status: 显示当前FTP的状态

system: 显示远端主机系统类型

user user-name [password] [account]: 重新以别的用户名登录远端主机

?: 同HELP

3. FTP建立后,和服务器建立哪两种连接

起初,FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议, ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。

FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的"三次握手"的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。

下面,让我们来看看,一个FTP客户在和服务器连接是怎么样的一个过程(以标准的FTP端口号为例)。

首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(HTTP的默认端口是80,FTP的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT模式),是用来建立数据传输通道的,主要有3个作用

从客户向服务器发送一个文件。

从服务器向客户发送一个文件。

从服务器向客户发送文件或目录列表。

其次,FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,这里都是相对于服务器而言的。为了让大家清楚的认识这两种模式,朗月繁星分别举例说明。
PORT模式

当FTP客户以PORT模式连接服务器时,他动态的选择一个端口号(本次试验是6015)连接服务器的21端口,注意这个端口号一定是1024以上的,因为1024以前的端口都已经预先被定义好,被一些典型的服务使用,当然有的还没使用,保留给以后会用到这些端口的资源服务。当经过TCP的三次握手后,连接(控制信道)被建立(如图1和图2)。

图1:FTP客户使用FTP命令建立于服务器的连接

图2:用netstat命令查看,控制信道被建立在客户机的6015和服务器的20端口

现在用户要列出服务器上的目录结构(使用ls或dir命令),那么首先就要建立一个数据通道,因为只有数据通道才能传输目录和文件列表,此时用户会发出PORT指令告诉服务器连接自己的什么端口来建立一条数据通道(这个命令由控制信道发送给服务器),当服务器接到这一指令时,服务器会使用20端口连接用户在PORT指令中指定的端口号,用以发送目录的列表(如图3)。

图3:ls命令是一个交互命令,它会首先与服务器建立一个数据传输通道。经验证本次试验客户机使用6044端口

当完成这一操作时,FTP客户也许要下载一个文件,那么就会发出get指令,请注意,这时客户会再次发送PORT指令,告诉服务器连接他的哪个"新"端口,你可以先用netstat -na这个命令验证,上一次使用的6044已经处于TIME_WAIT状态(如图4)。

图4:使用netstat命令验证上一次使用ls命令建立的数据传输通道已经关闭

当这个新的数据传输通道建立后(在微软的系统中,客户端通常会使用连续的端口,也就是说这一次客户端会用6045这个端口),就开始了文件传输的工作。

PASV模式

然而,当FTP客户以PASV模式连接服务器时,情况就有些不同了。在初始化连接这个过程即连接服务器这个过程和PORT模式是一样的,不同的是,当FTP客户发送ls、dir、get等这些要求数据返回的命令时,他不向服务器发送PORT指令而是发送PASV指令,在这个指令中,用户告诉服务器自己要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回ACK的确认信息,之后数据传输通道被建立并返回用户所要的信息(根据用户发送的指令,如ls、dir、get等);如果服务器的这个端口被另一个资源所使用,那么服务器返回UNACK的信息,那么这时,FTP客户会再次发送PASV命令,这也就是所谓的连接建立的协商过程。为了验证这个过程我们不得不借助CUTEFTP Pro这个大家经常使用的FTP客户端软件,因为微软自带的FTP命令客户端,不支持PASV模式。虽然你可以使用QUOTE PASV这个命令强制使用PASV模式,但是当你用ls命令列出服务器目录列表,你会发现它还是使用PORT方式来连接服务器的。现在我们使用CUTEFTP Pro以PASV模式连接服务器(如图5)。

图5:使用CUTEFTP Pro以PASV模式连接服务器

请注意连接LOG里有这样几句话:

COMMAND:> PASV
227 Entering Passive Mode (127,0,0,1,26,108)
COMMAND:> LIST
STATUS:> Connecting ftp data socket 127.0.0.1: 6764...
125 Data connection already open; Transfer starting.
226 Transfer complete.

其中,227 Entering Passive Mode (127,0,0,1,26,80). 代表客户机使用PASV模式连接服务器的26x256+108=6764端口。(当然服务器要支持这种模式)
125 Data connection already open; Transfer starting.说明服务器的这个端口可用,返回ACK信息。

再让我们看看用CUTEFTP Pro以PORT模式连接服务器的情况。其中在LOG里有这样的记录:

COMMAND:> PORT 127,0,0,1,28,37
200 PORT command successful.
COMMAND:> LIST
150 Opening ASCII mode data connection for /bin/ls.
STATUS:> Accepting connection: 127.0.0.1:20.
226 Transfer complete.
STATUS:> Transfer complete.

其中,PORT 127,0,0,1,28,37告诉服务器当收到这个PORT指令后,连接FTP客户的28x256+37=7205这个端口。
Accepting connection: 127.0.0.1:20表示服务器接到指令后用20端口连接7205端口,而且被FTP客户接受。

比较分析

在这两个例子中,请注意: PORT模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的端口;在PASV模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,比如使用微软的ISA Server 2000发布一个FTP服务器,这一点非常关键,如果设置错了,那么客户将无法连接。

最后,请注意在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的。

在本文中把重点放到了FTP的连接模式,没有涉及FTP的其他内容,比如FTP的文件类型(Type),格式控制(Format control)以及传输方式(Transmission mode)等。不过这些规范大家可能不需要花费过多的时间去了解,因为现在流行的FTP客户端都可以自动的选择正确的模式来处理,对于FTP服务器端通常也都做了一些限制,如下:

类型:A S C I I或图像。

格式控制:只允许非打印。

结构:只允许文件结构。

传输方式:只允许流方式

至于这些内容,限于篇幅在这里就不想再介绍了。希望这篇文章能对大家有些帮助,特别是正在学习ISA Server2000的朋友和一些对FTP不很了解的朋友。

4. 如何连接FTP,FTP连接失败的五大主要原因

如何连接FTP最常见的FTP连接有2种方式,匿名连接FTP,有用户名和密码的FTP连接。根据FTP服务器的设定来采用哪种连接方式。连接FTP服务器的常见工具有Windows的资源管理器(或者IE),FLASHFXP,CUTFTP等。匿名连接FTP我们只需要在WindowsIE浏览器输入FTP的地址即可,在地址栏输入FTP服务器的IP地址,如图,注意以FTP开头当成功连接时,会显示FTP服务器的文件列表使用用户名和密码的FTP连接新版本的IE不支持上传,需要资源管理器地址栏输入以上格式的管理地址。资源管理器打开方法,右键点开始,然后选择资源管理器。以软件FLASHFXP(下载)为例,运行软件,按F8进行快速连接,如图:将FTP服务器的三个参数填写完整后点击连接,服务器处可填写FTP服务器的域名或者IP地址。连接成功后软件右侧会出现远程服务器的文件列表。FTP连接失败的五大原因:由于每个人电脑环境和FTP服务器的属性不同,FTP连接失败的事情常有发生。一、FTP服务器的域名解析问题,当我们连接FTP时地址栏填写了服务器的域名,如果DNS服务器解析出问题,我们就无法得到对方的IP地址,因此无法连接FTP。二、错误的用户名和密码。许多FTP服务器禁止了匿名连接,这样是为了安全起见,连接时输入错误的用户名和密码或者不输入用户名和密码导致连接失败。三、传输模式错误。许多服务器在安装了防火墙后设置了被动模式传输,用户在连接时需要采用被动模式(pasv)或者自动模式。四、FTP服务器错误。对方服务器宕机,可以通过PING命令来测试FTP服务器是否存活。五、错误的端口或者自身电脑防火墙不允许。许多安全软件禁止了FTP连接,自身电脑无法连接FTP端口。

5. 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.

6. linux怎么搭建ftp服务器

在创建FTP服务器之有先命令: ps -ef |grep vsftpd
查一下系统有没有安装vsftpd这个服务器,如果没有安装。
然后再执行:yum install vsftpd -y
进行在线安装vsftpd这个服务。
安装成功以后需要把匿名登陆的这个功能关闭了。
使用命令: vim /etc/vsftpd/vsftpd.conf
然后在里成找到:‍
anonymous_enable=NO
然后再查看一下vsftpd这个服务有没有启动。
使用命令: chkconfig --list
如果你一样没有启动。
没有启动使用启动:chkconfig --level 35 vsftpd on
再接下来就是创建用户名。
创建用户名:useradd jingyan
再然后就是创建密码。
命令:passwd jingyan
再输入两次密码就可以了。
最后重启一下服务:service vsftpd start
如果出现启动失败则可以使用:/etc/rc.d/init.d/vsftpd restart
成功链接FTP服务器上。

7. 各位高手,谁能告诉我建立FTP的详细方法

建立个人FTP服务器教程 以及 内网、局域网设置IP,建立FTP

【怎样建立个人FTP】

Serv-U FTP Server 5.0.0.11 final 特别破解版汉化版
点击下载

《FTP Serv-U 教程》+《FTP的建立和维护手册》
点击下载

在网上做过软件下载的人都知道,建立一个FTP下载服务器相对比较简单,一般用WIN2000下自带的IIS就可以,但IIS在功能上好多都不尽人如意,下面我就介绍一款功能非常强大,但使用简单的FTP服务器构建软件-Serv-U FTP Server,让我们也来体验一下自己DIY FTP服务器的快乐! 在说明使用之前,让我先大致介绍一下Serv-U(本文中提到Serv-U版本为3.0.0.17), Serv-U 是一个可以运行于Windows 95/98/2000/ME 和 Windows NT 4.0下的FTP服务器程序如图所示,

有了它,你的个人电脑就可以模拟为一个FTP服务器,也就是说,你所连接的网络中的计算机用户可以访问你的个人电脑,通过FTP协议(文件传输协议)复制、移动、删除你的电脑中的文件或文件夹,可以做一切权限所允许的事情。FTP协议规定了计算机之间的标准通讯方式,使所有不同类型,不同操作系统,不同格式的电脑之间得以互换文件。它可以用最简单的方式创建用户帐号,并且在硬盘空间上划分一定的区域用以存放文件,让用户以各种FTP客户端软件(如CuteFTP、WS_FTP等)上传或下载所需要的文件。

有许多FTP服务器和客户端软件可用于不同的系统中,Serv-U是用于运行MS-Windows 并且已安装了WinSock 版本 1.1 兼容 TCP/IP协议的个人电脑中的,这几乎包括了所有的Windows操作系统。

Serv-U由两大部分组成,引擎和用户界面。Serv-U引擎(ServUDaemon.exe)其实是一个常驻后台的程序,也是Serv-U整个软件的心脏部分,它负责处理来自各种FTP客户端软件的FTP命令,也是负责执行各种文件传送的软件。在运行Serv-U引擎也就ServUDaemon.exe
文件后,我们看不到任何的用户界面,它只是在后台运行,通常我们无法影响它,但在ServUAdmin.exe中我们可以停止和开始它。Serv-U引擎可以在任何Windows平台下作为一个本地系统服务来运行,系统服务随操作系统的启动而开始运行,而后我们就可以运行用户界面程序了。在Win NT/2000系统中,Serv-U会自动安装为一个系统服务,但在Win 9x/Me中,你需要在“服务器”面板中选择“自动开始”,才能让它转为系统服务。Serv-U用户界面(ServUAdmin.exe)也就是Serv-U管理员,它负责与Serv-U引擎之间的交互。它可以让用户配置 Serv-U,包括创建域、定义用户、并告诉服务器是否可以访问。启动Serv-U管理员最简单的办法就是直接点接系统栏的“U”形图标,当然,你也可以从开始菜单中运行它。

在此有必要把Serv-U中的一些重要的概念给大家讲清楚:每个正在运行的Serv-U引擎可以被用来运行多个“虚拟”的FTP服务器,在管理员程序中,每个“虚拟”的FTP服务器都称为“域”,因此,对于服务器来说,不得不建立多个域时是非常有用的。每个域都有各自
的“用户”、“组”和设置。一般说来,“设置向导”会在你第一次运行应用程序时设置好一个最初的域和用户帐号。服务器、域和用户之间的关系大家可以参考下表:
*Serv-U 服务器
*域 1
*用户帐号 1
*用户帐号 2
*用户帐号 3
*域 2
*用户帐号 1
*用户帐号 2
*域 3
*用户帐号 1
*用户帐号 1

这个表有点类似与Serv-U管理员中服务器、域和用户的排列。

Serv-U FTP Server 是试用软件,安装后三十天内,你可以作为“专业版本”使它,但试用期过后,你就只能作为免费的“个人版
本”使用了,只有基本功能了。

好了,说了这么多,还没到关键部分-如何自己来建立FTP服务器。下面我就一步一步来说明。
一、 安装原版软件和汉化补丁,这个过程就不多说了,想必没人不会的。
二、 建立第一个本地FTP服务器
安装完成后程序会自动运行,你也可以在菜单中选择运行。
1、 第一次运行程序,它会弹出设置向导窗口如图,

将会带你完成最初的设置,
2、 单击“下一步”,出现“显示菜单图像”的窗口,问你是否在菜单中显示小图像,看各人喜欢了;
3、 单击“下一步”,这个窗口是让你在本地第一次运行FTP服务器,只要“下一步”就行了。
4、 接下来要你输入你的IP地址如图,

如果你自己有服务器,有固定的IP,那就请输入IP地址,如果你只是在自己电脑上建立FTP,而且又是拨号用户,有的只是动态IP,没有固定IP,那这一步就省了,什么也不要填,Serv-U 会自动确定你的IP地址,“下一步”;
5、 在这儿要你输入你的域名,如图

如果你有的话,如:ftp.abc.com,没有的话,就随便填一个;
6、 “下一步”,询问你是否允许匿名访问如图

一般说来,匿名访问是以Anonymous为用户名称登录的,无需密码,当然如果你想成立一个会员区什么的,就应该选择“否”,不让随便什么人都可以登录,只有许可用户才行,在此我们填“是”;
7、 “下一步”,问你匿名用户登录到你的电脑时的目录,如图,

你可以自己指定一个硬盘上已存在的目录,如F:\temp\xyz;
8、 “下一步”,询问你是否要锁定该目录,锁定后,匿名登录的用户将只能认为你所指定的目录(F:\temp\xyz)是根目录,也就是说他只能访问这个目录下的文件和文件夹,这个目录之外就不能访问,对于匿名用户一般填“是”;
9、 “下一步”,询问你是否创建命名的帐号,也就是说可以指定用户以特定的帐号访问你的FTP,这对于办会员区可很有用哦,你可以对于每个人都创建一个帐号,每个帐号的权限不同,就可以不同程序地限制每个人的权利,方法将在后面讲到,这里选择“是”;
10、 “下一步”,请你填入所要建立的帐号的名称,如图,如:ldr,

11、 “下一步”,请输入密码,如:123,
12、 “下一步”,询问登录目录是什么,这一步与第7步一样,如:F:\temp
13、 “下一步”,询问你是否要锁定该目录,同第8步,这里选择“否”;
14、 接下来询问你这次创建的用户的管理员权限,如图,

有几项选择:无权限,组管理员,域管理员,只读管理员和系统管理员,每项的权限各不相同;这里选择“系统管理员”;
15、 最后一步,点击“完成”就OK了,你有什么需要修改的,可以点“上一步”,或者进入Serv-U管理员直接修改。至此,我们建立
了一个域ftp.abc.com,两个用户,一个Anonymous,一个ldr。

三、 既然我们已经建立好FTP服务器,那么我们就应该可以用FTP客户端软件来尝试登录。
怎么办呢?其实很简单,我们不用上网,就可以测试。我们知道,不上网时,本地机的IP地址默认就为127.0.0.1,FTP端口号为21。打开FTP客户端软件,我就用FlashFXP来说明,打开快速连接,填入相应内容,如图

然后连接,如图

可以看到,我左边窗格以Anonymous登录,右边窗格以ldr登录,由于是本地机,所以速度奇快,上网后,假如我要让你登录到我的电脑上,我只要把我的上网时的IP地址给你,你就可以匿名访问我的电脑了(注意不要开防火墙),是不是很方便?

四、Serv-U管理员中的各项设置
在设置完成后,将会进入Serv-U管理员的主界面,如图

左边窗格中显示各个栏目,右边窗格中显示各个栏目的具体选项,下面就大概讲一讲设置内容。
1、 在图中,我们可以人为地控制Serv-U引擎的运行或停止,记住,在Win 9x/Me 中,我们就要在此选择“系统服务”,才会运行
Serv-U引擎。
2、 “许可”,如果你花美元买了注册号,就可以在此输入。
3、 “设置”,这个设置是对于“本地服务器”来说的。“常规”设置中,如图

可以限制服务器的最大速度,可以拦截FXP(站点到站点传送),也可以限制用户的数量,这样不至于你的服务器被拖跨。“目录缓存”设置中,如图

允许你自己确定目录列表的个数以及超时时间,在Windows 95 和 NT下,目录列表默认设置为25,当缓存满了之后,新的请求将替换老的请求。“高级”设置中,如图

可以让你自己定义服务器、Socket、文件的上传和下载的各项设置。
4、 “活动”,在这里记录了用户的活动日志,已封锁的IP的活动日志,以及任务日志;任务日志中显示的就是你开始停止的各项操作记录,你可以点击右击,选择一此过滤文本,使其只显示你所想见的内容,如图

5、 “域”,这里包含了你一开始根据向导所建立的用户、设置、域等。“域--设置”中所设置的内容其实与第3步差不多,只是它更
加具体,可以对于每一个不同域定制。“域--活动”中记载了这个域下所有用户的活动情况。
6、 “域--组”,我们可以自己建立一些便于管理的组,然后把一类的用户归到一个组中。
7、 “域--用户”中,大家可以看到一开始我们建立的两个帐号,一个Anonymous,一个ldr。现在就帐号ldr来对其中的细节设置说明一下。
A、“帐号”栏,如图

对于一些不守规则的人,我们可以选择“禁用帐号”,虽然有帐号,但可以使用户一时间无法登录;你也可以设置让程序到达某个日期后自动删除某个帐号;下面几栏是这个帐号的基本信息,我们都可以在此更改,其中密码改过后并不显示,而是统一显示<>,特别要注意选项“锁定用户于主目录”,什么意思呢?大家应该碰到,每次我们登录到FTP服务器上后,在根目录下只显示“/”,选择这项选项后,就是这样,如果不选,会出现什么情况呢?你可以做一下试验,在根目录下将显示“/f:/temp/”,也就是说显示了你硬盘中的绝对
地址,这在某些情况下是很危险的,有不怀好意的高手,你就麻烦了!

你可以隐藏属性为隐藏的文件,可以限制同一IP的登录个数,是否允许用户更改密码(这需要客户端软件的支持),最大上传下载的速
度,超时时间以及空闲时间,你也可以限制最大用户数量,如20,说明同时只能有20个用户登录。
C、“目录访问”栏,如图

在此你可以控制用户对于文件目录的权限,对文件有读取、写入、删除、追加、执行等操作,对于文件夹有列表、创建、删除,以及是否继承子目录;如果觉得目录不够,你也可以添加可访问的目录。
D、“IP访问”栏,如图

在这里你可以规定某个IP是否可以访问你的FTP服务器,你可以拒绝它的访问,只要填上相应的IP地址,以后由这个IP的访问通通被拦下。
E、“上传/下载率”栏,如图

在这里你可以设置上传和下载之间的比值,控制好上传和下载之间的数据流量关系。
F、“配额”栏,如图

这里你可以为每个FTP用户设置磁盘空间,点击“计算当前”,可以知道当前目前下的所有空间大小,在“最大”一栏中填入你想要限制的容量。

最后有一点,改过设置后一定要点击右键,选择“应用”使设置生效才行,否则一切都白做了!!
希望大家学会后,能为更多的人提供下载,享受宽带带来的快乐!

==========================================================================================================

SERV-U FTP的欢迎词设置
让你的SERV-U FTP看起来更专业一点
现在很多的朋友都用SERV-U做个人FTP的服务器,有关如何使用SERV-U架设服务器的文章很多了,这儿我就不多说了。不过大家不知道注意到了没有,当你登陆很多FTP的时候,会显示一些欢迎信息,比如说显示你的IP,告诉你目前有多少人在使用FTP,带宽是多少等等。。。看起来就比较的专业样子。其实你自己也是可以做的,SERV-U这个软件本身就有这个功能。下面我就说明以下如何在自己的FTP里面加上这些信息。

第一、先建立一个文本文件,随便取一个名字。我们这儿就取message.txt吧。

第二、这个这个文本文件里面加上这些文字

-----------------------------------
欢迎来到XXX的个人FTP服务器
你的IP地址是:%IP
目前服务器所在的时间是 %time
已经有 %u24h 个用户在最近24小时访问过本FTP
本FTP服务器已经运行了 %ServerDays 天,%ServerHours 小时 和 %ServerMins 分。

服务器的运行情况:

所有登陆用户数量: %loggedInAll total
当前登陆用户数量: %Unow
已经下载字节数: %ServerKbDown Kb
已经上传字节数: %ServerKbUp Kb
已经下载文件数: %ServerFilesDown
已经上传文件数: %ServerFilesUp
服务器平均带宽: %ServerAvg Kb/sec
服务器当前带宽: %ServerKBps Kb/sec
------------------------------------

其中XXX可以改成你的名字

你也可以加上一些你自己认为喜欢的文字,不过要注意的是每行最好不要超过80个字符

其中以%开头的都是一些变量,下面是SERV-U能支持的变量

时间和日期

%Time - 显示你的计算机当前时间
%Date - 显示你的计算机当前日期

服务器的统计信息

%ServerDays - 显示服务器已经运行的天数
%ServerHours - 显示服务器已经运行的小时数
%ServerMins - 显示服务器已经运行的分钟数
%ServerSecs - 显示服务器已经运行的秒数
%ServerKbUp - 显示自从服务器运行以来已经上传的字节数
%ServerKbDown - 显示自从服务器运行以来已经下载的字节数
%ServerFilesUp - 显示自从服务器运行以来已经上传的文件数
%ServerFilesDown - 显示自从服务器运行以来已经下载的文件数
%LoggedInAll - 显示自从服务器运行以来已经登陆的用户数
%ServerAvg - 显示服务器的平均带宽
%ServerKBps - 显示服务器的当前带宽

服务器的设定信息

%MaxUsers - 显示服务器能同时登陆的最大用户数量
%MaxAnonymous - 显示服务器能同时登陆的最大匿名用户数量

用户信息

%Name - 显示登陆的用户名
%IP - 显示登陆的用户IP地址
%Dir - 显示登陆的用户的当前目录
%Disk - 显示登陆的用户的当前磁盘
%DFree - 显示登陆的用户的当前磁盘空间,单位是MB
%FUp - 显示登陆的用户上传的文件数量
%FDown - 显示登陆的用户下载的文件数量
%FTot - 显示登陆的用户上传和下载的总的文件数量
%BUp - 显示登陆的用户上传的字节数,单位是KB
%Bdown - 显示登陆的用户下载的字节数,单位是KB
%BTot - 显示登陆的用户上传和下载的总字节数,单位是KB
%TconM - 显示登陆用户连接时间,单位是分钟
%TconS - 显示登陆用户连接时间,单位是秒,要和%TconM一起使用
%RatioUp - 显示登陆用户的上传流量限制
%RatioDown - 显示登陆用户的下载流量限制
%RatioCredit - 显示登陆用户还有多少credit可以上传和下载,这个是针对有些FTP是要上传多少文件,才能下载多少文件而设置的
%QuotaUsed - 显示登陆用户的已经使用了多少空间,单位是KB
%QuotaLeft - 显示登陆用户的还有多少空间可以使用,单位是KB
%QuotaMax - 显示登陆用户的的最大空间,单位是KB
后面3个是针对有磁盘限制的用户设置的

用户数量

%UNow - 显示当前有多少用户连接
%UAll - 显示从服务器运行以来一共有多少用户连接过
%U24h - 显示最近24小时有多少用户
%UAnonAll - 显示当前总的匿名用户数量
%UAnonThisIP - 显示所有匿名登陆的用户数
%UNonAnonAll - 显示所有当前非匿名登陆用户数
%UNonAnonThisIP - 显示所有非匿名登陆用户数
%UThisName - 显示所有使用这个名字登陆的用户数

自己在先建立一个.txt文件,输入你想要显示的文字,具体参数看上面的内容,然后在Serv_u内的server设置里面,加入这个.txt文件就可以了

==========================================================================================================

——常见FTP登陆Log信息——
常见FTP登陆Log信息

1.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER anonymous
530 Sorry, no ANONYMOUS access allowed.
QUIT
这个就是不许匿名登录啦

2.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER test
331 User name okay, need password.
PASS xxxxxx
530 Not logged in.
QUIT
一般是密码输入错误时出现的信息,但对于Serv-U来说,如果没有这个帐号(test)存在,也会产生同样的出错信息。

3.
Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)
ERROR: Connection timed out
这个表明对方未开机,也可能是对方不在你能访问的范围内

4.
Connecting to xxx.xxx.xxx.xxx Port 21 (#1)
ERROR: Connection refused
这个一般表明对方已开机,但未开启FTP服务(没有开Serv-U)
也可能为对方不提供在这个端口上的服务

5.
Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)
Connected. Waiting for response.
Disconnected from server.
Connection attempt failed. Waiting for retry...
出现这个信息实在是很倒霉,你极有可能被对方Ban了。
如果只是Ban几分钟or几小时or一天还好,不然只有和站长说说好话,让他给你解封吧。

6.
Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)
Connected. Waiting for response.
USER XXX
331 User name okay, need password
PASS xxxxxx
530 Not logged in, unauthorized IP address.
QUIT
这个有点麻烦,你的IP不在站长允许访问的IP范围内,只有和站长联系,让他把你的IP网段加入Allow Access列表里吧

7.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER user
421 Too many users - please try again later.
哈哈,这个很常见吧,用户太多

8.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER test
530 Not logged in, only one session from same IP allowed at a time.
QUIT
每个IP只能开一个下载,就不要用多线程啦,小心Ban了你。

----------------------------------------------------------------------------------------------

内网、局域网如何设置IP,建立FTP
首先,我们知道动态IP机器出去的最大问题是IP,因为动态IP机器的IP外网是无法识别的,我们讨论的是最普通的局域网内工作站出去做FTP和WEB站点的问题!
动态域名解析正好能够解决此类问题,它的原理是将本机的动态IP自动映射到预先申请好的虚拟域名上,这样外面就可以通过访问固定的虚拟域名来访问到动态IP机器了。
<花生壳>该软件使用方便,几乎不用动什么脑筋,唯一要做的事情就是去注册,然后申请一个以vicp.net为后缀虚拟域名。
1.进入http://www.oray.net/,下载<花生壳>,并“注册网域护照”!
2.注册完成后,登陆“我的控制台”

3.进入“我的控制台”,点击左下角的‘我要.激活花生壳服务’

4.点击“开始”进入

在‘免费域名’填入不重复的你想要得名字就是你将来的域名,例如:AGHU

5.以后就是“服务条款”和“填写站点信息”,这些地球人都知道怎么填!
填完结束,恭喜你,你的域名已经有了!例如:你以后的域名就是AGHU.VICP.NET
申请完免费域名以后,就安装你已经下载的<花生壳>,然后打开运行

输入你的注册名和密码,等一下就会激活你的域名,兴奋吧!
然后你的ftp和web就可以启动咯!
架设ftp服务器的事情,另外有帖子详细介绍了!!
======================================
局域网内公开的ip只有一个,除非你是在主机上建私服,否则你无法公开你的私服,只能在局域网内,解决的办法如下。
由于公网ip地址有限,不少isp都采用多个内网用户通过代理和网关路由共用一个公网ip上internet的方法,这样就限制了这些用户在自己计算机上架设个人网站。要实现对我们来说是比较困难的,首先得得到系统管理员的支持才能够实现。因为这一切的设置必须在代理服务器上做的。要实现这一点,可以用windows 2000 服务者 的端口映射功能,除此之外winroute pro也具有这样的功能,还有各种企业级的防火墙。而对于我们这些普通用户,恐怕还是用windows 2000 的转换以解决ip地址匮乏问题。在防火墙上实现nat后,可以隐藏受保护网络的内部拓扑结构,在一定程度上提高网络的安全性。如果反向nat提供动态网络地址及端口转换功能,还可以实现负载均衡等功能端口映射功能可以让内部网络中某台机器对外部提供www服务。 端口映射功能还可以完成一些特定代理功能,比如代理pop,smtp,telnet等协议。理论上可以提供六万多个端口的映射,恐怕我们永远都用不完的。

一、下面来介绍一下通过nat共享上网和利用nat来实现端口映射。

1、在windows 2000 server上,从管理工具中进入“路由和远程访问”(routing 并且 遥远 access)服务,在服务器上鼠标右击,-》“配置并启用路由和远程访问”

2、点“下一步”

3、选“internet连接服务器”,让内网主机可以通过这台服务器访问internet.(最好先配置好nat共享,让内网主机可以正常上网,不然的话,配好端口映射后再来配置nat共享就有点麻烦了,弄的不好nat还共享不了。)

4、选“设置有网络地址转换(nat)路由协议的路由器”,不要选“设置internet连接共享(ics)”.(ics与nat的区别在于使用的容易程度上,为了启用ics,只需要选择一个复选框就可以了,而为了启用nat,则需要更多的配置任务,此外,ics用于小型网络上的原因还在于:针对内部主机,它需要有一个固定的ip地址范围;针对与外部网络的通信,它被限制在单个公共ip地址上;它只允许单个内部网络接口。)

5、先在此说一下我的网络情况:internet连接192.200.

8. 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程序如果没有提示错误,就无需担心传输问题。

9. 简述FTP的工作原理

FTP的工作原理:FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序。

开发任何基于 FTP 的客户端软件都必须遵循 FTP 的工作原理,FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;

另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了 FTP 的效率,而其它客户服务器应用程序只有一条 TCP 连接。

(9)连接ftp服务器可以单例模式吗扩展阅读:

FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。它能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。

但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。

FTP 在因特网网络上历史是最悠久的网络工具,从 1971 年由 A KBHUSHAN 提出第一个 FTP 的RFC(RFC114),FTP 凭借其独特的优势一直都是因特网中最重要、最广泛的服务之一。

10. FTP详解知道请进

文件传输协议
[编辑本段]
FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

FTP(File Transfer Protocol)

FTP的作用
[编辑本段]

正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。

FTP工作原理
[编辑本段]

拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。

简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议。(文件传输协议)

一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。

通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。

值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。

当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。

作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。 Internet上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet上找到。这是Internet吸引我们的重要原因之一。

匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。

匿名FTP是Internet网上发布软件的常用方法。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。

Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?这正是 Archie服务器所要完成的工作。Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。

通过ftp传输文件的一般步骤
[编辑本段]

1.在本地电脑上登陆到国际互联网.

2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径).

3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑.

4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的东东(这里的东东是指能放到电脑里去又能在显示屏上看到的东东).

5.完成工作后关闭FTP下载软件,切断连接.

为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,FlashFxp为其中的杰出软件。有兴趣的网友可以试试其他的软件,如LeapFTP总归各有各的特色.
FTP协议

TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet,你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。
FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。
1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。
2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。
5. FTP的工作方式
FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到 Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。