zoukankan      html  css  js  c++  java
  • linux下的FTP安装及调优

    前言:

    在之前交换平台的开发中,FTP的各种操作算是核心功能点。

    在FTP的开发中,遇到了不少坑。

    如FTP需要设置被动模式,否则10M以上的包可能会上传失败。

    如FTP需要设置囚牢模式,否则访问的文件夹可能会调到根目录去,不在配置的目录中,可能导致访问错误、权限不够等问题。

    以下为正确的打开方法,以后linux下安装FTP,轻轻松松。

    同事们找你优化FTP,也能得心应手。


    1.1 FTP安装

    我的本机环境是centOs7.

    可以使用uname -a查看你的系统信息

        uname -a
        
    得到如下信息
    >Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

    Linux下我们选择vsftp

        yum  install  -y  vsftpd
        
    (非必要)FTP客户端安装,可以在服务器上使用客户端测试

        yum  install  -y  ftp

    (非必要)FTP 工具

        yum  install  -y  lftp
        
    重启FTP

        service   vsftpd  restart
        
    自启动

        chkconfig  vsftpd  on


    1.2 设置访问模式

    编辑配置文件

        vim /etc/vsftpd/vsftpd.conf

    设置囚牢模式

        #囚牢模式
        chroot_local_user=YSE#是否将所有用户限制在主目录,YES为启用 NO禁用.
        
    > (该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
     
    注意事项:

    在CentOS7下配置chroot_local_user=yes ,配置完成后发现无法访问,远程主机关闭连接。

    解决方案如下:

    方法1:加一条配置

        vim /etc/vsftpd/vsftpd.conf
        
        allow_writeable_chroot=YES
        
    方法2、重新给权限

        chmod 755 /home/ftp_yaoshen
     
    1.3 创建FTP 账号

    1、添加linux用户

        useradd  -s  /sbin/nologin  ftp_yaoshen
        
    2、重置密码

        passwd ftp_yaoshen

    设置密码yaomaomao

    3、重启FTP

        service vsftpd restart


    4、如果无权限,可能是没有赋予执行权限,

        cd /etc/init.d
        
        chmod +x vsftpd

    赋权成功后再次执行。


    5、用/sbin/nologin 方式添加用户,centos7下可能会登陆不上,解决方案:

        usermod -s /bin/bash ftp_coperate

    1.4 FTP参数调优

    编辑配置文件

        vi /etc/vsfptd/vsfptd.conf

    在conf文件中添加如下参数:

        max_clients=10240 #最大连接数,不限制改为0

        max_per_ip=1000  #单IP最大连接数,不限制改为0

    需要重启ftp

        service vsftpd restart
     
    注:有需要限制上传速率的可以设置

        anon_max_rate=50000 #限制匿名用户50KB
        local_max_rate=200000 #限制本地用户200KB

    1.5 FTP客户端访问调优
    1.5.1 JAVA客户端
    引用API org.apache.commons.net.ftp.FTPClient
     
        //设置被动模式(FTP客户端上传、下载容易失败)
        ftpClient.enterLocalPassiveMode();
         
        // 在操作FTP文件时,改变到文件当前目录
        ftpClient.changeWorkingDirectory(new String(remoteFolder.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));   


    我的公众号:




  • 相关阅读:
    三个问题
    2014-7
    2014-5
    2014-2
    2014-1
    2013-11
    mysql中对表操作----为所有列插入数据
    Redis做消息队列
    收集Nginx-access,Nginx-error日志
    .Nginx安装filebeat收集日志:
  • 原文地址:https://www.cnblogs.com/yaomaomao/p/11246725.html
Copyright © 2011-2022 走看看