四、FTP服务

四、FTP服务

FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一,是目前Internet上使用最广泛的文件传送协议

FTP概述

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

20端口:用于传输数据

21端口:用于传输指令(建立连接)

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

Standard模式(主动模式)

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

Passive模式(被动模式)

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

FTP作用和工作原理

FTP的作用和模式以及通信方式

FTP作用:Internet上用来远程传送文件的协议

FTP的模式:

vsftp (very secure FTP)

vsftp 模式:c/s模式

FTP服务器默认使用TCP协议的20、21端口进行通信

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

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

FTP工作原理与流程

FTP数据连接分为主动模式和被动模式

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

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

主动模式流程图

四、FTP服务_第1张图片

主动模式工作原理:FTP客户端连接到FTP服务器的21号端口,发送用户名、密码和连接模式命令端口等,客户端随机开放一个端口(1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20号端口和客户端开放的端口连接,发送数据。

主动模式有个弊端,客户端必须关闭防护墙,否则不能传输数据。

被动模式流程图

四、FTP服务_第2张图片

被动模式工作原理:PASV是Passive的缩写,中文成为被动模式。FTP客户端连接到FTP服务器所监听的21号端口,发送用户名和密码,发送PASV命令到FTP服务器,服务器在本地也随机开放一个端口(1024以上),然后把开放的端口告知客户端,而后客户端再连接到服务器开放的端口进行数据传输,原理如图所示。

注:以上的说明主动和被动,是相对于的FTP server端而判断,如果server去连接client开放的端口,说明是主动的,相反如果client去连接server开放的端口,则是被动。

搭建与配置FTP服务

安装防火墙和增强型安全功能

[root@localhost ~]# hostnamectl set-hostname ftp
[root@localhost ~]# systemctl stop firewalld    #关闭防火墙
[root@localhost ~]# systemctl disable firewalld   #开机自关闭防火墙
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0  #临时关闭增强型安全功能
[root@localhost ~]# yum install -y vsftpd
[root@localhost ~]# cd /etc/vsftpd
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# rpm -qa | grep vsftpd    #查看vsftp信息
vsftpd-3.0.2-29.el7_9.x86_64
[root@localhost vsftpd]# systemctl start vsftpd       #开启ftp服务
[root@localhost vsftpd]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost vsftpd]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2022-06-16 14:12:32 CST; 36s ago
 Main PID: 56184 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─56184 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

6月 16 14:12:32 ftp systemd[1]: Starting Vsftpd ftp daemon...
6月 16 14:12:32 ftp systemd[1]: Started Vsftpd ftp daemon.
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak  #备份文件
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh

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

四、FTP服务_第3张图片

四、FTP服务_第4张图片

[root@localhost vsftpd]# chmod -R 777 /var/ftp/pub
[root@localhost vsftpd]# ll /var/ftp
总用量 0
drwxrwxrwx. 2 root root 6 6月  10 2021 pub
[root@localhost vsftpd]# systemctl restart vsftpd

匿名访问测试:

四、FTP服务_第5张图片

在Windows系统打开开始菜单,输入cmd 命令打开命令提示符
#建立ftp连接
ftp 192.168.80.10
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录

四、FTP服务_第6张图片

四、FTP服务_第7张图片

四、FTP服务_第8张图片

四、FTP服务_第9张图片

ftp> pwd          #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls           #查看当前目录
ftp> cd pub       #切换到pub目录
ftp> get文件名    #下载文件到当前Windows本地目录
ftp> put 文件名   #上传文件到ftp目录
ftp> quit         #退出

设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)

#修改配置文件
vim /etc/vsftpd/vsftpd. conf

四、FTP服务_第10张图片

image-20220616153914465

image-20220616154013910

image-20220616154418483

image-20220616154737731

[root@localhost pub]# mkdir -p /var/www/haxi
[root@localhost pub]# chmod -R 777 /var/www/haxi
[root@localhost pub]# useradd xxxl
[root@localhost pub]# echo "ABC123" | passwd --stdin xxxl
更改用户 xxxl 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost pub]# systemctl restart vsftpd

四、FTP服务_第11张图片

image-20220616160516366

四、FTP服务_第12张图片

四、FTP服务_第13张图片

设置黑白名单

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

image-20220616163646897

[root@localhost haxi]# vim /etc/vsftpd/user_list 

四、FTP服务_第14张图片

[root@localhost haxi]# systemctl restart vsftpd

四、FTP服务_第15张图片
ocalhost haxi]# vim /etc/vsftpd/user_list


[外链图片转存中...(img-pR3SXydt-1655685589996)]

[root@localhost haxi]# systemctl restart vsftpd


[外链图片转存中...(img-3HCQZqnU-1655685589996)]

你可能感兴趣的:(网络,服务器,tcp/ip)