CentOS基础系列五 :搭建FTP服务(详细图解)
一、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服务(详细图解)相关推荐
- Centos搭建FTP服务
前言: Centos 搭建FTP服务学习记录 FTP简介 FTP简称"文件传输协议",用于Internet上的控制文件的双向传输. 在FTP中常遇到两个概念: 下载和上传 &quo ...
- 15.4 xshell使用xftp传输文件;15.5 使用pure-ftpd搭建ftp服务
扩展: vsftp使用mysql存放虚拟用户并验证 : http://www.aminglinux.com/bbs/thread-342-1-1.html ftp的主动和被动模式 : http://w ...
- 在Win7的IIS上搭建FTP服务及用户授权
FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...
- 15.1-15.3 FTP,使用vsftpd搭建FTP服务
FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输. FTP的主要作用就是让用户连接一个远程计算机(这 ...
- Ubuntu麒麟下搭建FTP服务
一.怎么搭建FTP服务: 第一步>>更新库 linuxidc@linuxidc:~$ sudo apt-get update 第二步>>采用如下命令安装VSFTPD的包 lin ...
- 腾讯云Linux云服务器如何搭建FTP服务?
Vsftpd(very secure FTP daemon)是众多 Linux 发行版中默认的 FTP 服务器.本文以 CentOS 7.6 64位操作系统的腾讯云服务器(CVM)为例,使用 vsft ...
- Win10搭建FTP服务器详细教程-附操作截图
Win10搭建FTP服务器详细教程 1.设置电脑防火墙 1.打开"控制面板" →点击 "Windows Defender 防火墙" . 2.点击"允许 ...
- Linux中如何搭建FTP服务
文章目录 如何搭建FTP服务,并设置匿名用户访问FTP服务的最大权限 设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录) 修改匿名用户,本地用户登录的默认根 ...
- 在IIS服务器下搭建FTP服务
为了实现文件局域网或远程共享与访问,在IIS服务器手动搭建一个FTP Server共享服务. 基于Windows 11 操作系统. 一.安装FTP服务 打开"控制面板"->双 ...
最新文章
- php 导出csv字符串,PHP CSV字符串到数组
- (chap7 确保WEB安全的HTTPS) HTTPS和SSL
- python负数取余 整除运算
- Android通过广播监测Wi-Fi和便携式热点开关状态
- 如何在表单中使用Ajax
- 三分钟带你掌握 CSS3 的新属性
- 一切都是关于“ –ilities”的
- python压缩文件
- https 密钥 php,https加密方式是什么
- 北大程序设计实习MOOC 编程作业 《魔兽世界之二:装备》
- java健康检查的作用,spring cloud分布式健康检查
- Java String源码解析
- Android Theme主题继承(SDK下主题和v7包下主题)
- Ansible Loops
- 信用评分-(scorecard)记分卡开发流程,详细介绍分数校准原理calibration
- 如何理解js中的this
- java 前置系统报文通讯方式_基于Geronimo的银行通讯前置系统的设计
- HML_FwLib_8051使用补充说明
- 这里有一份CAD 快捷键指南,请查收~
- Matlab 动态心形线GIF图