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命令详解
FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX *** 作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。
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
73[cmd]:同help。按下列步骤开启设置LINXU中的FTP服务:
1、开启linuxh环境下的FTP service
过程如下:
输入命令:
/etc/rcd/initd/vsftpd start
/etc/rcd/initd/vsftpd restart
若要关闭这个服务:
/etc/rcd/initd/ vsftpd stop
2、配置文件:
进入/etc配置vsftpdftpusers和vsftpduser_list,用vi打开他们,将这两个文件里的root给去掉,保存退出。
3、此时可以打开flshFXP,快速连接,输入IP地址、用户名及密码就可以连接linux系统的FTP服务器。
4、vsftpd的配置
在Red Hat Linux 里的vsftpd共有3个配置文件,它们分别是:
vsftpdftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpduser_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpdconf:位于/etc/vsftpd目录下。它是一个文本文件,我们可以用Kate、Vi等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
1、通过任务栏的“开始-所有程序-管理工具”,再其下找到Internet信息服务(IIS)管理器,打开管理器后会发现在最下方有一个“FTP站点”的选项,通过它来建立FTP服务器。
2、在“默认FTP站点”上点鼠标右键选择“新建-FTP站点”。
3、在启动的FTP站点创建向导中我们可以自定义FTP服务器的相关设置,点“下一步”后继续。
4、为FTP站点起一个名,这里设置为soft的FTP。
5、此FTP站点设置一个可用的IP地址,选择实际的地址是可以的,如果拿不准的话还可以选择“全部未分配”,这样系统将会使用所有有效的IP地址做为FTP服务器的地址。同时FTP服务器对外开放服务的端口是多少也是在此进行设置的,默认情况下为21。
6、接下来是FTP用户隔离设置,这里的中文帮助信息写的非常明白,选择不隔离用户那么用户可以访问其他用户的FTP主目录,选择隔离用户则用户之间是无法互相访问目录资源的,为了安全起见需要隔离用户,应该选择第二项“隔离用户”。
7、选择FTP站点的主目录,可以进行修改,默认为系统目录下的inetpub目录中的FTPROOT文件夹。通过右边的“浏览”按钮设置为其他目录,例如“D:\稿件”。
8、然后是设置用户访问权限,只有两种权限进行设置,依次为“读取”和“写入”,根据实际进行设定即可。
9、返回到internet信息服务(IIS)管理器中在FTP站点下的“softe的FTP”上点鼠标右键选择启动来开启该FTP。
10、FTP的测试,一般来讲要对已经建立好的FTP进行设置的话,都是通过FTP站点的“属性”来完成的。在该FTP站点上点鼠标右键选择“属性”。
11、在FTP属性窗口中的“安全帐户”标签可以设置该FTP是否容许匿名登录,或者选择匿名登录使用的帐户。当然由于默认在该FTP上开启了匿名登录功能,所以在用户名处输入anonymous,密码随便填写一个EMAIL地址也是可以登录的。
如何在linux下开启FTP服务1 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:
#which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件
2 查看ftp 服务器状态
#service vsftpd status
3 启动ftp服务器
#service vsftpd start
4 重启ftp服务器
#service vsftpd restart
5 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0000:21 0000: LISTEN
如果看到以上信息,证明ftp服务已经开启。
6如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpdftpusers中注释掉root
#vi /etc/vsftpduser_list中也注释掉root
然后重新启动ftp服务。
7 vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 1921680101
Connected to 1921680101
220 (vsFTPd 205)
User (1921680101:(none)): frank
331 Please specify the password
Password:
500 OOPS: cannot change directory:/home/frank
Login failed
ftp> ls
500 OOPS: child died
Connection closed by remote host
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。
8 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetdd ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetdd/gssftp ,将 修改两项内容:
(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。
方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2,保存后退出
(b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右
(c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出分类: 电脑/网络 >> *** 作系统/系统故障
问题描述:
怎么登陆ftp服务器啊?
比如说ftptinup:tinup@china-tin/我怎么一直都登陆不上啊?以前都还可以的,现在就不知道怎么了,请问大虾
解析:
点
ftptinup:tinup@china-tin/
进去,写上你用户名密码。
或者用软件进,我这用的是LeapFTPexe
如果两种方法都进不去的话,看看网站能不能访问,服务器是否正常。
还有用户名密码写对了没有。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)