合 Linux搭建ftp服务工具之pure-ftpd
- 简介
- 安装部署
- 我的容器
- yum安装配置
- 编译安装
- 修改默认21端口
- 操作系统用户和虚拟用户 认证登陆
- 启用虚拟用户
- 启用操作系统用户
- 同时
- pure-ftp操作命令
- pure-ftpd.conf配置文件说明
- FileZilla配置
- FTP的2种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
- 主动模式
- 主动模式的问题
- 被动模式
- 被动模式的问题
- 总结
- 错误解决
- 报错:530 Login authentication failed
- 响应:553 Can't open that file: Permission denied
- 响应: 421 Too many connections (8) from this IP
- 总结
- 参考
简介
官网:https://www.pureftpd.org/project/pure-ftpd/
Pure-FTPd 是一个快速、高效、轻便、安全的 FTP 服务器,它不象其他流行的 FTP SERVER 软件。以安全和配置简单为设计目标,支持虚拟主机,IPV6,PAM 等功能。
其可以在多种类Unix操作系统中编译运行,包括Linux、OpenBSD、NetBSD、FreeBSD、DragonFly BSD、Solaris、Tru64、Darwin、Irix and HP-UX。PureFTPd还有Android移植版本。
它的功能相当多,也很实用。如果你正在寻找一个方便可靠的服务器,那么它是你最好的选择。
Pure-FTPd 是一款基于 GPL 协议的自由软件,是一款开源的 FTP 服务器软件。它是一款功能齐全,稳定可靠,高性能的 FTP 服务器软件。Pure-FTPd 支持多种认证方式,包括本地用户认证、虚拟用户认证、LDAP、MySQL、PostgreSQL 等多种认证方式。此外,它还支持多种数据传输模式,包括主动模式和被动模式,并支持 SSL/TLS 加密传输,保证了数据传输的安全性。
Pure-FTPd 同时还支持多个 FTP 用户和多个虚拟 FTP 主机。它还支持限制用户的访问权限和传输速率,以及自定义用户访问的根目录等功能。Pure-FTPd 还支持多种语言,包括英语、法语、德语、意大利语、西班牙语、俄语、阿拉伯语等多种语言。
Pure-FTPd 在各种操作系统上都可以运行,包括 Linux、FreeBSD、OpenBSD、NetBSD、Solaris、Mac OS X 等。它还有一个完整的文档和帮助文档,以及一个活跃的用户社区,可以帮助用户解决各种使用问题。Pure-FTPd 是一款非常出色的 FTP 服务器软件,适用于企业、机构、个人等各种场景,是一款非常值得使用的 FTP 服务器软件。
安装部署
我的容器
1 2 3 4 5 6 7 8 9 10 11 12 13 | docker rm -f lhrftp docker run -d --name lhrftp -h lhrftp \ -p 20:20 -p 21:21 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ -v /soft/:/soft/ \ --restart=always \ --privileged=true lhrbest/lhrftp:2.0 \ /usr/sbin/init docker exec -it lhrftp bash 使用filezilla客户端访问: root/lhr |
yum安装配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | docker rm -f lhrftp docker run -d --name lhrftp -h lhrftp \ -p 20:20 -p 21:21 \ -v /sys/fs/cgroup:/sys/fs/cgroup \ -v /soft/:/soft/ \ --restart=always \ --privileged=true lhrbest/lhrcentos76:9.2 \ /usr/sbin/init docker exec -it lhrftp bash yum install -y pure-ftpd -- 配置文件,主要是MinUID(不改也可以,会使用操作系统用户,若想启用虚拟用户,则必须配置PureDB) vi /etc/pure-ftpd/pure-ftpd.conf PureDB /etc/pure-ftpd/pureftpd.pdb MinUID 0 MaxClientsPerIP 200 NoAnonymous no ChrootEveryone yes -- 创建用户(-u -g后是系统用户账号或者id号,一般使用运行的nginx或apache的账号id ,-d是默认的家目录) mkdir -p /data/ftp useradd -u 1010 pure-ftp chown -R pure-ftp:pure-ftp /data/ftp pure-pw useradd lhr -u pure-ftp -d /data/ftp pure-pw mkdb pure-pw list pure-pw passwd lhr systemctl restart pure-ftpd systemctl enable pure-ftpd netstat -tulnp | grep pure ftp://192.168.66.35/ -- 本机测试 yum install -y lftp lftp lhr@127.0.0.1 ls ftp 121.37.13.33 ls 文件上传下载操作: 单个文件: 上传: put 文件名 下载: get 文件名 多个文件: 上传多个文件(支持通配符):mput 文件名1 文件名2 下载多个文件(支持通配符):mget 文件名1 文件名2 整个目录: 上传文件夹:mirror -R 文件夹名 下载文件夹:mirror 下载文件夹存放到本地目录的位置 |
编译安装
访问Pure-ftp官网“https://download.pureftpd.org/pub/pure-ftpd/releases/”,进行源码包下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | yum install -y make gcc gcc-c++ build-essential openssl openssl-libs openssl-devel openssl-static wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.51.tar.gz cd /soft/ tar zxvf pure-ftpd-1.0.51.tar.gz cd pure-ftpd-1.0.51 ./configure \ --prefix=/usr/local/pureftpd \ --without-inetd \ --with-altlog \ --with-puredb \ --with-throttling \ --with-peruserlimits \ --with-tls make && make install -- vi /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 10000 8 AnonymousCanCreateDirs no MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 0 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no #FTP服务器上同名文件是否覆盖的配置,将AutoRename 改为no,修改完重启服务生效。 AnonymousCantUpload no PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid MaxDiskUsage 99 CustomerProof yes -- 启动 /usr/local/pureftpd/bin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf |
修改默认21端口
默认使用21端口:
1 2 3 4 | [root@lhrdb pure-ftpd]# netstat -tulnp | grep pure tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2838731/pure-ftpd ( tcp6 0 0 :::21 :::* LISTEN 2838731/pure-ftpd ( [root@lhrdb pure-ftpd]# |
在 Pure-FTPd 中,要修改默认端口,需要编辑 Pure-FTPd 配置文件。默认情况下,Pure-FTPd 使用的是 21 端口。以下是修改默认端口的步骤:
打开 Pure-FTPd 配置文件
/etc/pure-ftpd/pure-ftpd.conf
。找到并取消注释以下行:
1# Bind 127.0.0.1,21然后将
127.0.0.1,21
修改为你想要使用的 IP 地址和端口号。例如:1Bind 0.0.0.0,2121这里将 Pure-FTPd 绑定在 0.0.0.0 地址的 2121 端口上。
保存配置文件,并重启 Pure-FTPd 服务。
在 CentOS 系统上,可以使用以下命令重启 Pure-FTPd 服务:
1systemctl restart pure-ftpd在其他系统上,可以使用相应的命令重启 Pure-FTPd 服务。
操作系统用户和虚拟用户 认证登陆
启用虚拟用户
要检查Pure-FTPd是否启用了虚拟用户,可以检查Pure-FTPd的配置文件。在默认情况下,Pure-FTPd的配置文件位于/etc/pure-ftpd/pure-ftpd.conf
。打开此文件并搜索“PureDB ”选项。如果找到以下行:
1 2 3 4 | [root@lhrdb pure-ftpd]# cat /etc/pure-ftpd/pure-ftpd.conf | grep PureDB # PureDB user database (see README.Virtual-Users) PureDB /etc/pure-ftpd/pureftpd.pdb [root@lhrdb pure-ftpd]# |
那么这意味着虚拟用户已经启用。
若注释掉改行,那么表示禁用虚拟用户,此时只能使用操作系统用户。
启用操作系统用户
在 Pure-FTPd 中,如果你想使用操作系统用户登录,需要按照以下步骤进行配置:
打开 Pure-FTPd 配置文件,找到并取消注释以下行:
12UnixAuthentication yesPAMAuthentication yes确认系统上已经存在该用户,并且该用户的 shell 是有效的。
你可以使用以下命令来确认用户是否存在:
1getent passwd username其中
username
是你要确认的用户名称。使用该用户的用户名和密码登录 Pure-FTPd。
注意,使用操作系统用户登录 Pure-FTPd 时,用户名是系统用户名,密码是该用户在系统上设置的密码。
同时
若打开了UnixAuthentication和PAMAuthentication参数,同时也配置了PureDB参数,那么则表示启用虚拟用户。即只要配置了PureDB参数,就表示启用虚拟用户,否则使用操作系统用户认证。
pure-ftp操作命令
查看pure-ftpd安装路径
1 | which pure-ftpd |
启动pure-ftp
1 | /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf |
创建系统用户