前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文带你快速理解什么是FTP文件传输服务

一文带你快速理解什么是FTP文件传输服务

作者头像
reload
发布2024-07-20 12:20:34
620
发布2024-07-20 12:20:34
举报
文章被收录于专栏:Java后端

大家好呀!这里是码农后端。今天来简单聊一聊FTP服务。FTP服务是基于FTP协议(即文件传输协议)的文件传输服务,应用非常广泛。

一、FTP服务概述

1、FTP概述

FTP(File Transfer Protocol)是一种应用非常广泛且古老的一个互联网文件传输协议。

文件传输:文件的上传与下载

  • 主要用于互联网中文件的双向传输(上传/下载)、文件共享
  • 跨平台 Linux、Windows
  • FTP是C/S架构,拥有一个客户端和服务端,使用TCP协议作为底层传输协议,提供可靠的数据传输
  • FTP的默认端口 21号(命令端口) 20号(数据端口,主动模式下) ,默认被动模式
  • FTP程序(软件):vsftpd

FTP软件名称 => vsftpd,vs(very secure ftp daemon) ,字面理解即非常安全的ftp服务

2、FTP服务的客户端工具

  • Linux:ftp、lftp(客户端程序)
  • Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox
  • lftp和ftp工具区别:
    • lftp:默认是以匿名用户访问
    • ftp:默认是以用户名/密码方式访问
    • lftp可以批量并且下载目录

3、FTP的两种运行模式

在FTP服务中,有主动模式和被动模式两种模式。两种模式都以FTP的服务器端作为参考点。

主动模式:FTP服务器端主动连接客户端。 被动模式:客户端主动连接FTP服务器端。

3.1 主动模式

实现原理:

1)客户端打开大于1023的随机命令端口和大于1023的随机数据端口,向服务端的21号端口发起请求

2)服务端的21号命令端口响应客户端的随机命令端口

3)服务端的20号端口主动请求连接客户端的随机数据端口

4)客户端的随机数据端口进行确认

cmd:命令端口(发送FTP请求) data:数据端口(后期用于传输数据) 1024-5000:系统随机端口。

3.2 被动模式

实现原理:

1)客户端打开大于1023的随机命令端口和大于1023的随机数据端口,向服务端的21号端口发起请求

2)服务端的21号命令端口响应客户端的随机命令端口

3)客户端主动连接服务端打开的大于1023的随机数据端口

4)服务端进行确认

注:FTP默认使用的就是被动模式

4、搭建FTP服务(重点)

基本步骤:

代码语言:javascript
复制
1. 关闭防火墙和selinux
2. 配置yum源(mount /dev/sr0 /mnt)
3. 软件三部曲(配置/编译/安装)
4. 了解配置文件
5. 根据需求修改配置文件来完成服务的搭建
6. 启动服务,开机自启动
7. 测试验证

1)关闭防火墙与SELinux

代码语言:javascript
复制
# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动
systemctl disable firewalld
# 获取SElinux的状态
setenforce 0
# 临时关闭
vim /etc/selinux/config
SELINUX=disabled

2)配置YUM源

有网配置公网YUM源(腾讯、阿里、华为),无网就配置本地YUM源

代码语言:javascript
复制
# 无网络,配置本地YUM源时,需要先挂载光盘
mount /dev/sr0 /mnt
# 清除所有缓存
yum clean all
# 重新给本地仓库建立缓存
yum makecache

3)安装vsftpd软件(FTP => vsftpd)

代码语言:javascript
复制
yum install vsftpd -y

4)启动ftp服务并添加到开机启动项中

代码语言:javascript
复制
systemctl start vsftpd
systemctl enable vsftpd

5)测试FTP是否安装成功

代码语言:javascript
复制
# 获取网卡IP地址(192.168.91.130)
ifconfig ens33

inet 192.168.91.130 netmask 255.255.255.0 broadcast 192.168.91.255

6)访问

a、基于浏览器的访问(ftp://192.168.91.130/)

只能查看,不支持上传

查看pub目录的位置:

b、基于Windows资源管理器的访问

在资源管理器中访问 ftp://192.168.91.130/

c、基于FlashFxp、FileZilla软件

d、基于ftp以及lftp命令进行连接(Linux与Linux之间的FTP文件传输)

代码语言:javascript
复制
# 安装软件
yum install ftp lftp -y
# 连接
ftp 192.168.91.130

5、FTP的配置文件详解(重点)

在Server服务器端,使用 rpm -ql vsftpd查询vsftpd生成的文件列表信息

代码语言:javascript
复制
# 查询软件生成的文件信息
rpm -ql vsftpd
# 部分相关文件信息如下
/usr/lib/systemd/system/vsftpd.service	启动脚本
/etc/vsftpd					配置文件的目录
/etc/vsftpd/ftpusers				用户列表文件,黑名单
/etc/vsftpd/user_list				用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf			配置文件(主配置文件)
/usr/sbin/vsftpd				程序本身(二进制的命令)
/var/ftp					匿名用户的默认数据根目录
/var/ftp/pub					匿名用户的扩展数据目录

vsftpd配置文件详解:

代码语言:javascript
复制
grep -v ^# /etc/vsftpd/vsftpd.conf

表示获取 vsftpd.conf配置文件中不以#开头的行,在文件注释过多时方便我们查看需要的信息

选项说明:

注:^脱字节,^# 代表获取所有以#开头的行;-v表示取反或排除。

使用man命令查看帮助手册

代码语言:javascript
复制
man 5 vsftpd.conf

二、FTP任务解决方案

任务背景

搭建一个客户服务系统(主要涉及客服资料上传与下载),要求如下

代码语言:javascript
复制
1. 客服人员必须使用用户名密码(kefu/123)的方式登录服务器来下载相应文档
2. 不允许匿名用户访问
3. 客服部门的相关文档保存在指定的目录里/data/kefu    local_root=/data/kefu
4. 客服用户使用用户kefu/123登录后就只能在默认的/data/kefu目录里活动

1、创建客服账号(Server服务器端)

代码语言:javascript
复制
# 创建用户
useradd kefu
# 为用户设置密码
echo 123 |passwd --stdin kefu

2、不允许匿名用户访问

代码语言:javascript
复制
# 进入主配置文件
vim /etc/vsftpd/vsftpd.conf
# 定位到第12行,修改如下
anonymous_enable=NO

在命令模式下(默认)输入 :set nu显示行号信息。

配置修改完毕后,一定要重启vsftpd服务,令其生效。

代码语言:javascript
复制
systemctl restart vsftpd

3、指定账号访问的目录

指定目录:

代码语言:javascript
复制
# -p:一次创建多个层级的目录,先创建data目录
mkdir /data/kefu -p
# 进入主配置文件
vim /etc/vsftpd/vsftpd.conf
# 在第17行添加
local_root=/data/kefu

重启服务:

代码语言:javascript
复制
systemctl restart vsftpd

4、限定用户的目录活动范围

限定kefu用户只能在/data/kefu目录下活动

代码语言:javascript
复制
# 进入主配置文件
vim /etc/vsftp/vsftpd.conf
# 在第18行添加,表示禁锢本地用户的默认数据目录
chroot_local_user=YES

配置修改完毕后,重启vsftpd服务

代码语言:javascript
复制
systemctl restart vsftpd

好了,以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章,只需做这几个动作:点星标、点在看(包括赞)、评论、分享,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持,祝大家生活美满,学业有成,事业蒸蒸日上!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农后端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大家好呀!这里是码农后端。今天来简单聊一聊FTP服务。FTP服务是基于FTP协议(即文件传输协议)的文件传输服务,应用非常广泛。
  • 一、FTP服务概述
    • 1、FTP概述
      • 2、FTP服务的客户端工具
        • 3、FTP的两种运行模式
          • 3.1 主动模式
          • 3.2 被动模式
        • 4、搭建FTP服务(重点)
          • 5、FTP的配置文件详解(重点)
          • 二、FTP任务解决方案
            • 1、创建客服账号(Server服务器端)
              • 2、不允许匿名用户访问
                • 3、指定账号访问的目录
                  • 4、限定用户的目录活动范围
                  相关产品与服务
                  轻量应用服务器
                  轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档