FTP :File Transfer Protocol(文件传输协议),用于Internet上的控制文件的双向传输。主要是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。

本文介绍一款FTP服务软件--pure-ftpd。


1、下载安装pure-ftpd

[root@tpp ~]# cd /usr/local/src/
[root@tpp src]# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
[root@tpp src]# tar -jxf pure-ftpd-1.0.42.tar.bz2
[root@tpp src]# cd pure-ftpd-1.0.42
[root@tpp pure-ftpd-1.0.42]# ./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits  \
--with-tls
[root@tpp pure-ftpd-1.0.42]# make
[root@tpp pure-ftpd-1.0.42]# make install


2、配置pure-ftpd

[root@tpp pure-ftpd-1.0.42]# mkdir -p /usr/local/pureftpd/etc/
[root@tpp pure-ftpd-1.0.42]# cd configuration-file/
[root@tpp configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
[root@tpp configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl
[root@tpp configuration-file]# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl

在启动pure-ftpd之前需要修改配置文件/usr/local/pureftpd/etc/pure-ftpd.conf,可以用下面的全部替代原来文件。

[root@tpp configuration-file]# > /usr/local/pureftpd/etc/pure-ftpd.conf   //清空文件
[root@tpp configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf  
ChrootEveryone                    yes
BrokenClientsCompatibility        no
MaxClientsNumber                  50
Daemonize                         yes
MaxClientsPerIP                   8
VerboseLog                        no
DisplayDotFiles                   yes
AnonymousOnly                     no
NoAnonymous                       no
SyslogFacility                    ftp
DontResolve                       yes
MaxIdleTime                       15
PureDB                            /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion                    3136 8
AnonymousCanCreateDirs            no
MaxLoad                           4
AntiWarez                         yes
Umask                             133:022
MinUID                            100
AllowUserFXP                      no
AllowAnonymousFXP                 no
ProhibitDotFilesWrite             no
ProhibitDotFilesRead              no
AutoRename                        no
AnonymousCantUpload               no
PIDFile                           /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage                      99
CustomerProof                     yes

注:其实只是标红的地方与源文件不同而已。/usr/local/pureftpd/etc/pureftpd.pdb是存放用户和密码的密码库文件。



3、建立账户

[root@tpp configuration-file]# cd
[root@tpp ~]# mkdir /tmp/ftp                 //创建FTP的家目录
[root@tpp ~]# useradd user3                  //创建系统用户
[root@tpp ~]# chown -R user3:user3 /tmp/ftp/                    
[root@tpp ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uuser3 -d /tmp/ftp
Password:
Enter it again:

注:其中,-u将虚拟用户ftp_user1与系统用户user3关联在一起,也就是说使用ftp_user1账号登陆ftp后,会以user3的身份来读取文件或下载文件。-d 后边的目录为ftp_user1账户的家目录,这样可以使ftp_user1只能访问其家目录/tmp/ftp。

接着就是创建用户信息数据库文件(每进行上一步都要执行这步):

[root@tpp ~]# /usr/local/pureftpd/bin/pure-pw mkdb

启动pure-ftpd:

[root@tpp ~]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

wKiom1X0FGrTXZdyAAF3n4Yr0hM848.jpg

注:我们也可以列出当前账户以及删除某个账号,如下:

[root@tpp ~]# /usr/local/pureftpd/bin/pure-pw list                  //列出当前账号
[root@tpp ~]# /usr/local/pureftpd/bin/pure-pw userdel ftp_user1     //删除ftp_user1账户



4、测试pure-ftpd

登入另外一台客户端,然后用lftp工具远程连接服务端

[root@tpp ~]# yum install -y lftp
[root@tpp ~]# lftp ftp_user1@192.168.0.109
口令:
lftp ftp_user1@192.168.0.109:~> ls
drwxr-xr-x    2 503        user3            4096 Sep 13 03:36 .
drwxr-xr-x    2 503        user3            4096 Sep 13 03:36 ..

创建一个文件

lftp ftp_user1@192.168.0.109:/> mkdir 111
mkdir 成功, 建立 `111'

接着在服务端可以查看到客户端远程创建的目录

wKioL1X0Gw2jbmOBAACLH1661n4477.jpg

注:客户端是不能创建文件的,我们可以通过?来查看lftp工具有什么命令:

wKioL1X0HJLw0saVAATBqpc717A515.jpg



5、lftp工具常用的命令使用

(1)下载

在服务端/tmp/ftp/目录下创建一个文件1.txt

[root@tpp ftp]# touch 1.txt
[root@tpp ftp]# echo ertyuiofghjkdfghjrtyuidfg > 1.txt

然后在客户端下载

lftp ftp_user1@192.168.0.109:/> get 1.txt
26 bytes transferred
lftp ftp_user1@192.168.0.109:/> quit
[root@tpp ~]# ls
1.txt  anaconda-ks.cfg  install.log  install.log.syslog
[root@tpp ~]# cat 1.txt
ertyuiofghjkdfghjrtyuidfg

可以查看到下载成功了。


(2)上传

在客户端当前目录下创建个文件2.txt

[root@tpp ~]# vim 2.txt
123344cdiafiua
1234rcdabkjvav

登入到FTP

[root@tpp ~]# lftp ftp_user1@192.168.0.109
lftp ftp_user1@192.168.0.109:~> put 2.txt          //上传文件

在服务端/tmp/ftp/目录下可以查看到客户端上传的文件

wKiom1X0HjiCXg-BAACAIoGttvA901.jpg


6、后记:

当然我们也可以通过Windows客户端的浏览器直接输入地址就可以访问ftp服务器:

wKiom1X0IY7SpnF4AADEWZBHwg0688.jpg

wKioL1X0I7_Aaw5pAADBJFbp2Zs128.jpg