• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux下PureFtpd的基本安装使用与超时问题解决

    基本的安装使用方法

    首先安装之前最好用netstat -ntl来查看ftp默认的21端口是不是已经被占用了,同时也可以用ps -ef 指令查看开启了哪些服务,看一下有没有类似sftp或者是vsftp的服务,如果开启,用killall sftp指令把这个服务kill掉
    1.下载pureftp,我下载的是pure-ftpd-1.0.30
    指令:

    复制代码
    代码如下:
    wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.bz2

    2.解压:
    复制代码
    代码如下:
    tar -xvjf pure-ftpd-1.0.30.tar.bz2

    进入到解压后目录:
    复制代码
    代码如下:
    cd pure-ftpd-1.0.30

    3.编译方式,推荐使用全部安装:
    复制代码
    代码如下:
    ./configure –prefix=/usr/local/pure-ftpd/ –with-
    language=simplified-chinese –with-everything

    4.安装:
    复制代码
    代码如下:
    make make check make install

    5.建立相应的安装目录:
    复制代码
    代码如下:
    mkdir /usr/local/pure-ftpd/etc

    6.把配置文件和主要执行文件拷到对应的文件夹下面:

    复制代码
    代码如下:

    cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/
    cp configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
    chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl

     
    7.定制一下系统的环境变量:

    复制代码
    代码如下:

    cd /usr/local/bin/
    ln -s /usr/local/pure-ftpd/bin/* .
    ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
    ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/

    8.启动pureftp服务器:

    复制代码
    代码如下:
    pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf

    屏幕上一般显示如下信息:
    Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -b -B -C20 -d -e -fnone -H -I15 -L2000:8 -M -m4 -p45000:50000 -q1:10 -s -t200 -U133:022 -u100 -r -Oclf:/var/log/pureftpd.log -k99 -Z
    此时可以用在命令行窗口下telnet ip地址 21的方式探测一下这个端口是不是通的
    9.pureftp一般需要不用默认的root用户进行操作,一般会另外创建用户名和组,用虚拟用户进行登录
    创建组:
    复制代码
    代码如下:
    groupadd ftpgroup

    创建用户:
    复制代码
    代码如下:
    useradd -g ftpgroup -d /dev/null -s /etc ftpuser

    创建完成以后可以用cat /etc/passwd和cat /etc/group来查看组和用户是否已经创建好了
    10.添加ftp虚拟用户

    复制代码
    代码如下:
    ure-pw useradd test -u ftpuser -d /home/ftpusers/test

    如果添加完成以后想要删除可以使用pure-pw userdel test这条指令
    想要修改密码可以使用pure-pw passwd test这条指令
    11.查看用户信息

    复制代码
    代码如下:
    pure-pw show test

    12.生成数据库文件

    复制代码
    代码如下:
    pure-pw mkdb

    13.一定要注意修改配置文件,因为很多配置文件数据库的默认安装位置并不是实际位置,这样就会造成每次登
    陆的时候都找不到密码,ftp一直显示passwd required,所以安装好以后一定要修改配置文件,尤其是粉红色的
    部位,注意修改
    打开配置文件:
    复制代码
    代码如下:
    vi /usr/local/pure-ftpd/etc/pure-ftpd.conf

     
    ChrootEveryone              yes         # 启用chroot
    BrokenClientsCompatibility  yes         # 兼容不同客户端
    Daemonize                   yes         # 后台运行
    MaxClientsPerIP             20          # 每个ip最大连接数
    VerboseLog                  yes         # 记录日志
    DisplayDotFiles             no          # 显示隐藏文件
    AnonymousOnly               no          # 只允许匿名用户访问
    NoAnonymous                 yes         # 不允许匿名用户连接
    SyslogFacility              none        # 不将日志在syslog日志中显示
    DontResolve                 yes         # 不进行客户端DNS解析
    MaxIdleTime                 15          # 最大空闲时间
    LimitRecursion              2000 8      # 浏览限制,文件2000,目录8层
    AnonymousCanCreateDirs      no          # 匿名用户可以创建目录
    MaxLoad                     4           # 超出负载后禁止下载
    PassivePortRange          45000 50000   # 被动模式端口范围
    #AnonymousRatio                1 10     # 匿名用户上传/下载比率
    UserRatio                 1 10          # 所有用户上传/下载比率
    AntiWarez                   yes         # 禁止下载匿名用户上传但未经验证的文件
    #AnonymousBandwidth            200      # 匿名用户带宽限制(KB)
    UserBandwidth               8           # 所有用户最大带宽(KB)
    Umask                       133:022     # 创建文件/目录默认掩码
    MinUID                      100         # 最大UID限制
    AllowUserFXP                no          # 仅运行用户进行FXP传输
    AllowAnonymousFXP           no          # 对匿名用户和非匿名用户允许进行匿名 FXP 传输
    ProhibitDotFilesWrite       no          # 不能删除/写入隐藏文件
    ProhibitDotFilesRead        no          # 禁止读取隐藏文件
    AutoRename                  yes         # 有同名文件时自动重新命名
    AnonymousCantUpload         yes         # 不允许匿名用户上传文件
    AltLog                     clf:/var/log/pureftpd.log                # clf格式日志文件位置
    PureDB                     /usr/local/pure-ftpd/etc/pureftpd.pdb        # 用户数据库文件
    MaxDiskUsage               99           # 当磁盘使用量打到99%时禁止上传
    CreateHomeDir              yes          # 如果虚拟用户的目录不存在则自动创建
    CustomerProof              yes          # 防止命令误操作
     
    PureDB                     /usr/local/pure-ftpd/etc/pureftpd.pdb这个地方一定要记得修改,不然会一直
    登不上去,修改完成以后可以再次执行
    14.重新生成数据库文件
    复制代码
    代码如下:
    pure-pw mkdb

    15.先把之前的pureftp服务kill掉
    复制代码
    代码如下:
    killall pure-ftpd

    16.然后重新启动
    复制代码
    代码如下:
    /usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf

    17.此时一般已经可以成功登录,但是有可能还是无法上传到服务器上去,此时一般是权限问题,
    登录到ftp的家目录下
    复制代码
    代码如下:
    cd /home/ftpusers/test

    修改test文件夹下的文件权限
    复制代码
    代码如下:
    chown ftpuser:ftpgroup wenjian1

    再尝试重新连接以后上传。

    连接超时问题解决纪实
    问题
    最近在服务器安装了pureftpd提供给公司同事上传文件用。在交付前使用FileZilla测试没有问题,但是同事反映在Linux下ftp不能使用。
    自己在Linux下测试了一下,一直卡在Entering Passive Mode,最后超时。

    原因

    而在windows下使用FileZilla测试并没有问题。仔细看了下FileZilla的日志,发现有一行

    想到pureftpd用的是云主机,而云主机的网卡只绑定有内网IP,外网IP应该是绑定在路由了。猜测ftp客户端使用被动模式连接pureftpd的时候,pureftpd返回了一个内网IP。
    通过wireshark抓包发现:

    可以知道服务器的确返回了一个内网地址。
    方法
    那能不能强制pureftpd返回外网IP呢。通过查看pureftpd文档,发现在pureftpd.conf加入:

    复制代码
    代码如下:
    ForcePassiveIP 1.1.1.1

    1.1.1.1为pureftpd外网ip。重启之后问题解决。

    上一篇:Linux系统下以RPM方式如何安装mysql-5.7.9
    下一篇:详解Linux系统下PXE服务器的部署过程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux下PureFtpd的基本安装使用与超时问题解决 Linux,下,PureFtpd,的,基本,