1.安装pureftp
#cd /usr/local/src/
#wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
2.安装pure-ftpd
#tar -jxvf pure-ftpd-1.0.42.tar.bz2
#cd pure-ftpd-1.0.42
#./configure --prefix=/usr/local/pure-ftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
#echo $?
#make
#make install
3.配置pure-ftpd
#cd configuration-file
#mkdir -pv /usr/local/pure-ftpd/etc
#cp pure-ftpd.conf /usr/local/pure-ftpd/etc/pure-ftpd.conf //配置文件
#cp pure-config.pl /usr/local/pure-ftpd/sbin/pure-config.pl //启动文件
#chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl //修改权限
在启动pure-ftpd之前需要修改配置文件pure-ftpd.conf,
配置文件内容如下:
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
MaxClientsCompatibility 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
PureDB /usr/local/pure-ftpd/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/pure-ftpd/var/run/pure-ftpd.pid
MaxDiskUsage 99
CustomerProof yes
配置千万不要弄错了,我之前自己打进去的,所以出现一些错字,把pdb文件写成了conf文件,所以一直连接不上,所以不要粗心哦
4.启动pure-ftpd
#cd /usr/local/pure-ftpd/
#./sbin/pure-config.pl ./etc/pure-ftpd.conf
启动成功会显示下面信息:
Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pure-ftpd/etc/pureftpd.conf -m4 -s -U133:022 -u100 -g/usr/local/pure-ftpd/var/run/pure-ftpd.pid -k99 -Z
重启:killall pure-ftpd
/usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
也可以自己定义PATH环境变量,在/etc/profile.d/path.sh文件中定义:
[root@jinge ~]# pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pure-ftpd/etc/pureftpd.conf -m4 -s -U133:022 -u100 -g/usr/local/pure-ftpd/var/run/pure-ftpd.pid -k99 -Z
5.建立账号
pure-ftpd使用的账号并非Linux系统账号,而是虚拟账号,因为这样做比较安全
#mkdir /jin/www
#useradd www //创建用户www
#chown -R www:www /jin/www/ //修改用户属主和属组
#usr/local/pure-ftpd/bin/pure-pw useradd ftp_user1 -uwww -d /jin/www/
(添加用户命令:pure-pw
登录FTP的用户:ftp_user1
-u指定的用户为:系统用户
-d后面的目录为:ftp_user1账户的家目录,ftp_user1只能访问其家目录/jin/www/)
#/usr/local/pure-ftpd/bin/pure-pw mkdb //创建用户信息数据库文件
#/usr/local/pure-ftpd/bin/pure-pw list //列出当前的ftp账号
#/usr/local/pure-ftpd/bin/pure-pw userdel ftp_user1 //删除账号
6.测试pure-ftpd
远程连接测试(用另一台机器做测试):
服务端ip(本机)为192.168.226.3
客户端ip(远程)为192.168.226.5
在客户端机器中,测试需要使用到的工具是:lftp
安装lftp:yum install -y lftp
测试:lftp ftp_user1@192.168.226.3
查看日志:cat /var/log/messages
查看lftp中的命令:?
下载文件到当前目录:get 11.txt
在客户端中创建文件,上传到服务端中:
客户端:
服务端:
问题1:
这时候如果登录ftp会提示
421 Unable to read the indexed puredb file (or old format detected) - Try pure-pw mkdb
执行
#/usr/local/pureftpd/bin/pure-pw mkdb
再登录,一切正常。执行这条命令是让pureftpd根据/usr/loca/pureftpd/etc/pureftpd.passwd(这个文件是在执行pure-pw useradd的时候自动生成的)生成/usr/local/pureftpd/etc/pureftpd.pdb
到这里服务器已经可以正常运行了
再用pure-pw useradd添加另一个ftp帐号登录,又提示“验证失败”,重启pureftpd也不行,郁闷了好一会后找到原因:
执行pure-pw的命令后只是更改了pureftpd.passwd文件,必须执行pure-pw mkdb重新生成pureftpd.pdb才生效。
我说在刚接手的服务器上添加帐号不行呢,就是因为没有执行pure-pw mkdb
如果出现错误,登录不上,应该先去查看一下日志文件,看是什么错误: cat /var/log/messages
问题2:
我用两台虚拟机做实验,
服务端:一台搭建了pure-ftpd(192.168.226.4)服务,
客户端:另一台没有搭建(192.168.226.6)该服务,
(1)在搭建了pure-ftpd服务的那台虚拟机中,配置完配置文件后启动
(2)没搭建pure-ftpd服务的那台虚拟机用于连接,连接需要用到的工具为lftp,如果没有yum安装一下,在该台虚拟机上连接,lftp ftp_user1@192.168.226.4
进入之后,ls一下,一直说连接不上,那是什么问题呢?
故障检查:
1.首先我在服务端中,查看cat /var/log/messages日志文件,看提示什么错误,不知道是什么问题,该日志中没有pure-ftpd的日志(后面才知道)
2.检查日志文件无果之后,我就去检查配置文件有没有配置错误,一个一个的检查,不过我重点检查的是.pdb文件有没有生成,还有.pid文件有没有生成
3.查看了配置文件之后,我就在命令行上输入
cat /usr/local/pure-ftpd/etc/pureftpd.pdb 如果有,那就没事
cat /usr/local/pure-ftpd/var/run/pure-ftpd.pid //回车之后说命令找不到,那么就是没有这个文件啦,终于找到问题所在了,那么该如何去解决这个问题呢?
解决方法:我的方法就是直接创建/usr/local/pure-ftpd/var/run/pure-ftpd.pid
本来是没有var目录和run目录的,所以你也要先创建目录
4.重启pure-ftpd服务
killall pure-ftpd //先杀死
/usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf //启动
5.在客户端上测试
测试发现,还是有错
6.查看日志cat /var/log/messages
发现错误之后,查看日志,之前是没有pure-ftpd的日志的,因为没有生成pid文件,所以没有日志。
现在查看日志,cat /var/log/messages,出来pure-ftpd的日志了,错误信息如下:
Dec 25 17:38:58 localhost pure-ftpd: (?@?) [ERROR] Unable to start a standalone server: [Address already in use]
Dec 25 17:41:08 localhost kernel: eth0: link down
Dec 25 17:41:20 localhost kernel: eth0: link up
Dec 25 17:41:34 localhost kernel: eth0: link down
Dec 25 17:41:44 localhost kernel: eth0: link up
Dec 25 17:46:20 localhost kernel: eth0: link down
Dec 25 17:46:30 localhost kernel: eth0: link up
发现这些信息之后,就开始排查了,上网查没查到,之后就自己去尝试,它说eth0有问题,又说地址被占用,那么我想可能是网络的问题,于是我就在服务端和客户端各输入ifconfig,得到如下信息:
服务端:
[root@localhost pure-ftpd]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:E4:CC:70
inet addr:192.168.226.4 Bcast:192.168.226.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee4:cc70/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7030 errors:0 dropped:0 overruns:0 frame:0
TX packets:5759 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1163332 (1.1 MiB) TX bytes:1440044 (1.3 MiB)
Interrupt:19 Base address:0x2000
客户端:
[root@localhost opt]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:0C:29:7B:C6:51
inet addr:192.168.226.6 Bcast:192.168.226.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe7b:c651/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3488 errors:0 dropped:0 overruns:0 frame:0
TX packets:2810 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1079817 (1.0 MiB) TX bytes:363778 (355.2 KiB)
Interrupt:19 Base address:0x2000
发现问题所在了,客户端这边的网卡显示的是eth1,那么和这个到底有没有关系呢?
于是,我又再开了一台虚拟机,去连接服务端的pure-ftpd,果然是这个问题,在这台虚拟机上显示的网卡为eth0,所以,我觉得应该是网卡不匹配的原因,到此问题解决啦。
新开那台虚拟机:
[root@jinge ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A4:00:54
inet addr:192.168.226.3 Bcast:192.168.226.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea4:54/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5374 (5.2 KiB) TX bytes:6162 (6.0 KiB)
Interrupt:19 Base address:0x2000
本文出自 “11842333” 博客,转载请与作者联系!
原文地址:http://11852333.blog.51cto.com/11842333/1885897