码迷,mamicode.com
首页 > 其他好文 > 详细

搭建常用服务pure-ftpd服务

时间:2016-12-25 19:01:57      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:日常   搭建   服务   

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” 博客,转载请与作者联系!

搭建常用服务pure-ftpd服务

标签:日常   搭建   服务   

原文地址:http://11852333.blog.51cto.com/11842333/1885897

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!