Linux复习--Linux服务管理类(SSH服务、DHCP+FTP、DNS服务、Apache服务、Nginx服务、HTTP状态码)
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
一、SSH服务
1、问题引出
哪些设置能够提升SSH远程管理的安全等级?
2、SSH的登录验证方式-口令登录
3、SSH的登录验证方式-密钥登录
4、SSH的登录设置
配置文件:/etc/ssh/sshd_config
vi /etc/ssh/sshd_config#Port 22 # SSH服务默认监听端口#ListenAddress 0.0.0.0 # SSH服务默认监听IP地址#PermitRootLogin yes # 是否允许root用户使用ssh登录#MaxAuthTries 6 # 设置客户端登录失败尝试次数为6次vi /etc/profile#export TMOUT=300 # 设置客户端5分钟无操作自动断开连接
5、答案
- 登录验证模式修改为密钥登录
- 登录端口修改为非22端口以及指定监听IP
- 禁止root用户远程登录
- 设置无操作时自动断开连接
- 设置登录失败后登录尝试次数为6次
- 编写防火墙规则,使用白名单机制放行ssh服务的监听端口
6、扩展题
Q1:SSH连接时认证时间过长如何解决?
vi /etc/ssh/sshd_config#UseDns yes # 取消ssh登录时的dns反向解析请求功能# 注意事项:在/etc/ssh/sshd_config配置文件中注释掉的选项不代表不生效,反而代表默认生效,想关闭某功能,一定要取消注释然后修改为no才可以
Q2:scp和rsync进行远程文件复制有什么区别?
区别 | ||||
---|---|---|---|---|
scp | 全量备份 | 文件级传输 | 加密传输 | 资源消耗低 |
rsync | 差异对比,增量备份 | 分块校验,部分传输 | 非加密传输 | 资源消耗高(零散文件较多) |
二、DHCP+FTP
1、问题引出
描述通过DHCP服务器获取IP地址的过程
2、DHCP租约四部曲
3、DHCP续租
4、DHCP租用失败
- 如果DHCP客户机无法找到DHCP服务器,它将从TCP/IP的B类网段169.254.0.0/16中挑选一个IP地址作为自己的临时IP地址,继续每隔5分钟尝试与DHCP服务器进行通讯,一旦与DHCP服务器取得联系,则客户机放弃自动配置的临时IP地址,而使用DHCP服务器分配的IP地址。
-
DHCP客户机收到DHCP服务器回应的ACK报文后,通过地址冲突检测(arp)发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送DECLINE报文,通知服务器所分配的IP地址不可用。
5、答案
DHCP租约过程分4步:
- 客户机请求IP(客户机发DHCPDISCOVER广播包)
- 服务器响应(服务器发DHCPOFFER广播包)
- 客户机选择IP(客户机发DHCPREQUEST广播包)
- 服务器确定租约(服务器发DHCPACK/DHCPNAK广播包)
6、扩展题
Q1:简单描述FTP的主动模式和被动模式的区别?
Q2:集群环境中,如何保证所有服务器之间的时间误差较小
手动测试同步:ntpdate时间服务器IP地址
自动同步:将命令写入计划任务
三、DNS服务
1、问题引出
描述用户访问网站时DNS的解析过程
2、答案
- 客户机首先查看本地hosts文件是否有解析记录,有则直接用来访问web server
- 没有则向网卡中记录的首选DNS(本地DNS)发起查询请求
- 本地DNS若有记录则返回给客户端,客户端接收接收到后直接访问web server,若没有,则本地DNS向根域服务器发起请求,请求解析对应顶级域的IP地址
- 本地DNS得到顶级域服务器IP后,再向顶级域服务器发起请求,请求解析权威DNS服务器的IP地址
- 本地DNS服务器获取到权威DNS服务器IP地址后,再向其查询具体的完整域名的对应解析记录
- 最终本地DNS将查询到的对应域名的解析记录发送给客户端,并在本地记录一份
3、扩展题
解释权威DNS和递归DNS的含义,并描述只能DNS的实现原理
- 权威DNS是经上一级授权对域名进行解析的DNS服务器,同时它可以把解析授权给其他服务器
- 递归DNS负责接收用户对任何域名的查询,并返回结果给用户,它可以缓存结果避免用户再向上查询
- 智能DNS就是将对用户发起的查询进行判断出是哪个运营商的用户查询,然后将请求转发给相应的运营商IP处理,减少跨运营访问的时间,提高访问速度
四、Apache配置
1、问题引出
公司有一台服务器,需要在上面跑两个网站,并且其中一个网站需要更换新域名,请问如何处理?
网站1:www.a.com网站2:www.b.com(旧) www.d.com(新)
2、rewrite地址重写
<IfModule mod_rewrite.c>#在指定的网站目录下创建文件,并添加以下内容RewriteEngine on# 开启rewrite功能RewriteCond %{HTTP_HOST} ^www.b.com# 把以www.a.com开头的内容赋值给HTTP_HOST变量RewriteRule ^(.*)$ http://www.d.com/$1 [R=permanent,L]# ^(.*)$指代客户端要访问的资源# $1 把.*所指代的内容赋值到$1变量中# R=permanent 永久重定向=301# L 指定该规则为最后一条生效的规则,以后的不再生效</Ifmodule>
3、扩展题
Q1:简述Apache的三种工作模式?
Q2:写出工作中常见的Apache优化策略
- 设置Apache的日志轮替和切割规则,防止日志过大
- 美化错误页面,将错误信息重定向到首页或指定页面
- 屏蔽Apache的版本等信息,防止被人获取Apache的相应版本
- 配置静态缓存,减少对服务器的访问压力
- 禁止解析指定目录下的页面程序,比如upload,禁止解析用户上传的脚本文件
- ......
五、Nginx配置
1、问题引出
Apache和Nginx各有什么优缺点,应该如何选择?
2、Apache的优缺点
优点:
- Apache的rewrite功能比nginx的要强大
- 模块非常多,基本想要的功能都能找到模块
- 存在时间较长,文献较全,bug也相对较少
- 动静态解析都超稳定
缺点:
-
由于工作模式是同步阻塞型,导致资源消耗较高,并发能力较差
3、Nginx的优缺点
优点:
- 轻量级服务,比Apache占用更少的内存及资源
- 并发能力强,nginx处理请求是异步非阻塞的,而Apache则是阻塞型的,在高并发下nginx能保持资源消耗高性能
- 高度模块化设计,编写模块相对简单
- 社区活跃,各种高性能模块产出迅速
缺点:
-
动态处理上需要使用fastcgi连接PHP的FPM服务,相比Apache不占优势
4、Apache与Nginx的选择
Nginx适合做静态处理,简单,效率高
Apache适合做动态处理,稳定,功能强
并发较高的情况下优先选择Nginx,并发要求不高的情况下两者都可以,规模稍大的可以使用Nginx作为反向代理,然后将动态请求负载均衡到后端Apache上。
5、扩展题
Q1:为什么Nginx的并发能力强,资源消耗低?
答:首先了解什么是同步和异步;同步:小明收到快递即将送达的短信,在楼下一直等待快递到达。异步:小明收到快递即将到达的短信,小明不会下楼去取,而是快递小哥到楼下后,打电话通知小明,然后小明下楼取快递。
再了解一下阻塞与非阻塞:阻塞:小明收到快递即将到达的信息后,什么事都不做,一直专门等快递。非阻塞:小明收到快递即将到达的消息后,等快递的时候,还一边敲代码,一边听歌,等着快递送达的消息。
所以Nginx是以异步非阻塞方式工作:
- 客户端发送request,服务器分配work进程来处理
- 能立即处理完的,处理后work进程释放资源,进行下一个request的处理
- 不能立即处理完的work进程注册返回事件,然后接着去处理其他request
- 当之前的request结果返回后,触发返回事件,由空闲work进程接着处理通过这种快速处理,快速释放请求的方式,达到同样的配置可以处理更大并发量的目的
Q2:写出几个Nginx的常用模块,并描述其功能
- http_ssl_module:实现服务器加密传输的模块,部署完成后可使用https://协议进程数据传输,保证数据传输过程的安全
- http_image_filter_module:通过该模块可以实现图片裁剪,将过大的图片裁剪为指定大小的图片,生成缩略图,保证传输速率,该选项默认不开启
- http_rewrite_module:Nginx的地址重写模块,功能与Apache的一样,可以实现通过正则匹配来完成条件判断,然后进行域名或url的重写。
六、Http状态码
写出几个常见的GTTP状态码,并解释出现原因
1、Http状态码分类
HTTP状态码是五个不同的类别:
- 1**:信息,服务器收到请求,需要请求者继续执行操作
- 2**:成功,操作被成功接收并处理
- 3**:重定向,需要进一步的操作以完成请求
- 4**:客户端错误,请求包含语法错误或无法完成请求
- 5**:服务器错误,服务器在处理请求的过程中发生了错误
2、1**:信息响应
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
100 | Continue | 继续。客户端应继续其请求 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
3、2**:成功响应
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接收。已经接收请求,但未处理完成 |
203 | Non-Authoritative Information | 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求 |
4、3**:重定向
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | Found | 临时移动。与301类似。但资源只是临时 被移动。客户端应继续使用原有URI |
303 | See Other | 查看其他地址。与301类似。使用GET和POST请求查看 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问 |
307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向 |
5、4**:客户端错误
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unautherized | 请求要求用户的身份认证 |
402 | Payment Requied | 保留,将来使用 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页) |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
6、5**:服务器端错误
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理 |
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!
相关文章:

Linux复习--Linux服务管理类(SSH服务、DHCP+FTP、DNS服务、Apache服务、Nginx服务、HTTP状态码)
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、SSH服务 1、问题引出 哪些设置能够提升SSH远程管理的安全等级? 2、SSH的登录验证方式-口令登录 3、SSH的登录验证方式-密钥登录 4、…...

如何用大模型来提升学习效率?
自从2022年底ChatGPT横空出世以来,在过去的十几个月里,生成式人工智能的浪潮席卷并改变着各行各业。 2023年一月,在线课程供应商Study.com曾向1000名18岁以上的学生发起的一项调查显示,当时就已经有超过89%的学生使用ChatGPT来完…...
SQL进阶技巧:如何优雅求解指标累计去重问题?
目录 0 需求概述 1 数据准备 2 问题分析 3 小结 0 需求概述 近期公司开发某项学习功能,改功能有很多学习内容(如java,C,python等方向),每天都会有众多学习用户学习某一项或者多项学习内容。产生数据如下表: 产生数据如下表: 日期 内容 学习用户 2022…...

大数据毕业设计选题推荐-国产电影数据分析-Python数据可视化-Hive-Hadoop-Spark
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

Linux:无法为立即文档创建临时文件: 设备上没有空间
虚拟机磁盘空间不足解决记录 1、问题描述2、问题解决 1、问题描述 在命令行输入命令按Tab键时出现如下报错: 很明显,设备上没有空间,即磁盘空间不足。通过命令查看具体情况如下: df -h2、问题解决 首先想到的是虚拟机扩容。关机虚…...
【SQL】掌握SQL查询技巧:数据筛选与限制
目录 1. DISTINCT:避免重复记录1.1 示意图1.2 使用场景 2. LIMIT:控制查询结果的数量2.1 示意图2.2 使用场景 3. OFFSET:跳过前几行3.1 示意图3.2 使用场景 4. WHERE子句:精细控制数据过滤4.1 示意图4.2 运算符详细说明4.3 基本条…...

大学生社团活动系统小程序的设计
管理员账户功能包括:系统首页,个人中心,学生管理,社长管理,社团分类管理,社团信息管理,社团加入管理,社团活动管理,轮播图信息 微信端账号功能包括:系统首页…...

codetop标签双指针题目大全解析(三),双指针刷穿地心!!!!!
复习比学习更重要,更需要投入时间,更需要花费精力 1.字符串的排列2.找出字符串中第一个匹配的下标3.最大连续1的个数II4.数组中的山脉5.移除元素6.两个数组的交集II7.有序数组的平方8.删除有序数组中的重复项II9.寻找重复数10.水果成篮 1.字符串的排列 …...

HarmonyOS应用六之应用程序进阶一
目录: 1、UIAbility的冷启动和UIAbility热启动2、静态资源和动态资源的访问3、页面跳转3.1、页面返回跳转 4、HAR的ArkUI组件、接口、资源,供其他应用或当前应用的其他模块引用4.1、导出HAR的ArkUI组件4.2、引用HAR的ArkUI组件 5、循环渲染6、状态管理最…...
vue开发中变量第一次双向绑定无效,界面并没有变化,第二次则又好了。
这个问题出现的太频繁了,基本大部分用户都遇到这个情况。大部分是弹框的情况。代码如下: <el-dialog:visible.sync="isShowCode" @close="closeCode()"><div class="u4259f"><edite-edite-code isNoShowClose="true"…...
C++基础(8)——string的相关面试题
目录 1.字符串转成整数 2.字符串相加 3.高精度加法模板(acwing) 4.验证回文串 1.字符串转成整数 题目:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。数值为0或者字符串不是一个合法的数值则返回0。输入的…...

【Docker】06-DockerCompose
1. Docker compose 2. Docker Compose部署项目 docker-compose.yml version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3307:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "/root/docker/mysql/…...

代码随想录训练营Day27 | 77. 组合 | 216.组合总和III | 17.电话号码的字母组合
学习文档:代码随想录 (programmercarl.com) 视频链接:代码随想录算法公开课 | 最强算法公开课 | 代码随想录 (programmercarl.com) Leetcode 77. 组合 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以…...

Linux文件重定向文件缓冲区
目录 一、C文件接口 二、系统文件I/O 2.1认识系统文件I/O 2.2系统文件I/O 2.3系统调用和库函数 2.4open( )的返回值--文件描述符 2.5访问文件的本质 三、文件重定向 3.1认识文件重定向 3.2文件重定向的本质 3.3在shell中添加重定向功能 3.4stdout和stderr 3.5如何理…...

训练贪吃蛇ai的后续记录
发现可以结合遗传算法的思路,产生更好的效果。 即每训练一段时间,就停下来测试一下新模型的效果。如果效果优于记录中最好的,则继续导入该模型并训练。重复几次,效果可能更好。 例如,昨晚我便通过唯一一个在十次测试中…...

WPF 手撸插件 八 操作数据库一
1、本文将使用SqlSugar创建Sqlite数据库,进行入门的增删改查等操作。擦,咋写着写着凌乱起来了。 SqlSugar官方文档:简单示例,1分钟入门 - SqlSugar 5x - .NET果糖网 2、环境SqlSugar V5.0版本需要.Net Framework 4.6 ࿰…...

代数结构基础 - 离散数学系列(八)
目录 1. 群(Group) 群的定义 群的示例 2. 环(Ring) 环的定义 环的示例 3. 域(Field) 域的定义 域的示例 域在密码学中的应用 4. 实际应用场景 1. 对称性与加密 2. 误差检测与纠正 3. 数据编码…...
函数的arguments为什么不是数组?如何转化为数组?
因为arguments本身并不能调用数组方法,它是一个另外一种对象类型,只不过属性从0开始排,依次为0 1 2…最后还有callee和length属性,我们也把这样的对象成为类数组。 常见的类数组还有: 1.用getElementsByTagName/Class…...

Java之反射
目录 反射 定义 主要用途 反射相关的类 Class类中【获得类相关方法】 Class类中【获得类中属性相关的方法】 Class类中【获得类中注解相关的方法】 Class类中【获得类中构造器相关的方法】 Class类中【获得类中方法相关的方法】 获得Class对象 代码示例1 代码示例…...

3dsMax添加天空盒
点击渲染,环境 , 点击位图 找到要设置的天空HDR,可以使用HDR(EXR)贴图 一个可以下载HDR贴图的网站 https://polyhaven.com/hdris在渲染的时候不要使用使用微软输入法,3dsmax会卡死, 在渲染的时候不要使用使用微软…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...