主页 > 网络知识 > 看完这篇,别再说你不懂FTP协议啦!

看完这篇,别再说你不懂FTP协议啦!

FTP简介

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

FTP端口

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

FTP数据连接模式

ftp有2种数据连接模式:命令连接和数据连接。

命名连接:是指文件管理类命令,始终在线的持久性连接,直到用户退出登录止;

数据连接:是指数据传输,按需创建及关闭的连接。

数据传输格式有以下两种:

文件传输

二进制传输

数据传输模式有两种:

主动模式:由服务器端创建数据连接

被动模式:由客户端创建数据连接

两种数据传输模式的建立过程:

主动模式:命令连接——客户端以一个随机端口(随机端口大于1023)来连服务器端的21号端口;数据连接——服务器端以自己的20号端口去连客户端创建命令连接时使用的随机端口+1的端口号进行连接。

被动模式:命令连接——客户端以一个随机端口(随机端口大于1023)来连服务器端的21号端口,服务端并告知客服端一个随机端口;数据连接——客户端以创建命令连接的端口+1的端口号去连服务器端通过命令连接告知自己的一个随机端口号来创建数据连接。

vsftpd常见的配置参数

搭建要求

安装vsftpd服务

配置匿名用户ftp

安装并配置完成后要使用ftp客户端工具登录验证

搭建环境

本实验所用redhat7.0系统;

防火墙、selinux已关闭;

本实验所用地址如下:

相关文件:

主配置文件

/etc/vsftpd/vsftpd.conf

匿名用户的共享资源位置

/var/ftp/pub

搭建步骤

安装vsftpd

yum -y install vsftpd

启动vsftpd服务

systemctl start vsftpd

匿名用户

1

配置匿名用户,利用匿名用户访问ftp

## 在客户端安装ftp命令,以匿名用户登录FTP,匿名账号为anonymous,密码直接确认 ##

[root@client ~]# yum -y install ftp

## 匿名用户默认开启,若没有开启则将NO改为YES ##

anonymous_enable=YES

2

进行登录测试

## 登录172.16.12.130 ftp服务器,账号为anonymous,密码直接确认 ##

[root@client ~]# ftp 172.16.12.131

Connected to 172.16.12.131 (172.16.12.131).

220 (vsFTPd 3.0.2)

Name (172.16.12.131:root): anonymous

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

3

登录之后查看当前匿名用户访问的目录

## 登录之后 ,ls 可以看到,匿名用户访问的是pub目录 ##

ftp> ls

227 Entering Passive Mode (172,16,12,131,46,39).

150 Here comes the directory listing.

drwxr-xr-x 2 0 0 6 Aug 03 2017 pub

226 Directory send OK.

ftp>

4

进入Pub目录创建文件提示没有权限

## 进入pub目录,在ftp目录中创建目录,目录没有权限创建 ##

ftp> mkdir aaa

550 Permission denied.

ftp>

5

进入Pub目录想要创建文件必须修改配置

## 要想在ftp目录中写,就必须修改配置, ##

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

找到这两行取消这注释,或者重新再写

anon_upload_enable=YES #允许匿名用户上传

anon_mkdir_write_enable=YES #允许匿名用户创建目录

添加一行

anon_other_write_enable=YES #允许匿名用户除创建和上传之外的权限,如删除、重命名

:wq #保存退出

## 因为匿名用户登录ftp所用的账户是ftp用户,所以将/var/ftp/pub的属主和属组改为ftp ##

chown ftp.ftp /var/ftp/pub

6

重启服务

## 重启vsftpd服务 ##

systemctl restart vsftpd

7

再次在pub目录下创建目录即可写入

## 再在/var/ftp/pub目录下创建目录,这时可以写 ##

ftp> mkdir test

257 "/pub/test" created

ftp> ls

227 Entering Passive Mode (172,16,12,131,53,244).

150 Here comes the directory listing.

drwx------ 3 14 50 16 Sep 13 00:03 aaa

drwx------ 2 14 50 6 Sep 13 00:09 test

226 Directory send OK.

ftp>

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!