redhat系统中ftp配置实例教程

发布时间:2020-10-06编辑:脚本学堂
本文介绍了redhat linux下ftp的安装与配置方法,ftp配置实例教程,需要的朋友参考下。

本节内容:
linux下ftp配置教程

文件传输协议(ftp:filetransfer protocol)使得主机间可以共享文件。

ftp 使用 tcp 生成一个虚拟连接用于控制信息,然后再生成一个单独的 tcp 连接用于数据传输。

控制连接使用类似 telnet 协议在主机间交换命令和消息。文件传输协议是tcp/ip网络上两台计算机传送文件的协议,ftp是在tcp/ip网络和internet上最早使用的协议之一,它属于网络协议组的应用层。ftp客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。ftp使用tcp作为传输层协议,而tftp则是udp协议。
 
linux下有ftp服务,ftp分为服务器端和客户端,某台机器作为ftp服务器,需要启动vsftpd服务,另一台机器作为客户端,需要安装有ftp或者lftp的rpm包。
 
首先,查看本机是否安装有ftp相关的rpm包
 

复制代码 代码示例:
[root@localhost packages]# rpm -qa|grep ftp 
report-plugin-ftp-0.18-7.el6.i686 
vsftpd-2.2.2-6.el6.i686 
report-config-ftp-0.18-7.el6.i686 
gvfs-obexftp-1.4.3-9.el6.i686 

如果没有安装,可以挂载redhat的安装包,在packages目录下查找
 

复制代码 代码示例:
[root@localhost nfs]# mount -t vboxsf redhat_share /home/wentasy/share 
[root@localhost nfs]# ll 
total 4 
-rw-rw-rw-. 1 root root 12 jul 21 10:22 file1 
[root@localhost nfs]# cd /home/wentasy/s 
share/       software/    sysctl.conf   
[root@localhost nfs]# cd /home/wentasy/share/ 
[root@localhost share]# ll 
total 2862360 
-rwxrwxrwx. 1 root root 2931056640 feb 23  2012 rhel-server-6.0-i386-dvd.iso 
 
[root@localhost share]# mount -o loop rhel-server-6.0-i386-dvd.iso /mnt 
[root@localhost share]# cd /mnt 
[root@localhost share]# cd packages 
[root@localhost packages]# find . -name "*ftp*"  
./ftp-0.17-51.1.el6.i686.rpm 
./gvfs-obexftp-1.4.3-9.el6.i686.rpm 
./lftp-4.0.9-1.el6.i686.rpm 
./report-config-ftp-0.18-7.el6.i686.rpm 
./report-plugin-ftp-0.18-7.el6.i686.rpm 
./tftp-0.49-5.1.el6.i686.rpm 
./tftp-server-0.49-5.1.el6.i686.rpm 
./vsftpd-2.2.2-6.el6.i686.rpm 

安装ftp-xxx.i686.rpm和lftp-xxxi686.rpm
 

复制代码 代码示例:
[root@localhost packages]# rpm -ivh ftp-0.17-51.1.el6.i686.rpm  
warning: ftp-0.17-51.1.el6.i686.rpm: header v3 rsa/sha256 signature, key id fd431d51: nokey 
preparing...########################################### [100%] 
   1:ftp    ########################################### [100%] 
[root@localhost packages]# rpm -ivh lftp-4.0.9-1.el6.i686.rpm  
warning: lftp-4.0.9-1.el6.i686.rpm: header v3 rsa/sha256 signature, key id fd431d51: nokey 
preparing...########################################### [100%] 
   1:lftp   ########################################### [100%] 

启动ftp服务器端的服务(服务名为vsftpd),客户端才可以访问。
 

复制代码 代码示例:
[root@localhost packages]# service vsftpd status 
vsftpd is stopped 
[root@localhost packages]# service vsftpd start 
starting vsftpd for vsftpd:[  ok  ] 

进入/var/ftp/pub/目录,并创建一个文件file
 

复制代码 代码示例:
[root@localhost packages]# cd /var/ftp/pub/ 
[root@localhost pub]# echo "hello" > file 
[root@localhost pub]# ll 
total 4 
-rw-r--r--. 1 root root 6 jul 21 10:40 file 

以匿名用户登录到服务器,默认访问目录是/var/ftp/,可以下载file到当前目录,注意,以匿名用户登录不能进行上传操作。
 

[wentasy@localhost test]$ lftp 169.254.140.100 
lftp 169.254.140.100:/> get file 
get: access failed: 550 failed to open file. 
lftp 169.254.140.100:/> ls 
drwxr-xr-x    2 00    4096 jul 21 02:40 pub 
lftp 169.254.140.100:/> cd pub 
lftp 169.254.140.100:/pub> pwd 
ftp://169.254.140.100/pub 
lftp 169.254.140.100:/pub> get file  
6 bytes transferred 
lftp 169.254.140.100:/pub> exit 
[wentasy@localhost test]$ ll 
total 4 
-rw-rw-r--. 1 wentasy wentasy 6 jul 21 10:40 file 
 
[wentasy@localhost test]$ echo "hello world" > upload 
[wentasy@localhost test]$ ll 
total 8 
-rw-rw-r--. 1 wentasy wentasy  6 jul 21 10:40 file 
-rw-rw-r--. 1 wentasy wentasy 12 jul 21 10:46 upload 
[wentasy@localhost test]$ lftp 169.254.140.100 
lftp 169.254.140.100:~> put /home/wentasy/test/upload . 
put: access failed: 550 permission denied. (upload)
put: /home/wentasy/test/.: is a directory 
lftp 169.254.140.100:/> put /home/wentasy/test/upload /root 
put: access failed: 550 permission denied. (upload) 
put: /root: permission denied 

以普通用户登录,注意,一般不建议采用root用户登录,而且生产环境也不会让你以root用户登录。
用普通用户登录有两种方式:
 

[wentasy@localhost test]$ lftp wentasy@169.254.140.100 
password:  
lftp wentasy@169.254.140.100:~> exit     
[wentasy@localhost test]$ lftp -u wentasy 169.254.140.100 
password:  
lftp wentasy@169.254.140.100:~> exit   

登录成功后,进行下载(get)、上传(put)、上传目录(mirror-r)、下载目录(mirror)操作。
 

lftp wentasy@169.254.140.100:~> put /home/wentasy/test/upload 
12 bytes transferred 
 
lftp wentasy@169.254.140.100:~/test> mirror /home/wentasy/test/ . 
total: 1 directory, 3 files, 0 symlinks 
lftp wentasy@169.254.140.100:~/test> mirror -r /home/wentasy/test2 . 
total: 1 directory, 3 files, 0 symlinks 
new: 3 files, 0 symlinks 
to be removed: 0 directories, 3 files, 0 symlinks 

ftp使用方法
ftp [-vdng] [用户名:密码@<fqdn>]|<IP地址>|
< 主机名> <ip地址>:需要连接的ftp服务器的ip地址fqdn
 
-v :显示远程服务器的所有响应信息
 
-d :使用调试方式访问ftp服务器
 
-n :限制ftp的自动登录,即当登录到ftp服务器时,不自动执行  .netrc文件
 
进入ftp中可以可以使用的命令详解
 
![命令[参数]]  :在ftp客户端中执行命令
 
open <fqdn>|<ip地址>:打开指定的ftp服务器
 
bye :退出ftp会话过程
 
cd 目录:切换ftp服务器的当前目录。
 
dir [目录][本地文件]:显示ftp服务器目录,并将结果存入本地文件
 
put 文件:将单个文件上传到fpt服务器
 
mput: 将多个文件上传到ftp服务器
 
get 文件:从ftp服务器下载单个文件到本地当前目录
 
mget 文件:从ftp服务器下载多个文件到本地当前目录
 
delete 文件名:ftp服务器上的文件
 
case :在使用mget时,将远程主机文件名中的大写转为小写字母
 
pwd :显示远程主机的当前工作目录。
 
rmdir 目录名:删除ftp服务器上的目录
 
lftp命令使用
 
lftp ftp://[用户名:密码@]<fqdn>|<ip地址> [:端口]
 
lftp ftp://<fqdn>|<ip 地址> -p port -u 用户名,密码
 
help:查看全部可操作的命令
 
ls : 显示ftp服务器文件列表
 
!ls: 显示本地文件列表
 
cd: 切换远端目录
 
!cd: 切换本地目录
 
get: 从ftp服务器下载单个文件到本地当前目录
 
mget: 从ftp服务器下载多个文件到本地当前目录
 
pget :使用多个线程来下载远端文件
 
put : 将单个文件上传到ftp服务器
 
mput :将多个文件上传到ftp服务器
 
mv :移动ftp服务器上的文件
 
rm: 删除ftp服务器上的文件 (使用参数 -r 递归删除)
 
mrm: 删除ftp服务器上的多个目录
 
mkdir :在ftp服务器上建立目录
 
pwd : 显示日前ftp服务器所有目录
 
lpwd: 显示本地目录
 
exit :退出ftp会话过程

参考资料
http://baike.baidu.com/view/103832.htm?fromid=369
http://www.cnblogs.com/hnrainll/archive/2011/02/16/1956538.html