一、FTP服务介绍

FTP ( File Transfer Protocol,文件传输服务)服务是一种专门用于文件传输的服务,该服务使用的是文件传输协议,使用该服务将极大地方便文件的传输与管理。其最主要的功能是在服务器端与客户端之间进行文件的传输。FTP是以TCP封包的模式来进行服务器与客户端之间的连接的,当连接建立后,用户便可以在客户端连接FTP服务器来进行文件的上传与下载,同时也可以直接管理用户在FTP服务器上的文件。

1. 工作原理
FTP是基于客户端/服务器模式的,其工作原理如下
(1)客户端向服务器发出连接请求,同时客户端系统动态打开一个大于1024的端口(比如 2888 )等候服务器连接。

(2)当FTP服务器在端口21侦听到该请求后,会在客户端1031端口和服务器的21端口之间建立起一个FTP会话连接。

(3)要传输数据时,FTP客户端再动态打开一个大于1024的端口(比如2889)连接到服务器的20端口,并在这两个端口之间进行数据的传输。

(4)数据传输完毕后,FTP客户端将断开与FTP服务器的连接,客户端上动态分配的端口将自动释放掉。

二、安装FTP服务

在使用ftp服务之前一定要记得关闭防火墙selinux

[root@centos7-108 etc]# systemctl stop firewalld
[root@centos7-108 etc]# setenforce 0
setenforce: SELinux is disabled

1. 安装ftp软件包

[root@centos8-106 home]# rpm -qa | grep vsftpd
vsftpd-3.0.3-32.el8.x86_64

若没有发现则没有安装软件包,此时我们使用yum安装软件包
sudo 表示已管理员的身份执行

[rion@centos7-108 ~]# yum install vsftpd -y

2. FTP服务启动

systemctl start vsftpd.service

3. FTP开机启动

systemctl enable vsftpd.service

三、FTP配置文件

1. 配置文件介绍

[root@centos7-108 ~]# tree /etc/vsftpd/
/etc/vsftpd/
├── ftpusers                        # 所有位于此文件内的用户都不能访问vsFTPd服务。
├── user_list                       # ftp 用户名单,可以设置白名单或黑名单
├── vsftpd.conf                     # ftp配置文件
└── vsftpd_conf_migrate.sh  /etc/pam.d/vsftpd
# vsFTPd的The Pluggable Authentication Module配置文件,它主要用来加强vsFTPd服务器的用户认证。

先备份原来的vsftpd配置文件,然后去掉里面的注释行,剩下的就是默认配置

[root@centos7-108 ~]# cd /etc/vsftpd/
[root@centos7-108 vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@centos7-108 vsftpd]# grep -v "#" vsftpd.conf.bak > vsftpd.conf
[root@centos7-108 vsftpd]# cat vsftpd.conf
anonymous_enable=YES           # 匿名用户是否运行登录
local_enable=YES               # 允许本地用户登录 FTP
write_enable=YES               # 运行用户在 FTP 目录有写入的权限
local_umask=022                    # 设置本地用户的文件生成掩码为 022, 默认是 077
dirmessage_enable=YES          # 激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES             # 启用上传和下载日志功能
connect_from_port_20=YES       # 启用 FTP 数据端口的连接请求
xferlog_std_format=YES         # 是否使用标准的 ftpd xferlog 日志文件格式
listen=NO                      # 使 vsftpd 处于独立启动监听端口模式
listen_ipv6=YESpam_service_name=vsftpd            # 设置PAM认证服务配置文件名称, 文件存放在/etc/pam.d/目录
userlist_enable=YES                # 用户列表中的用户是否允许登录 FTP 服务器,默认是不允许
tcp_wrappers=YES               # 户列表中的用户是否允许登录 FTP 服务器,默认是不允许
[root@centos7-108 vsftpd]#

2. 实现匿名登录管理

匿名用户登录
查看ftp配置文件/etc/vsftpd/vsftpd.conf

[root@centos7-108 etc]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES           # 设置是否运行匿名用户登录

此时我们使用匿名用户登录ftp服务,匿名用户的账号名默认为anonymous ,密码为空

也可以通过文件管理器访问ftp服务

匿名用户配置参数
在配置文件中加入参数,给予上传文件夹777权限。

# 基于pub文件777权限
[root@centos7-108 ftp]# chmod 777 pub
[root@centos7-108 ftp]# ll
总用量 0
drwxrwxrwx 2 root root 21 4月  22 17:54 pub# 实现匿名用户上传文件,创建文件夹,删除权限等
[root@centos7-108 ftp]# cat /etc/vsftpd/vsftpd.conf
anon_root=/var/ftp/pub         # 定义上传文件开关
anon_upload_enable=YES         # 匿名用户创建文件夹权限
anon_mkdir_write_enable=YES        # 匿名用户写入权限
anon_other_write_enable=NO     # 匿名用户带宽限制,字节为单位。50000=5KB
anon_max_rate=50000                # 匿名用户上传速率


测试,我们登录ftp,上传文件试试,成功上传了文件

3. 实现本地用户登录

本地用户创建及配置参数

  • 创建本地用户
  • 添加配置文件参数

(1)创建用户 jack

useradd jack     # 创建用户Jack
passwd jack         # 设置 jack 的登录密码
useradd tom
passwd tom  # 创建用户,但是不能登录终端,可以登录FTP
useradd -s /sbin/nologin mark               # 创建用户,当不能登录终端
sed -i '$a /sbin/nologin' /etc/shells         # 用户登录登录FTP



(2)本地用户配置参数

local_enable=YES                            # 运行本地用户登录,只有在此选项为YES 时,下面的选项才生效
chroot_list_enable=YES                     # 设置用户不能离开主目录
chroot_list_file=/etc/vsftpd/chroot_list   # 设置不能离开主目录的用户表
userlist_enable=YES                            # 启动用户列表
userlist_deny=NO                           # NO,为白名单,表示用户列表中的用户可以登录,为YES则表示列表中的用户不能登录
userlist_file=/etc/vsftpd/user_list            # 设置用户列表
allow_writeable_chroot=yes         # 运行用户上传文件
local_root=/home                   # 指定本地用户登录时切换的目录

(3)测试,先只打开local_enable=YES ,运行本地用户登录

匿名用户登录失败

jack用户登录成功

小案例
实现jack用户可以访问同级目录下的文件,tom用户不能离开主目录。用户登录默认切换到home下面

实现:
配置文件

#====== 本地用户配置 =====#
local_enable=YES
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
local_root=/home

  • chroot_list 文件
[root@centos7-108 vsftpd]# cat /etc/vsftpd/chroot_list
# 设置不能离开主目录
tom
  • user_list 文件
[root@centos7-108 vsftpd]# cat /etc/vsftpd/user_list
jack
tom
  • 测试tom
  • 测试jack

4. 连接配置

## ============ 自定义连接配置  =============== ##
max_clients=100             # 最多允许100个客户端连接
max_per_ip=5            # 同时在线最多5个
idle_session_timeout=15     # 设置连接超时时间

好了,这是些简单的FTP配置,更深入的配置我也不会,哈哈。希望大家能学有所成,天天开心哈。

四、工具介绍

FTP连接工具很多,比如常见的有winscp,可以实现文件传输,还有filezilla,xftp等等。
使用工具可以很方便传输文件。

  • filezilla
    我使用的是这个,之前有用过winscp,后面不知道为啥不用了。这是软件截图,用着还可以。

CentOS基础系列五 :搭建FTP服务(详细图解)相关推荐

  1. Centos搭建FTP服务

    前言: Centos 搭建FTP服务学习记录 FTP简介 FTP简称"文件传输协议",用于Internet上的控制文件的双向传输. 在FTP中常遇到两个概念: 下载和上传 &quo ...

  2. 15.4 xshell使用xftp传输文件;15.5 使用pure-ftpd搭建ftp服务

    扩展: vsftp使用mysql存放虚拟用户并验证 : http://www.aminglinux.com/bbs/thread-342-1-1.html ftp的主动和被动模式 : http://w ...

  3. 在Win7的IIS上搭建FTP服务及用户授权

    FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...

  4. 15.1-15.3 FTP,使用vsftpd搭建FTP服务

    FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输. FTP的主要作用就是让用户连接一个远程计算机(这 ...

  5. Ubuntu麒麟下搭建FTP服务

    一.怎么搭建FTP服务: 第一步>>更新库 linuxidc@linuxidc:~$ sudo apt-get update 第二步>>采用如下命令安装VSFTPD的包 lin ...

  6. 腾讯云Linux云服务器如何搭建FTP服务?

    Vsftpd(very secure FTP daemon)是众多 Linux 发行版中默认的 FTP 服务器.本文以 CentOS 7.6 64位操作系统的腾讯云服务器(CVM)为例,使用 vsft ...

  7. Win10搭建FTP服务器详细教程-附操作截图

    Win10搭建FTP服务器详细教程 1.设置电脑防火墙 1.打开"控制面板" →点击 "Windows Defender 防火墙" . 2.点击"允许 ...

  8. Linux中如何搭建FTP服务

    文章目录 如何搭建FTP服务,并设置匿名用户访问FTP服务的最大权限 设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录) 修改匿名用户,本地用户登录的默认根 ...

  9. 在IIS服务器下搭建FTP服务

    为了实现文件局域网或远程共享与访问,在IIS服务器手动搭建一个FTP Server共享服务. 基于Windows 11 操作系统. 一.安装FTP服务 打开"控制面板"->双 ...

最新文章

  1. php 导出csv字符串,PHP CSV字符串到数组
  2. (chap7 确保WEB安全的HTTPS) HTTPS和SSL
  3. python负数取余 整除运算
  4. Android通过广播监测Wi-Fi和便携式热点开关状态
  5. 如何在表单中使用Ajax
  6. 三分钟带你掌握 CSS3 的新属性
  7. 一切都是关于“ –ilities”的
  8. python压缩文件
  9. https 密钥 php,https加密方式是什么
  10. 北大程序设计实习MOOC 编程作业 《魔兽世界之二:装备》
  11. java健康检查的作用,spring cloud分布式健康检查
  12. Java String源码解析
  13. Android Theme主题继承(SDK下主题和v7包下主题)
  14. Ansible Loops
  15. 信用评分-(scorecard)记分卡开发流程,详细介绍分数校准原理calibration
  16. 如何理解js中的this
  17. java 前置系统报文通讯方式_基于Geronimo的银行通讯前置系统的设计
  18. HML_FwLib_8051使用补充说明
  19. 这里有一份CAD 快捷键指南,请查收~
  20. Matlab 动态心形线GIF图

热门文章

  1. Python:7-3 统计单词数-应用 (10分)
  2. 射影几何----二次曲线的三角形调和定理【原创】
  3. python3网络爬虫开发实战pdf 崔庆才 百度网盘分享
  4. 郑州大学统考英语计算机题库,郑州大学远程教育统考大学英语B(5)模拟试题...
  5. 智慧城市、智慧园区、智慧工厂、智慧电力等应用案例展示
  6. matlab练习程序(全景图到穹顶图)
  7. JSR303校验前端传递的数据
  8. 显卡测试软件3d mark,最强显卡测试软件!AquaMark3
  9. 读书摘抄3:德伯家的苔丝
  10. 柔性生产制造实验系统(工程型)