CentOS8服务篇10:FTP服务器配置与管理
一、安装与启动FTP服务器
1、安装VSFTP服务器所需要的安装包
#yum -y install vsftpd
2、查看配置文件参数
Vim /etc/vsftpd/vsftpd.conf
(1)是否允许匿名登录
anonymous_enable=YES
该行用于控制是否允许匿名用户登录。
(2)是否允许匿名用户创建目录
anon_mkdir_write_enable=YES
该行控制是否允许匿名用户创建目录。
(3)设置传输速度
anon_max_rate=0
该行设置匿名用户的最大数据传输速度,单位是Byte/s。
(4) 是否允许本地用户登录
local_enable=YES
该行用户控制是否允许本地用户登录。
(5) 设置是否有写权限
write_enable=YES
该行用于设置使用者是否有写权限,就是上传文件的权限。
(6) 设置是否开启目录提示
dirmessage_enable=YES
该行用于设置是否开启目录提示功能。
(7)设置日志文件
xferlog_enable=YES
该行用于设置是否设置一个用于记录下载和上传的日志文件。
(8) 使用20端口数据传输
connect_from_port_20=YES
该行设置以port模式进行数据传输时使用20端口。
(9) 设置日志的格式
xferlog_std_format=YES
该行用于设置日志的格式是否采用标准格式。
3、关闭防火墙和SELinux,启动或重启服务器
安装完后,可以不改变“vsftpd.conf”配置文件的内容,直接输入如下命令:
#systemctl stop firewalld
#setenforce 0
#systemctl start vsftpd
#systemctl enable vsftpd
来启动FTP服务器。
每次对服务器配置文件修改保存后,要重启服务器,要输入以下命令:
service vsftpd restart 来重启FTP服务器。
4、安装telnet和ftp命令
在安装光盘的“packages”目录中找到“telnet-0.17-64.el7.x86_64.rpm”和“ftp-0.17-67.el7.x86_64.rpm”文件,然后在终端窗口,输入如下命令:
rpm –ivh telnet-0.17-64el7.x86_64.i386.rpm
rpm –ivh ftp-0.17-67el7.x86_64.i386.rpm
5、测试FTP服务器
在终端窗口,输入命令:
telnet 192.168.1.9 21
如果FTP服务器启动正常,会出现如下内容:
Trying IP地址...
Connected to localhost.
Escape character is '^]'.
220 (vsFTPd 3.0.2)
看到了“220 (vsFTPd 3.0.2)”表示VSFTP服务器就架设成功,客户可以访问服务器了。
6、简单登录FTP服务器
在终端窗口,输入命令:
ftp 192.168.1.9
准备登录FTP服务器。会出现如下信息:
Connected to 192.168.1.9 (192.168.1.9).
220 (vsFTPd 3.0.2)
Name (192.168.1.9:root):
输入一个已经存在的Linux用户名,出现如下的输入密码提示:
331 Please specify the password.
Password:
用户的登录Linux的密码,会出现登录成功的提示。内容如下:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
成功登录FTP服务器。
7、关闭FTP服务器
如果想关闭FTP服务器,输入如下命令:
#systemctl stop vsftpd
停止VSFTP服务器。
二、FTP服务器基本应用
1、修改VSFTP服务器配置文件
进入在终端中,输入命令下面命令字段打开配置文件:
Vim /etc/vsftpd/vsftpd.conf
打开配置文件后,根据任务要求,找到如下命令进行更改:
anonymous_enable=YES
用于控制是否允许匿名用户登录。
将下面两行命令字段前面的“#”删除,使它们从注释状态变为有效状态。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
这两行命令字段的功能分别是允许匿名用户上传和允许匿名用户新建目录,重命名删除目录。
保存退出。
2、修改访问目录的用户权限
修改pub文件夹的权限使之任何用户都可以读写。命令如下:
chmod u=rwx,g=rwx,o=rwx /var/ftp/pub
目的将pub目录使得任何用户都可以读写。之后,输入以下命令:
systemctl restart vsftpd
重新启动FTP服务器。
3、配置Windows客户机
设置Windows客户机与CentOS7 FTP服务器为同一网段,使用“ping”命令测通服务器。
4、测试登录服务器
上面的设置成功后,开始测试登录服务器。打开本地主机的浏览器,在地址栏中,输入“ftp://192.168.1.9”,(FTP服务器的IP地址)单击回车,登录FTP服务器,如图所示。

5、测试建立与拷贝文件
双击“pub”目录,打开该目录,从本计算机中可以拷贝一些文件到“pub”目录中,也可以在该目录下建立一些文件。在图中目录“aaa”,文件“abab”、“sdsd”为CentOS7系统下建立的文件,“项目1……”为拷贝到该目录的文件。

三、FTP服务器的本地用户控制
1、修改VSFTP服务器配置文件
在终端中输入以下命令打开配置文件:
vim /etc/vsftpd/vsftpd.conf
在配置文件找到“anonymous_enable=YES”一行,将其中的“YES”改为“NO”,即为“anonymous_enable=NO”意思是不允许以匿名方式登录FTP服务器。
保存退出。
输入如下命令:
Systemctl restart vsftpd
重新启动服务器。
2、建立用户
进入终端,在“#”提示符下输入:
useradd first
改行是建立一个用户名为“first”的用户。
passwd first
之后会出现输入密码的提示,两次输入一样的密码,“first”用户的密码建立成功。
3、查看用户目录并建立测试文件
建立了用户后,在“home”文件夹下就会建立一个与用户名同名的文件夹,就是在“home”文件夹下就有一个“first”的文件夹。在该文件夹下使用“touch file1”和“touch file2”命令来建立两个文件file1、file2用于测试。
touch file1
touch file2
4、测试登录服务器
切换到客户端Windows主机上,在资源管理器的地址栏中重新输入ftp://192.168.1.9,回车后,这时不再直接出现目录内容,而是出现了登录窗口,如图所示。

单击“登录”按钮,就出现first目录中的文件了,在Widows下用户可以建立文件或文件夹,如图所示。

5、查看建立的目录
回到服务器在“first”目录下输入“ll”命令查看文件,会看到在客户端建立的文件夹,如图所示。

四、FTP服务器登录限制
1、不允许使用者匿名登录
这里要求禁止匿名用户登录,只有符合安全条件的用户才可以登录。
这一项在前面已经有过叙述,这里只是提及。具体请参看前面步骤三部分即可。
2、只开放匿名登录
在终端中输入如下命令打开配置文件:
vim /etc/vsftpd/vsftpd.conf
在配置文件找到“anonymous_enable=??”一行,如果“??”为“YES”则不需要更改,如果为“NO”请改回“YES”,即为“anonymous_enable=YES”意思是允许以匿名方式登录FTP服务器。
再寻找“local_enable=??”一行,如果“??”为“NO”则不需要更改,如果为“YES”请改为“NO”,即为“local_enable= NO”意思是禁止本地用户登录FTP服务器。
最后保存配置文件,退出编辑。重启FTP服务即可只开放匿名登录。
3、不允许特定账户登录
(1)修改“/etc/vsftpd/vsftpd.conf”文件
在终端中输入如下命令打开配置文件:
Vim /etc/vsftpd/vsftpd.conf
在配置文件找到“userlist_enable=??”一行,如果“??”为“YES”则不需要更改,如果为“NO”请改回“YES”,即为“userlist_enable==YES”意思是使用者登录时,VSFTP服务器会去读取“/etc/vsftpd/user_list”设置文件。
在该行之后,手工添加一行“userlist_deny=YES”,表示“/etc/vsftpd/user_list”设置文件中的使用者会被拒绝登录。
最后保存配置文件,退出编辑。
(2) 修改“/etc/vsftpd/user_list”设置文件
在终端中输入如下命令打开“/etc/vsftpd/user_list”配置文件:
vim /etc/vsftpd/user_list
在配置文件最后,添加想要拒绝的登录的账户,比如“user”即可。
4、设置不允许登录的主机和网络
(1)测试与启动tcp-wrappers
本CentOS7系统默认已经安装了tcp_wrappers,如果不能够确定是否安装,可以输入如下命令来测试:
rpm -qa|grep tcp_wrappers
如果出现了“tcp_wrappers-7.6-77.el7.x86_64”和“tcp_wrappers-libs-7.6-77.el7.x86_64”之类的信息,表明已经安装了tcp_wrappers。
然后修改“/etc/vsftpd/vsftpd.conf”文件,找到“tcp_wrappers=YES”一行,默认是启动状态,如果存在表示tcp_wrappers已启动直接退出即可。如果该行不存在或内容不一样,请添加或修改之。
(2)修改“/etc/hosts.deny”文件
接着使用编辑软件修改“/etc/hosts.deny”文件,在该文件最后添加一行“vsftpd: IP 地址 网段 或域名”之类的内容。
比如不希望IP地址为“192.168.2.132”的主机、“192.168.3.0”网段的所有主机以及域名为“test.com”的主机不能访问该FTP服务器,可以在“/etc/hosts.deny”文件中添加如下一行:
vsftpd:192.168.2.132 192.168.3.0/255.255.255.0 test.com
即可实现以上要求。
相关文章:
CentOS8服务篇10:FTP服务器配置与管理
一、安装与启动FTP服务器 1、安装VSFTP服务器所需要的安装包 #yum -y install vsftpd 2、查看配置文件参数 Vim /etc/vsftpd/vsftpd.conf (1)是否允许匿名登录 anonymous_enableYES 该行用于控制是否允许匿名用户登录。 (2&…...
笔试强训3.14
一、选择题 1.以下说法错误的是(C) A.数组是一个对象 B.数组不是一种原生类 C.数组的大小可以任意改变 D.在Java中,数组存储在堆中连续内存空间里 相关知识点:原生/内置数组是那八个,其他的都是引用的,借…...
elasticsearch 环境搭建和基本操作
参考资料 适合后端编程人员的elasticsearch快速实战教程 ElasticSearch最新实战教程 ElasticSearch配套笔记 自制搜索引擎 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/setup.html restful风格的api REST 设计风格 例如以下springboot示例 RestContr…...
IDEA操作:Springboot项目打包为jar包并运行
在IDEA环境下对Springboot项目打包为jar包且在terminal运行操作 1、 2、 3、注意:在项目目录里创建一个用来存放jar包的文件夹(res),该路径不能使用IDEA设置的默认路径,必须手动创建。 4、 5、点击ok后加载运行包 (8…...
原理底层计划---JVM
二、JVM对空间大小怎么配置?各区域怎么划? 新生代:短时间生成,可以马上回收 老生代:少部分对象会存在很久,回收策略应不同 三、JVM哪些内存区域会发生内存溢出(程序计数器不会) …...
CSDN-猜年龄、纸牌三角形、排他平方数
猜年龄 原题链接:https://edu.csdn.net/skill/practice/algorithm-a413078fb6e74644b8c9f6e28896e377/2258 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加某个重要会议…...
【Linux】软件包管理器 yum
什么是软件包和软件包管理器 在 Linux 下需要安装软件时, 最原始的办法就是下载到程序的源代码, 进行编译得到可执行程序。但是这样太麻烦了,所以有些人就把一些常用的软件提前编译好, 做成软件包 ( 就相当于windows上的软件安装程序)放在服…...
一天吃透TCP面试八股文
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...
zzu天梯赛选拔
C. NANA去上课 — 简单数学 需要记录上一步处在哪个位置 然后判断如果是同一侧移动距离就是abs(x1 - x2) 如果不同就是x1 x2 #include <iostream> #include <cmath> using namespace std; #define int long long signed main() {int n; c…...
【C语言】一篇让你彻底吃透(结构体与结构体位段)
本章重点 主要讲解结构体和位移动的使用和定义与声明,并且结构体和位段在内存中是如何存储的。 文章目录结构体结构体类型的声明结构体特殊的声明结构体变量的定义和初始化结构体成员的访问结构的自引用结构体内存对齐结构体传参位段什么是位段位段的内存分配位段的…...
数据结构之二叉树构建、广度/深度优先(前序、中序、后序)遍历
一、二叉树 1.1 树 说到树,我们暂时忘记学习,来看一下大自然的树: 哈哈 以上照片是自己拍的,大家凑合看看 回归正题,那么在数据结构中,树是什么呢,通过上面的图片大家也可以理解 树是一种非…...
“国产版ChatGPT”文心一言发布会现场Demo硬核复现
文章目录前言实验结果一、文学创作问题1 :《三体》的作者是哪里人?问题2:可以总结下三体的核心内容吗?如果要续写的话,可以从哪些角度出发?问题3:如何从哲学角度来进行续写?问题4:电…...
202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己,依心而行
202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己,依心而行《不被定义的女孩》作者ASEN,很棒的书。处处透露着洒脱,通透,悦己,阅世界的自由的氛围和态度! 部分节选如下: 让自己活得…...
SpringBoot帮你优雅的关闭WEB应用程序
Graceful shutdown 应用 Graceful shutdown说明 Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and servlet-based web applications. It occurs as part of closing the applica…...
递归与递推
递归 直白理解:函数在其内部调用自身(自己调用自己)所有递归都可以采用递归搜索树来理解递归的特点: 一般来说代码较为简短,但是理解难度大一般时间和空间消耗较大,容易产生重复计算,可能爆栈 …...
使用<style scoped>导致的样式问题
问题描述: 今天使用开源组件库TDesign的自动补全组件时,遇到了一个样式失效问题,一开始怎么也找不到问题出在哪,后面一个偶然去掉了scoped,竟然发现样式竟然正常了,具体原因不知道在哪,有大佬知…...
Elasticsearch深入理解(十八)-集群关键指标及调优指南
1、CPU使用率 CPU使用率是指在一段时间内CPU执行程序的百分比,它是衡量系统资源利用率的一种指标。 1.1 详细说明: 在Elasticsearch中,高的CPU使用率通常意味着节点正在执行大量的计算任务,这可能是因为索引和搜索操作的负载较大…...
Transformer到底为何这么牛
从注意力机制(attention)开始,近两年提及最多的就是Transformer了,那么Transformer到底是什么机制,凭啥这么牛?各个领域都能用?一文带你揭开Transformer的神秘面纱。 目录 1.深度学习࿰…...
【Spring事务】声明式事务 使用详解
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 声明式事务一、编程式事务二、声明式事务&…...
学习28个案例总结
学习前 对于之前遇到的问题没有及时总结,导致做什么事情都是新的一样。没有把之前学习到接触到的内容应用上。通过这次对28个案例的学习。把之前遇到的问题总结成自己的经验,在以后的开发过程中避免踩重复性的坑。多看帮助少走弯路。 学习中 对28个案例…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
