千家信息网

搭建常用服务pure-ftpd服务

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,1.安装pureftp#cd /usr/local/src/#wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1
千家信息网最后更新 2025年12月01日搭建常用服务pure-ftpd服务

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

eth2 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

发现问题所在了,客户端这边的网卡显示的是eth2,那么和这个到底有没有关系呢?

于是,我又再开了一台虚拟机,去连接服务端的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


文件 服务 日志 问题 配置 客户 客户端 用户 目录 测试 命令 账号 错误 生成 信息 检查 登录 就是 网卡 提示 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融市场网络安全性风险 吉林专业软件开发服务应用 河南云网互联网络科技有限公司 东西湖国家网络安全永久会址 联想服务器硬盘怎么格式化 科技互联网大叔 工作内容类型 软件开发 嘉兴信息网络技术 网络技术和电商哪个好 云服务器运行uniapp 手机我的世界花雨庭服务器地址 嵌入式软件开发大脑门短发 实况2018ps4连不上服务器 c语言连接数据库实现登录 静安区个人数据库服务商前景 收费站网络安全会议 购买云服务器的 郑大一附院网络安全事件 苏州python软件开发报价 关于网上订餐数据库表设计 微信聊天记录微信服务器上有吗 我的世界端游服务器下载失败 数据库中怎么查看账号 捣蛋鬼RK的手游服务器编号 服务器管理器不能添加功能 软件开发实习生要出差吗 网络安全学习教程下载 山西招生网网络技术考试 医院骨科耗材中标公告数据库 软件设计与软件开发哪个更好
0