Linux网络服务04——FTP文件传输服务

一、FTP连接及传输模式

1、控制连接:TCP 21,用于发送FTP命令信息

2、数据连接:TCP 20,用于上传、下载数据

3、数据连接的建立类型:

(1)主动模式:服务器主动发起数据连接

首先由客户端向服务端的21端口建立FTP控制连接。当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我”,预算服务器从20端口向客户端的该端口发送请求并建立数据连接。

(2)被动模式:服务器被动等待数据连接

如果客户端所在网络的防火墙禁止主动模式连接,通常会使用被动模式。

首先由客户端想服务器的21端口建立FTP控制连接。当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

4、传输模式

在传输文件时,根据是否进行字符转换,分为文本模式和二进制模式。

(1)文本模式:又称ASCII(American Standard Code for Information Interchange)美国信息交换标准码模式,这种模式在传输文件时使用ASCII标准字符序列,一般只用于纯文本文件的传输。

(2)二进制模式:又称Binary模式,这种模式不会转换文件中的字符序列,更适合传输程序、图片等非纯文本字符的文件。

使用二进制模式比文本模式更有效率,大多数FTP客户端工具可以根据文件类型自动选择文件传输模式。

二、FTP用户类型

1、匿名用户:用户名为ftp或anonymous,提供任意密码(包括空密码)都可以通过服务器的验证。一般用于公共文件的下载,如提供一些免费的软件、学习资料下载的站点。

2、本地用户:直接使用本地的系统用户账号进行验证。

3、虚拟用户:通过一份独立的用户数据库文件进行登录验证,将FTP账户与Linux系统账户的关联性将至最低,为系统提供更好的安全性。

三、FTP服务器软件的种类

1、Windows系统:FileZilla Server、Serv-U等

2、Linux/Unix系统:vsftpd(Very Secure FTP Daemon)

四、FTP客户端工具的种类

1、Windows系统:ftp命令、CuteFTP、FlashFXP、LeapFTP、Filezilla等。还有一些下载工具软件,如FlashGet、Wget等,但不具备上传功能,通常不称为FTP客户端工具。

2、Linux/Unix系统:ftp命令

五、搭建匿名访问的FTP服务

1、安装FTP服务软件

2、准备匿名FTP访问的目录

3、开放匿名用户配置并启动vsftpd服务

4、测试匿名FTP服务器

在客户端安装FTP客户端

测试小结:匿名用户具有新建目录、上传文件、删除文件的权限,新建目录默认权限755,上传文件默认权限644。

六、搭建本地用户验证的FTP服务

1、创建本地用户

2、修改配置文件,重启FTP服务。

客户端测试

测试小结:本地用户具有新建目录、上传文件的权限,新建目录默认权限700,上传文件默认权限600。

3、ftpusers与user_list用户列表的使用

(1)ftpusers文件:FTP服务器中的黑名单,优先级高于user_list文件

(2)user_list文件:此用户列表默认情况下也是黑名单,即在此用户列表中的用户不可访问FTP服务器,但可以通过vsftpd.conf主配置文件的修改将此名单改为白名单,且仅此名单中的用户可以访问。

(3)示例:

1>将test1用户放入ftpusers文件中,其他配置文件不修改,尝试用test1用户登录

客户端测试

2>将test1移除出ftpusers文件,将test2放入user_list用户列表中,先用默认的配       置文件,在客户端尝试用test2访问FTP服务器。在修改配置文件,将user_list改为白       名单,再在客户端分别用test1、test2尝试访问。

客户端测试

服务器修改主配置文件,重启服务

[root@www vsftpd]# vim vsftpd.conf

客户端再次测试

测试小结:配置文件中默认user_list用户列表为黑名单即默认为userlist_deny=YES,当增加userlist_deny=NO时,user_list用户列表为白名单,此时仅此名单内用户可访问FTP服务器。

七、搭建虚拟用户验证的FTP服务

1、建立虚拟用户账号数据库

vsftpd服务使用Berkeley DB格式的数据库文件来存放虚拟用户账号,使用db_load工具生成数据库文件。(若未安装,安装包在安装光盘1中,软件名为db4-utils)

注:db_load命令

-T:允许非Berkeley的程序使用该数据库

-t:指定算法 (hash:哈希,散列)

-f:指定源文件

注意:生成的数据库文件必须为“.db”格式

2、添加虚拟映射账号,为FTP根目录修改权限

3、增加PAM认证

4、修改vsftpd.conf配置文件,重启服务

5、客户端测试

6、实现每个虚拟用户不同根目录、不同权限的管控

(1)创建用户控制目录,并创建虚拟所对应的同名配置文件

修改zhangsan的配置文件,使其可以上传、建立目录、删除文件、重命名文件、最大传输速率1字节/秒、根目录为/var/zhangsan

修改lisi的配置文件,使其仅可以下载上传,不开放其他权限,不限制传输速率,根目录为/var/lisi

wangwu的配置文件不做修改,其权限为配置文件中的默认权限,根目录为/var/ftproot,仅可以下载,无法上传。

(2)修改vsftpd.conf主配置文件,重启服务

[root@www vsftpd]# vim vsftpd.conf

(3)客户端测试

验证zhangsan

验证lisi

验证wangwu

【课外知识】建立vsftpd服务的日志文件。

其他配置:

listen=YES

listen_address=192.168.1.108

listen_port=2121       //设置监听端口

pasv_enable=YES       //是否开启被动模式

pasv_min_port=24500       //被动模式端口下限

pasv_max_port=24600       //被动模式端口上限

max_clients=2000              //最大15000,最大客户连接数,一般不限制

max_per_ip=2              //每个ip限制最多打开几个客户端工具,一般不限制

anon_max_rate=50000              //匿名最大传输速率,一般不限制

local_max_rate=20000              //本地用户最大传输速率,一般不限制

asc码转换 linux_Linux网络服务04——FTP文件传输服务相关推荐

  1. Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统

    Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...

  2. 详解“FTP文件传输服务”安装配置实例

    "FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsft ...

  3. Linux 网络服务之FTP 文件传输

    Linux FTP 文件传输 --王宇然qq:496488051 实验一:配置匿名上传FTP 1.软件包安装: [root@localhost ~]# cd /misc/cd/Server       ...

  4. 网络编程之FTP文件传输协议

    FTP文件传输协议: 一.简述: 1.TCP/IP协议簇,应用层协议,采用服务端与客户端通信方式共享文件. 2.FTP根目录:/            (如路径: /hello/) 3.现在的FTP一 ...

  5. asc码转换 linux_Linux终端下将图片转换ASCII Art代码图案

    有时你可能需要终端输出许多图片,那么现在就让我们在Linux终端打开一个新窗口显示图片. cacaview - Linux终端下将图片转换ASCII Art代码图案的命令. Ubuntu下安装命令: ...

  6. python ftp文件传输服务端

    from socket import * import os,sys import signal,time host=" port=8888 Addr=(host,port) class F ...

  7. LinuxFTP文件传输服务和DNS域名解析服务

    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易, ...

  8. 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6

    其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...

  9. CUBEMX配置STM32实现FTP文件传输以及使用SNTP获取网络时间并写入RTC

    CUBEMX配置STM32实现FTP文件传输以及使用SNTP获取网络时间并写入RTC 引言 FTP代码库的移植 Cubemx配置SNTP以及RTC RTC配置方法 SNTP配置方法 FATFS载入RT ...

最新文章

  1. UCOSIIIAPI函数接口OSTaskCreate();函数
  2. pyinstaller使用方法及案例
  3. 2008年12月答疑贴
  4. java final内存机制_Java中的内存处理机制和final、static、final static总结
  5. 登录界面转换实现html,html5和css3登录注册表单界面切换动画
  6. 无惧海量并发,运维准点下班全靠它
  7. android 多线程类,Android 多线程处理之多线程用法大集合
  8. SnapKit 源码解读(一):Extensions
  9. 13G311-1 混凝土结构加固构造 免费下载
  10. 算法设计与分析课设-探寻宝藏-双线程DP问题-C语言
  11. python idle背景设置为黑色_python IDLE颜色设置
  12. JS实现仿新浪微博大厅和腾讯微博首页滚动效果_前端开发
  13. RAM、 ROM 、SRAM 、DRAM 、SDRAM 、DDR (2、3、4)SDRAM辨析
  14. struct 结构体的内存对齐
  15. ORACLE表格操作图文教学二(分组去重、计数、加减、多表)
  16. 计算机二级黑板板书书写,清华老师的板书惊艳朋友圈 8个技巧让黑板亮起来
  17. jdk11中使用JavaFx
  18. html5自动收回键盘,如何监听移动端软键盘的弹出和收回?
  19. HTTPS那些事 用java实现HTTPS工作原理
  20. Vue背景图片打包上线后出错问题解决

热门文章

  1. Java 14 有哪些新特性?
  2. 神龙 X-Dragon,这技术“范儿”如何?| 问底中国 IT 技术演进
  3. 为什么说即便是新手,也应该学习微服务?
  4. 如何快速优化 Linux 内核 UDP 收包效率? | CSDN 博文精选
  5. Mac 被曝存在恶意漏洞:黑客可随意调动摄像头,波及四百万用户!
  6. 安防无战事:一场 10213 亿元的误会
  7. 程序员如何从技术上“开挂”魔卡手游? | 技术头条
  8. 小米“祭出” AIoT 神器!| 技术头条
  9. 6岁会编程,14岁就被麻省理工录取,神童谎言是如何诞生的?
  10. 网络编程之 字节序和深入理解bind()函数