FTP实验及概述

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、FTP

1.概述

        FTP (File TransferProtocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。TCP  协议:20,21端口

        FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式 FTP的客户端发送PORT 命令到FTP server。 Passive 模式FTP的客户端发送PASV命令到FTP Server

(1)Standard模式

       FTP客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。
       PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP  server必须和客户端建立一个新的连接用来传送数据。

(2)Passive模式

       在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV命令的时候,FTP   server打开一个位于1024和15000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候ETP  server不再需要建立一个新的和客户端之问的连接。

2.搭建和配置FTP服务

搭建FTP服务器

1)实验环境

服务器: CentOS 7  系统ip: 网络地址
客户端: Win10       系统ip: 网络地址
very secure ftlp

2)软件安装
linux 系统中,是vsftpd提 供ftp的服务(没有依赖包,可直接yum安装,也可光盘安装)

yum install -y vsftpd

3)配置文件

/etc/ vsftpd/ vsftpd. conf          ftp服务器的主配置文件
/etc/pam.d/vsftpd
/etc/vsftpd/ ftpusers                禁止登陆用户名单,默认root 不能登陆
/etc/vsftpd/user_ 用户名         可以通过设置只有这个名单里的用户可以登陆,如果同一用户同时                                          出现在ftpusers和user_ 用户名   那么该用户也是被禁止登陆,取最严权限.
/var/ ftp                                   ftp的根目录,默认登陆位置
/var/ ftp/pub .

4)用户
①匿名用户: anonymous/ftp 默认开启,密码为空
②本地用户: linux系统中的用户(无需配置可直接登陆但有安全隐患)
③虚拟用户:自定义的虚拟用户(配置麻烦但相对安全)

5)开启服务
systemctl start vsftpd

6)匿名用户默认可下载但不能上传,修改匿名用户权限可上传

修改/etc/vsftpd/vsftpd.conf,开启anon _upload_ enable-YES
修改/var/ ftp/pub为777权限,不要修改/var/ftp的权限否则无法登陆

7)允许root登陆.
修改/etc/vsftpd/ ftpusers,将root注释
修改/etc/vsftpd/vsftpd.conf,添加一行userlist_ _deny-NO
重启服务.

8)锁定用户家目录不可随意切换
修改/etc/vsftpd/ vsftpd. conf
chroot_ local_ user-YES           取消注释, 锁定家目录了,但是如果家目录有写权限ftp会拒绝连接
allow writeable chroot-YES       添加这一行

(9)重启服务
tepdump -i ens33 -nnX port 21 
 -nn:直接以IP及portnumber显示,而非主机名与服务名称
-X :可以列出十六进位(hex) 以及ASCII 的封包內容,对于监听封包內容很有用

3.查看信息

yum info vsftpd

FTP (File Transfer Protocol: 文件传输协议) 作用: Internet上用来传送文件的协议。
VSFTP全称 (very secure FTP )
VSFTP模式: C/S模式
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
FTP数据连接分为主动模式和被动模式
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接

开启服务,关闭防火墙和增强型安全功能X
systemctl stop firewalld
setenforce 0
rpm  -qa l grep vsftp

yum install -y vsftpd
cd /etc/ vsftpd/
cp vsftpd. conf vsftpd. conf .bak

4.设置匿名用户访问的FTP服务(最大权限)

1)修改配置文件
vim /etc/vs ftpd/vsftpd. conf
anonymous_ enable-YES            开启匿名用户访问。默认已开启(FTP)
write_ enable=YES                      开放服务器的写权限(若要上传,必须开启)。默认已开启

anon_ umask=022                           设置匿名用户所上传数据的权限掩码(反掩码)。
anon_ upload_ enable-YES            允许匿名用户。上传文件。默认已注释,需取消注释
anon_ mkdir_ write_ enable=YES   允许匿名用户创建(.上传)目录。默认E注释,需取消注释
anon_ other_ write_enable=YEs     允许其他删除、重命名、覆盖等操作。需添加
chmod 777 /var/ftp/pub/                   为匿名访问ftp的根目录下的pub子目录设置最大权限,以便着                                                          名用户上传数据

2)开启服务,关闭防火墙和增强型安全功能

systemctl start vsftpd .
systemctl stop firewalld
setenforce 0

3)匿名访问测试
在windows 系统打开开始菜单,输入cmd命令打开命令提示符
建立ftp连接
ftp 网络地址
匿名访问,用户名为ftp, 密码为空,直接回车即可完成登录
ftp> pwd                匿名访问ftp的根月录为Linux系统的/var/ftp/目录
ftp> ls                   查看当前目录
ftp> cd pub           切换到pub目录
ftp> get文件名     下载文件到当前Windows本地目录
ftp> put文件名     上传文件到ftp目录
ftp> quit                退出

 yum install -y vsftpd

 vim vsftpd.conf

 开启服务,关闭防火墙和增强型安全功能

 

 验证

在Windows系统打开开始菜单,输入cmd命令打开命令提示符

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FTP实验报告全文共2页,当前为第1页。FTP实验报告全文共2页,当前为第1页。FTP实验报告 FTP实验报告全文共2页,当前为第1页。 FTP实验报告全文共2页,当前为第1页。 实验目的实验要求在linux系统上完成一个文件传输协议,通过本实验,不但可以深入理解FTP协议的原理和细节,还可以学会利用Socket接口设计实现简单应用层协议,掌握网络应用程序的基本设计方法和实验技巧。 实验说明 文件传输协议用于两台计算机之间传递文件,FTP包含了两个通道。一个是控制通道,一个是数据通道。控制通道是和FTP服务器进行沟通的通道,连接服务器,发送指令。数据通道则是和FTP服务器进行文件传输和获取文件列表的通道。 实验内容 本实验要求在Linux系统上使用Socket接口实现FTP客户顿和服务器端的程序,使客户端可以连接至服务器,并且可以进行一些FTP的基本操作。应实现的FTP命令包括如下几点: get: 取远方的一个文件 put: 传给远方一个文件 pwd: 显示远方当前目录 dir: 列出远方当前目录 cd: 改变远方当前目录 help: 显示提供的命令 quit: 退出 实验代码 客户端和服务器代码见附件。 思考题 1.在FTP协议中,为什么要建立两个TCP连接来分别传送命令和数据? 答:如果只用一个连接,那就是复用一个端口。而我们知道, 端口之间通信需要传输协议才能建立连接, 端口的复用等于说在一个端口上同时使用2种协议以上,但如果是10种协议呢? 不但会影响传输速度,数据出错的概率也变大了。 FTP实验报告全文共2页,当前为第2页。FTP实验报告全文共2页,当前为第2页。2.主动方式和被动方式的主要区别是什么?为何要设计这两种方式? FTP实验报告全文共2页,当前为第2页。 FTP实验报告全文共2页,当前为第2页。 答:区别:主动方式下客户端首先和服务端建立连接,在传输数据时服务器和客户端必须建立一个新的连接,而被动方式则是由服务器等待客户端来连接,且不用建立新的连接。 原因:一般情况下都是采用主动模式,但很多防火墙在设置的时候都是不允许接受外部发起的连接的, 所以主动模式许多时候在内部网络的机器通过防火墙出去时受到了限制,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。这个时候被动模式就派上用场,因为不用建立新的连接, 所以也就不会涉及到后面的问题了。 3.当使用FTP下载大量小文件的时候,速度会很慢,这是什么缘故?可以怎样改进? 答:原因:若顺序下载,则对于每个文件,服务器都要先寻找文件再传输。改进:开多个线程并行下载。 实验总结 通过本次试验,我理解了整个FTP协议的细节和工作流程,对Linux系统下Socket编程的过程有了较多的了解,为以后网络编程的学习打下了良好的基础。 FTP实验报告

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值