server:192.168.109.137

client:192.168.109.138

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

安装:

1.yum install -y vsftpd lftp

开机自启:

查看:systemctl list-unit-files | grep vsftp

设置:/bin/systemctl enable vsftpd.service

2.创建用户

useradd ftpuser -s /sbin/nologin

3.创建虚拟用户及其存放路径(第一行账号,第二行密码)

vim /etc/vsftpd/vsftpd_login

boss
boss123
flow
flow123

chmod 600 /etc/vsftpd/vsftpd_login

4.生成能够识别的库文件

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

5.创建虚拟账号用户权限管理目录及配置文件

mkdir /etc/vsftpd/vsftpd_user_conf && cd /etc/vsftpd/vsftpd_user_conf

vim boss

local_root=/filedata/vsftp_data/boss
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000

vim flow

local_root=/filedata/vsftp_data/flow
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000

6.创建其家目录(虚拟用户boss,flow),并修改权限

mkdir -pv /filedata/vsftp_data/boss

chown -R ftpuser:ftpuser /filedata/vsftp_data/boss

mkdir -pv /filedata/vsftp_data/flow

chown -R ftpuser:ftpuser /filedata/vsftp_data/flow

7.编辑认证文件

vim /etc/pam.d/vsftpd (添加)

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

8.编辑vsftp的配置文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf

9.重启、执行

systemctl restart vsftpd;tail -f /var/log/messages

10.测试

lftp boss@127.0.0.1

tail -f /var/log/secure

这里就是上面说的认证模式问题,注释其他的即可(vim /etc/pam.d/vsftpd);

上传测试:

浏览器测试:ftp://IP

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

11.锁定根目录,不能随意切换

vim /etc/vsftpd/vsftpd.conf (添加)

chroot_list_enable=NO

chroot_local_user=YES

chroot_list_file=/etc/vsftpd/chroot_list

创建/etc/vsftpd/chroot_list 并vim /etc/vsftpd/chroot_list 添加相应账号

12.ftp主动模式 数据传输20端口:

vim /etc/vsftpd/vsftpd.conf

pasv_enable=NO #默认是yes

#connect_from_port_20=YES #默认是开启的

解决配置添加:allow_writeable_chroot=YES

reverse_lookup_enable=NO #连接慢,因为默认开启了reverse_lookup(反向解析) 

问题: [Delaying before reconnect: 29]   或者:重新连接前延时:ss;这是因为linux的ftp客户端默认是被动模式,登陆进去需要手动关闭

lftp:为 set passive-mode off

ftp:为passive

set passive-mode off

通过tcpdump抓包可以发现此时数据是走固定端口20传输

*被动模式:

在vsftpd服务的配置文件下添加以下配置。
pasv_enable=YES #开启被动模式
pasv_min_port=20000 #设置被动模式传输数据的端口范围
pasv_max_port=20045 #设置被动模式传输数据的端口范围
重启vsftpd服务后再进行测试。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

vsftp 主动模式安装的更多相关文章

  1. vsftpd主动模式和被动模式的区别

    何为主动模式,何为被动模式 1.ftp采用两个端口控制: 20端口用于数据传输. 21端口用于控制,或指建立TCP连接. 2.主动方式连接过程: [注意]:C表示客户端 S表示服务器端 S端要开启20 ...

  2. Vsftp安装及配置主动模式/被动模式

     第一章.前言 FTP的主动模式(active mode)和被动模式(passive mode) 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯 ...

  3. vsftp配置主动模式和被动模式

    配置文件:/etc/vsftpd/vsftpd.conf 主动模式配置方法: 主动式连接使用的数据通道 connect_from_port_20=YES 支持数据流的被动式连接模式 pasv_enab ...

  4. 大数据系列(4)——Hadoop集群VSFTP和SecureCRT安装配置

    前言 经过前三篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,当然,我相信安装的过程肯定遇到或多或少的问题,这些都需要自己解决,解决的过程就是学习的过程,本篇的来介绍几个Hadoop环 ...

  5. FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTP

    您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章.所谓磨刀不误砍 ...

  6. 外网zabbix-server使用主动模式监控公司内网windows服务器

    外网zabbix-server使用主动模式监控公司内网windows服务器 1.Zabbix Agent active批量调整客户端为主动模式监控将Template OS Windows模板调整为主动 ...

  7. ftp主动模式与被动模式交互过程分析

    1.相关介绍 1.1主动模式和被动模式 主动模式:服务端通过指定的数据传输端口(默认20),主动连接客户端提交的端口,向客户端发送数据. 被动模式:服务端采用客户端建议使用被动模式,开启数据传输端口的 ...

  8. FTP的两种主动模式和被动模式

    参考:https://blog.csdn.net/xqhrs232/article/details/54633006 https://blog.csdn.net/yuanhangq220/articl ...

  9. FTP 主动模式 与被动模式

    今天在被电信运营商给的没有内网ip被nat后的内网ip访问我的ftp服务器时出现了,连接被关闭的错误,经过多番查询发现问题原因是因为NAT内网ip没有被有效地转换为外网ip,也即是说NAT对ftp协议 ...

随机推荐

  1. spring util包 StringUtils工具类中的isEmpty() 方法解析

    今天在公司看到同事写的代码,无意发现在判断字符串类型时,使用的是StringUtils工具类中的isEmpty()去判断如下所示 @RequestMapping(value = "/pub/ ...

  2. Hash算法原理以及HashCode深入理解

    Java中的Collection有两类,一类是List,一类是Set.List内的元素是有序的,元素可以重复.Set元素无序,但元素不可重复.要想保证元素不重复,两个元素是否重复应该依据什么来判断呢? ...

  3. Git 创建版本库并实现本地上传数据到GitHub库

    版本库又叫做仓库,其实也是一个目录,这个目录里的所有文件都是被Git管理着,对每个文件的修改,删除,Git都会进行记录,方便我们对其进行跟踪. 因为本地是window环境,我们先从官网下载好windo ...

  4. 线性中继器 Linear Repeater

     线性中继器(Linear Repeater,缩写L-REP) 高速信号在传输介质上传递时,信号衰减和噪声会导致有效数据信号越来越弱.L-REP就是用来再生高速信号,通过使用同等化(Equalizat ...

  5. CyclicBarrier 源码分析

    CyclicBarrier CyclicBarrier 是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point) 之后同时释放执行.CyclicB ...

  6. JS-预留字符和转义字符转换

    字符实体(Entity) 转义字符(Escape Sequence)也称字符实体 (Character Entity). 定义转义字符串的主要原因是: <和>等符号已经用来表示 HTML ...

  7. ubuntu 安装maven

    1.下载maven文件 切换目录 root@ubuntu:~# cd /usr/local 下载文件 root@ubuntu:/usr/local# wget http://mirror.bit.ed ...

  8. spring自动注入的三种方式

    所谓spring自动注入,是指容器中的一个组件中需要用到另一个组件(例如聚合关系)时,依靠spring容器创建对象,而不是手动创建,主要有三种方式: 1. @Autowired注解——由spring提 ...

  9. 自己挖的坑自己填--JVM报内存溢出

    在写定时任务时,对表数据进行批量操作,测试数据有10万条左右,在测试时发现跑着跑着出现内存溢出现象,最后发现创建的对象paramList 和tmBeanList没有被回收,经过资料查找,发现是循环内不 ...

  10. Java-Lambda表达式第二篇认识Lambda表达式

    接上面的方法引用和构造器引用: 3>引用某类对象的实例方法 @FunctionalInterface public interface Cut{ String cut(String str,in ...