本节内容:
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