前言:

在之前交换平台的开发中,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));

我的公众号:

linux下的FTP安装及调优的更多相关文章

  1. linux下jvm优化、tomcat调优

    系统环境:jdk1.8,apache-tomcat-8.5.35 一.jvm优化 进入 bin/catalina.sh,修改JAVA_OPTS配置: JAVA_OPTS="-server - ...

  2. Linux下部署FTP服务器

    Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...

  3. linux 下搭建 ftp

    最近为了方便目标板与PC机上LINUX之间的通讯,就在LINUX搭建了FTP,工作不难,写个总结.主要经过以下几个步骤: 1.检查是否安装了vsftpd服务器 可以用rpm -q vsftpd命令来查 ...

  4. 如何在linux下开启FTP服务

    如何在linux下开启FTP服务 1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:   #which vsftpd   如果看到有vsftpd的目录说明服务器已经安装了ftp软件 2. ...

  5. Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...

  6. linux下源码安装netcat

    linux下源码安装netcat http://blog.chinaunix.net/uid-20783755-id-4211230.html 1,下载netcat源码,netcat-0.7.1-13 ...

  7. ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装

    http://www.oschina.net/question/565065_81231      因为Linux具有稳定,功能强大等特性,因此常常被用来做为企业内部的服务器,我们的很多用户也是将Ar ...

  8. Linux 下编译并安装配置 Qt 4.53全过程

    最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发.考虑到程序的跨平台可移植性,最终选择使用 Qt 开发.相对来说,国内关于 Qt 相关文档并不算很多.作者将 Linux 下编译并安 ...

  9. linux下vsftpd的安装及配置使用详细步骤(推荐)

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BS ...

随机推荐

  1. 关于 win32 下磁盘的遍历方法

    最近要写个在线专杀的东东,虽然是专杀(本来只要清除几个特定的文件和杀几个特定的进程,然后把用户的注册表恢复正常,很多病毒木马最喜欢干的一件事情就是写 映像劫持 然后机器一重启,安全相关的软件全部玩完了 ...

  2. github 上传更新代码(最简单的方法)

    1.首先你需要一个github账号,还没有的朋友先去注册一个吧! GitHub地址:https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可 ...

  3. laravel配置不同环境的配置文件

    //在入口bootstrap/App.php中 $env = $app->detectEnvironment( function () use ($app) { $uname = php_una ...

  4. C#使用 SSL Socket 建立 Client 与 Server 连接

    当 Client 与 Server 需要建立一个沟通的管道时可以使用 Socket 的方式建立一个信道,但是使用单纯的 Socket 联机信道可能会担心传输数据的过程中可能被截取修改因而不够安全,为了 ...

  5. 【Go】使用压缩文件优化io (二)

    原文链接: https://blog.thinkeridea.com/201907/go/compress_file_io_optimization2.html 上一篇文章<使用压缩文件优化io ...

  6. 一篇文章让你理解Ceph的三种存储接口(块设备、文件系统、对象存储)

    “Ceph是一个开源的.统一的.分布式的存储系统”,这是我们宣传Ceph时常说的一句话,其中“统一”是说Ceph可以一套存储系统同时提供块设备存储.文件系统存储和对象存储三种存储功能.一听这句话,具有 ...

  7. Flink中的状态与容错

    1.概述 Flink支持有状态计算,根据支持得不同状态类型,分别有Keyed State和Operator State.针对状态数据得持久化,Flink提供了Checkpoint机制处理:针对状态数据 ...

  8. 第七章 手动部署Fisco Bcos 区块链并完成新增群组,在原有群组中新增机构

    鉴于笔者以前各大博客教程都有很多人提问,早期建立一个技术交流群,里面技术体系可能比较杂,想了解相关区块链开发,技术提问,请加QQ群:538327407 目标 1.新增群组搭建完整联盟链 2.根据群组新 ...

  9. SpringBoot使用Docker快速部署项目

    1.简介 建议阅读本文最好对Dokcer有一些了解 首先我们先了解一下Docker是什么 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器 ...

  10. Go - 循环

    目录 概述 循环 array 循环 slice 循环 map break continue goto switch 推荐阅读 概述 前几篇文章分享了 array 数组.slice 切片.map 集合, ...