FTP文件传输与vsftpd配置

一 存储类型

直连式存储DAS

适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

存储区域网络SAN

用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

网络附加存储NAS

适用于大型应用或数据库系统,缺点是成本高、较为复杂

二 FTP工作原理

文件传输协议

是典应用层协议,  c/s架构

20数据端口          用于建立数据连接,并传输文本数据

21命令端口          建立控制连接,并传输FTP控制命令

2 数据传输格式:二进制   文本

3 双通道协议:命令与数据的连接

从服务器角度

主动模式:服务器主动开启20端口连接客户端传输真实数据

被动摸式:服务器随机开启端口等待客户端连接,客户机通过21命令来获取 服务端的随机端口

数据给客户端

被动(PASV style):服务器被动等待客户端连接

FTP服务状态码

服务器数据端口为:

用户认证:

  • 匿名用户:ftp,anonymous,对应Linux用户ftp root,两种协议

  • 一般提供公共文件的下载,如免费文件,学习资料,百度网盘

  • 系统用户:  Linux用户,用户/etc/passwd,密码/etc/shadow

  • 虚拟用户:   特定服务的专用用户,独立的用户/密码文件

常见 FTP 相关软件

vsftpd:

ftp.redhat.com数据

Wu-ftpd

vsftpd 软件介绍

用户认证配置文件: /etc/pam.d/vsftpd

配置文件或子目录: /etc/vsftpd

                             :/usr/sbin/vsftpd

                             :/var/log/vsftpd.log

用户和其共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

  • 系统用户共享文件位置:用户家目录

  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

安装服务端

客户端连接服务端

vsftpd服务常见配置

修改默认命令端口

服务端:修改 默认命令端口号

客户端:连接时需要指明 端口号

[root@localhost ~]#vim  /etc/vsftpd/vsftpd.conf

                              listen_port=2121                      #默认值为21

[root@localhost ~]#systemctl restart vsftpd

                             #ss   -ntl                     #查看端口

主动模式端口


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                              connect_from_port_20=YES                  #主动模式端口为20
                               ftp_data_port=20                                    #指定主动模式的端口,默认为20
[root@localhost ~]#systemctl restart vsftpd
 

被动模式端口

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                              pasv_min_port=6000    
                              pasv_max_port=6010
[root@localhost ~]#systemctl restart vsftpd 

   #0为随机分配,规定端口范围会影响客户端的并发数

使用当地时间

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

                              use_localtime=YES                    #使用当地时间  ,  默认为NO,使用GMT 

                              [root@localhost ~]#systemctl restart vsftpd

匿名用户登录


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                               anonymous_enable=YES                           #支持匿名用户,
                               no_anon_password=YES                           #匿名用户略过口令检查 , 默认NO
[root@localhost ~]#systemctl restart vsftpd 

匿名用户上传

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

                             anon_upload_enable=YES 匿名上传,注意:文件系统权限
                             anon_mkdir_write_enable=YES 匿名建目录

还需要开启文件系统访问的权限,不能给FTP根目录写权限否则报如下错误

匿名用户 下载 删除文件

指定匿名用户的上传文件的默认的所有者是ftp用户,这是可以修改的

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES                                           #默认NO
chown_username=mcb                                       #匿名用户的上传文件的默认的所有者用户
chown_upload_mode=0644                                #指定上传文件的权限
[root@localhost ~]#systemctl restart vsftpd  

 
Linux 系统用户

系统用户登录:使用普通用户登录默认是在 系统用户的 家目录

将所有系统用户映射为指定的guest用户

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


guest_enable=YES                                #所有系统用户都映射成guest用户
guest_username=ftp                              #配合上面选项才生效,指定guest用户
#local_root=/ftproot                                 #注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/         #每个用户独立的配置文件目录,可自由指定


[root@localhost ~]#systemctl restart vsftpd 
 

禁锢系统用户


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO                           #默认YES
[root@localhost ~]#systemctl restart vsftpd 
 

禁锢所有系统用户在家目录中


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES                                           #所有系统用户都映射成guest用户
guest_username=ftp                                        #配合上面选项才生效,指定guest用户
#local_root=/ftproot                                          #注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/                  #每个用户独立的配置文件目录,可自由指定
[root@localhost ~]#systemctl restart vsftpd  


禁锢用户开启白名单和黑名单

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES                                      #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list                  #默认值
 
当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,只允许名单里的用户登录
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,只有文件里的用户禁锢
[root@localhost ~]#systemctl restart vsftpd  
 

ftp 默认启动日志

#wu-ftp 日志:默认启用

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


xferlog_enable=YES                                          #启用记录上传下载日志,此为默认值
xferlog_std_format=YES                                    #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog                                  #可自动生成, 此为默认值


[root@localhost ~]#systemctl restart vsftpd 
 

#vsftpd日志:默认不启用


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


dual_log_enable=YES                    #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log    #可自动生成, 此为默认值


[root@localhost ~]#systemctl restart vsftpd 
 

提示信息


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


ftpd_banner="welcome to mcb ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt  


[root@localhost ~]#systemctl restart vsftpd 
 

传输速率,单位:字节/秒      百度网盘限速就是这样玩


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


anon_max_rate=1024000               #1024000表示1MB/(数字随时改)
local_max_rate=102400


[root@localhost ~]#systemctl restart vsftpd 

pam模块实现用户访问

在内网环境ftp下,搭建本地yum仓库

①服务端搭建本地yum仓库,并下载vsftp软件

服务端IP  192.168.11.9

 

 

客户端搭建yum仓库下载vsftpd软件与ftp协议

客户端192.168.11.5   搭建仓库

 教训

在内网环境下http搭建yum仓库

 服务端IP192.168.11.9

指令小金刚

1 [root@localhost ~]#sort --help
   sort  -t

   sort   -n

2 [root@localhost ~]#cut --help
用法:cut [选项]... [文件]...
  cut  -d  使用指定分界符代替制表符作为区域分界

3 [root@localhost ~]#seq --help
  seq  -s

4 [root@localhost ~]#tr --help   转换   压缩    删除

5 [root@localhost ~]#uniq  --help

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413067.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot SaToken Filter如用使用ControllerAdvice统一异常拦截

其实所有的Filter都是一样的原理 大致流程: 创建一个自定义Filter, 用于拦截所有异常此Filter正常进行后续Filter调用当调用后续Filter时, 如果发生异常, 则委托给HandlerExceptionResolver进行后续处理即可 以sa-token的SaServletFilter为例 首先注册SaToken的过滤器 pac…

字符型在内存中的存储

由于此字符型只占一个字节 所以它就不存在大端存储和小端存储。 字符型数据在内存中的存储的是ASCII码值转换成的二进制的补码(有符号char的二进制也有原码,反码,补码之分) 例 ↑的十进制的ASCII值为24 转换成二进制为00011000…

androidkiller的两种异常情况

第一种反编译时异常: Exception in thread “main” org.jf.dexlib2.dexbacked.DexBackedDexFile$NotADexFile: Not a valid dex magic value: cf 77 4c c7 9b 21 01 修改方法: 编辑 AndroidKiller 的 bin/apktool 目录下有一个 apktool.bat 文件 修改成…

04 SpringMVC响应数据之页面跳转控制+返回JSON数据+返回静态资源

1. handler方法分析 /*** TODO: 一个controller的方法是控制层的一个处理器,我们称为handler* TODO: handler需要使用RequestMapping/GetMapping系列,声明路径,在HandlerMapping中注册,供DS查找!* TODO: handler作用总结:* 1.接收请求参数(param,json,pathVariable,共享…

从uptime看linux平均负载

从前遇到系统卡顿只会top。。top看不出来怎么搞呢? Linux系统提供了丰富的命令行工具,以帮助用户和系统管理员监控和分析系统性能。在这些工具中,uptime、mpstat和pidstat是非常有用的命令,它们可以帮助你理解系统的平均负载以及资…

JavaEE学习笔记 2024-1-12 --Tomcat服务器、Servlet

JavaEE 个人整理非商业用途,欢迎探讨与指正!! JavaEE是企业级开发 是综合性非常强的阶段  包含的知识点:JavaSE,MySQL,JDBC,WEB(HTML,CSS,JS,前端框架),Servlet,JSP,XML,AJAX等技术 目录 JavaEE1.服务器2.Tomcat服务器2.1Tomcat的使用2.2Tom…

Visual Studio 与 SQL Server 常见报错解决方案(工作向)

前言 这篇文章从今天创建开始,会一直更新下去,以后遇到常见但是比较容易解决的报错会在本文进行更新,有需要的朋友可以收藏再看 目录 Visual Studio lc.exe已退出,代码为-1无法导入以下密钥文件xxx.pfx,该密钥文件…

go实现判断20000数据范围内哪些是素数(只能被1和它本身整除的数),采用多协程和管道实现

实现一个并发程序,用于寻找 20000 以内的所有素数。使用了 Goroutines 和 Channels 来分发和处理任务,并通过 WaitGroup(实现为 exitChan)来同步 Goroutines 的退出。 一.GO代码 package mainimport ("fmt""time…

【OJ】牛客链表刷题

题目 1. 链表分割1.1 题目分析1.2 代码 2. 链表的回文结构2.1 题目分析2.2 代码 这里两道与链表有关的题目均来自牛客。 1. 链表分割 1.1 题目分析 因为这里代码不能选择用c语言写,所以选择用c,因为c兼容c。 题目要求分割链表,我们可以直接弄成两个带哨…

Spring 中 HttpServletRequest 作为成员变量是安全的吗?

在使用spring框架开发的时候,经常会在controller类中看到 HttpServletRequest 对象参数,一般我们都是直接使用,但是它是何时、怎么注入到 spring 容器的呢 ?另外以成员变量注入的 request 是线程安全的吗 ? Controller public c…

SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(二) 入门示例及编程步骤SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用SqlAlchemy使用教程(五) ORM API 编程入门 三、使用Core API访问与操作…

计算机网络——运输层(1)暨小程送书

计算机网络——运输层(1)暨小程送书 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 运输层概述两个主要协议运输层和网络层的关系网络层运输层总结 多路复用与多路分解多路复用多路分解不同的技术实现时分复用(TDM)频分复…