1![cmd[args]在本地机中执行交互shell、exit回到ftp环境,如!ls*zip 。
2¥ macro-ame[args]执行宏定义macro-name。
3account[password]提供登录远程系统成功后访问系统资源所需的补充口令 。
4appendlocal-file[remote-file]将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5ascii 使用ascii类型传输方式。
6bell每个命令执行完毕后计算机响铃一次。
7bin使用二进制文件传输方式。
8bye退出ftp会话过程。
9case在使用mget时,将远程主机文件名中的大写转为小写字母。
10cd remote-dir 进入远程主机目录。
11cdup进入远程主机目录的父目录。
12chmod modefile-name将远程主机文件file-name的存取方式设置为mode,如chmod 777 aout。
13close中断与远程服务器的ftp会话(与open对应)。
14cr使用asscii方式传输文件时,将回车换行转换为回行。
15delete remote-file删除远程主机文件。
16debug[debug-value]设置调试方式,显示发送至远程主机的每条命令,如debup3,若 设为0,表示取消debug。
17dir[remote-dir][local-file]显示远程主机目录,并将结果存入local-file。
18disconnection同close。
19form format将文件传输方式设置为format,缺省为file方式。
20getremote-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*o* zipoutfile。
31mget remote-files传输多个远程文件。
32mkdir dir-name 在远程主机中建一目录。
33mls remote-file local-file同nlist,但可指定多个文件名。
34mode[mode-name]将文件传输方式设置为mode-name,缺省为stream方式。
35modtime file-name显示远程主机文件的最后修改时间。
36mput local-file将多个文件传输至远程主机。
37newerfile-name如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38nlist[remote-dir][local-file]显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39nmap[inpatternoutpattern]设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如nmap¥1¥2 ¥3[¥1,¥2][¥2,¥3],则传输文件a1 a2a3时,文件名变为a1、a2,该命令特别适用于远程主机为非U-NIX机的情况。
40ntrans[inchars[outchars]设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
41open host[port]建立指定ftp服务器连接,可指定连接端口。
42passive进入被动传输方式。
43prompt设置多个文件传输时的交互提示。
44proxyftp-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。
50regetremote-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设置文件名唯一性存储,若文件存在,则在原文件后加后缀。
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,如typebinary,设置 二进制传输方式。
70umask[newmask]将远程服务器的缺省umask设置为newmask,如umask 3。
71useruser-name[password][account]向远程主机表明自己的身份,需要口令时,必须输入口令,如user anonymous my@email。
72verbose同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on
73[cmd]同help。快速构建FTP服务器,FTP服务器实现的基本功能是,下面就分几个步骤来搭建一个可以实现功能的简易FTP服务器。
1.安装FTP服务器
如果在安装系统时没有选择安装FTP服务器,可以通过Red Hat中的“添加/删除应用程序”进行安装。具体方法是,选择“主选单”→“”→“添加/删除应用程序”,在d出的界面中选中FTP服务器,单击“更新”即可。
如果无法确认是否安装了该软件,可以使用以下命令查看:
2.启动FTP服务器
套用Red Hat 90的预设范例直接启动VSFTP。
为vsftpd启动vsftpd: [确定]
3.在/var/ftp/pub目录下创建一个名为testtxt的文件
文件内容为“This is a test file”。
4.测试
使用FTP客户端登录到本地服务器,然后以匿名身份(anonymous)登录:
# ftp 127001Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): anonymous331 Please specify the passPassword:230 Login successful Have funRemote system type is UNIXUsing binary mode to transfer files
这样就成功地登录到FTP服务器。可以显示服务器目录列表如下:
ftp ls227 Entering Passive Mode (127,0,0,1,63,15)drwxr-xr-x 2 0 0 4096 Dec 04 01:35 pub226 y send OK
切换到pub目录下,并显示目录内容,可以找到刚才创建的文件testtxt:
ftp cd pub250 Directory successfully changedftp ls227 Entering Passive Mode (127,0,0,1,232,34)150 Here comes the directory listing-rw-r--r-- 1 0 0 21 Dec 04 01:35 testtxt226 Directory send OK
下载testtxt文件:
ftp mget testtxtmget testtxt y227 Entering Passive Mode (127,0,0,1,186,210)150 Opening BINARY mode data connection for testtxt (21 bytes)226 File send OK21 bytes received in 00108 secs (19 Kbytes/sec)
查看本机目录内容,可以看到testtxt已成功下载到本机。
ftp !lsa EIO_Binders initrd mnt proc tftpboot ylgtxtbin etc lib mymnt root tmpboot home lost+found myshare sbin usrdev id_dsaspub misc opt testtxt var
尝试上传名为ylgtxt的文件,可以看到请求被拒绝了。
ftp put ylgtxtlocal: ylgtxt remote: ylgtxt227 Entering Passive Mode (127,0,0,1,243,10)550 Permission dend
退出登录:
由测试可以看出,已经可以下载文件,但不能上传文件(也不能在服务器上创建目录和文件)。实际上这是一个专门提供下载服务的匿名FTP服务器。
从上面的步骤可以看出,并不需要做什么配置就可以完成一个简易FTP服务器的架设。这是因为Red Hat已经配置好一个缺省的FTP服务器。不过在实际应用中,大部分情况下这个简易的服务器并不能满足需求。
进一步配置FTP
下面将创建一个能够满足常用需求的FTP服务器。实际应用中,FTP服务器一般要同时提供和功能。此外,出于安全考虑,还需要有用户身份验证、用户权限设置及空间管理等。下面就来搭建这样一个FTP服务器。
1.创建欢迎语
如果希望使用者在进入目录时,能够看到欢迎语或对本目录的介绍,可以通过以下方法来实现。
确定/etc/vsftpd/vsftpdconf文件中dirmessage_enable=YES,默认情况下,Red Hat 90有此设置。接着,在目录中新增名为message的文件。本例在/home/ylg目录下创建一个message文件,其内容为“欢迎来到我的 FTP站点”。
2.更换FTP服务器的默认端口
将预设的21端口改为2121,这样做是基于安全的考虑。更改方法为,使用vi打开/etc/vsftpd/vsftpdconf:#vi /etc/vsftpd/vsftpdconf
在文件最后增加如下一行内容:
3.取消anonymous登录的功能
在vsftpdconf文件中找到如下一行,并将其值改为“NO”:anonymous_enable=YES
4.设定使用者不得更改目录
这样做的目的也是基于安全性的考虑。一般情况下,使用者的预设目录为/home/username。若是不希望使用者在登录后能够切换至上一层目录/home,则可通过以下设置来实现。在/etc/vsftpd/vsftpdconf文件中找到以下三行内容:
#chroot_list_enable=YES# (default follows)#chroot_list_file=/etc/vsftpdchroot_list
将其改为:
chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list
新增一个文件/etc/vsftpd/chroot_list,文件内容为两个用户名:
5.针对不同的使用者限制不同的速度
假设用户ylg所能使用的最高速度为500Kb/s,用户user1所能使用的最高速度为250Kb/s,可以通过以下方法设置。在/etc/vsftpd/vsftpdconf文件尾部新增以下一行:
增加一个名为/etc/vsftpd/userconf的目录:
在/etc/vsftpd/userconf下新增一个名为ylg的文件,其内容如下所示:
local_max_rate=500000
在/etc/vsftpd/userconf目录下新增一个名为user1的文件,其内容如下所示:
local_max_rate=250000
VSFTP对于速度的限制范围大概在80%到120%之间,也就是限制最高速度为100Kb/s,但实际的速度可能在80Kb/s到120Kb/s之间。如果频宽不足,数值会低于此限制。6.对于每一个联机用户,都以独立的进程来运行。一般情况下,在启动VSFTP时,只会看到一个名为vsftpd的进程在运行。但若是读者希望每一个联机用户都能以独立的进程来呈现,则可通过在/etc/vsftpd/vsftpdconf文件中增加以下一行来实现:
setproctitle_enable=YES
6.保存/etc/vsftpd/vsftpdconf文件,然后重新启动vsftpd:
7.测试刚创建的FTP服务器
以缺省方式登录会被拒绝,因为此时的默认端口号已经更改为2121,所以登录时需指定端口。
此时也不能再使用匿名方式登录:
# ftp 127001 2121Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): anonymous331 Please specify the passPassword:530 Login incorrectLogin failed
如果以用户ylg则可以成功登录(指定端口2121),并显示欢迎信息:
# ftp 127001 2121Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): ylg331 Please specify the passwordPassword:230-欢迎来到我的FTP站点230 Login successful Have funRemote system type is Using binary mode to transfer files
因为在设置中设定了不能切换目录,所以下列命令无法正确执行:
550 Failed to change y
再来测试一下上传和。首先下载服务器目录中的testtxt文件:
ftp get testtxtlocal: testtxt remote: testtxt227 Entering Passive Mode (127,0,0,1,243,215)150 Opening BINARY mode data connection for testtxt (21 bytes)226 File send OK21 bytes received in 000308 secs (67 Kbytes/sec)
可以通过!ls命令看到本机目录中已成功下载该文件。然后上传本机目录中的ylgtxt文件到服务器:
ftp put ylgtxtlocal: ylgtxt remote: ylgtxt227 Entering Passive Mode (127,0,0,1,133,248)150 Ok to send data226 File receive OK19 bytes sent in 00401 secs (046 Kbytes/sec)
用ls命令查看服务器目录,会发现该文件已成功上传。
为了测试不同连机用户使用的是不同进程,可以使用ps -ef指令1 open:与服务器相连接;
2 send(put):上传文件;
3 get:下载文件;
4 mget:下载多个文件;
5 cd:切换目录;
6 dir:查看当前目录下的文件;
7 del:删除文件;
8 bye:中断与服务器的连接。
Linux中测试搭建 FTP 服务器,刚安装完 vsftpd 测试登录时就提示“-bash: ftp: command not found”,说明需要安装FTP客户端。安装此ftp-017-511el6x86_64rpm包即可访问。FTP客户端安装配置下载FTP-017-511el6x86_64rpm,
下载地址有:>
上传ftp-017-511el6x86_64rpm文件到usr/local/src文件下,执行以下 *** 作
[root@localhost src]# rpm -ivh ftp-017-511el6x86_64rpm
在此 linux下输入FTP就不会报错了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)