【Lehr】一些入门的运维知识学习
基本内容
网络服务
邮件服务
网页服务
文件服务(比如FileZilla那种能设置权限的)
如何访问到一个网站
先局域网DHCP动态分配IP
然后通过DNS解析域名找到目标的IP(就像你查个单位的名字,然后得到具体地址才能过去)
MYSQL本质就是一个没有图显但是性能强大的二维表格
最常见的网站搭建平台模式
Linux+Apache服务器+Mysql+Php/Java
然后还需要Rsync镜像备份,云备份,私有云之类的
当并发大了,可以把MySQL单独独立到另外一台服务器
因为Apache就很吃资源的
然后为了不让开发工程师乱传文件,给他们搭个平台
最后还需要一个监控集群看什么访问量,服务器挂没挂什么的
CentOS 6 vs 7
默认防火墙从iptables变成了firewalld
默认数据库从MySQL变成了MariaDB
但其实MySQL更好些,只不过很多厂商害怕MySQL以后不开源了而已
然后服务的启动和停止也变了
service mysql start --》 systemctl start mysql
反正各种东西也有些变化(毕竟我不是运维我不管需要了再去查哈哈哈)
常见网络协议和端口
网络地址:IPv4,IPv6 每个主机唯一一个IP
比如你192.168.0.0
10.0.0.0
172.16.0.0
这就说明你是在局域网,不能直接上网的
物理地址:Mac地址,为每一个设备设置一个固定的硬件地址,Mac地址工作在链路层
网关和路由器
网关:局域网出口
- 不同网段数据转发
- 路由选择
- 默认路由
- NAT转换:大量不上网的机子的IP是可以一样的,但上网需要唯一IP,NAT转换其实就是等于找个人代发,就是在网关这里会有一次转化,你的私有IP会转为公网IP。这样能缓解IPv4的IP不足的问题
路由器:跨网段通信,路由选择(看路由协议和算法),这是动态的,还有一种静态的,就是直接规定你必须怎么怎么走
SSH安全远程管理协议
以前是用Telnet但是它是明文,你被抓包就完了,所以用Secure Shell (SSH)
TCP 22号端口
账户密码(口令)模式
-
客户端发账户密码
-
服务器拿到了拆开去passwd和shadow里找
-
认证对了就连接
-
但是如果你发账户密码的包被劫走了别人直接拿这个包去连接你也完了
- 看图
密钥对模式:
具体原理:
TCP Wrappers简单防火墙
Linux里预装的简单版防火墙
对有状态连接(TCP)的特定服务进行安全检测和访问控制
界定凡是调用了libwrap.so库文件的程序就收到安全控制,常见的有sshd,telnet
DHCP服务
无限路由器就有DHCP功能:在应用层上的局域网网络协议,数据传输使用UDP不可靠传输协议工作,通常被用于大型局域网环境,主要作用是几种管理,分配网络资源(给你限速),使网络环境中的主机能动态获得IP地址,Gateway地址,DNS服务器地址等信息,并提高地址的使用率
工作原理:租约四部曲+续租
没IP的网先向局域网广播,如果有DHCP服务器接受到了就回一个消息(Offer),然后客户机要确认要用它的东西,又发一个请求,DHCP服务器接受到了请求之后再做一次确认给不给他。
举个例子,大学毕业去投简历,投很多家,然后有公司收到了想要你就给你发Offer,你拿到了Offer会考虑一下(可能你手上不止一个Offer就会考虑工资什么什么的),确认了之后你给公司发消息说:我要来。公司收到消息之后看下,这个位置确实没有别人先比你回复把位置占了之类的啥特殊情况,就同意了
DHCP客户端进行IP请求
当一个DHCP客户机启动时,会将自己的IP设为0.0.0.0(并不能正常上网),但是客户机也不知道DHCP服务器的IP,所以就全网广播(使用UDP 67端口,所以其他机子是接收不到的),广播信息中包含了DHCP客户机中的MAC地址和计算机名,一不安与DHCP服务器能确定自己
DHCP服务器相应请求
DHCP服务器接收到了之后会从自己的IP地址池中查找可用的IP给他,把这个IP加入到DHCP OFFER当中,然后全网广播一则包含下列信息的DHCP OFFER消息:
DHCP客户机的MAC地址,分配的IP,子网掩码,默认网关,租约期限,DHCP服务器的IP地址和MAC地址
因为服务器是没有客户机的IP地址的,所以还是全网广播,使用UDP 68端口,所以只有客户机才能接受
DHCP客户机续租
之前所租到的IP是有时间限制的
默认租约(每次给多少),最长租约
(比如说用了一半时间的时候)直接发个续租消息过去,然后看服务器干不干就对了,把默认租期蓄满,如果租不到再过会儿发,如果直到用满了都没人理他,那客户机就只能随便从169.254.0.0/16里选个地址然后不停地尝试了
DNS域名解析服务
虽然IP也是唯一的,但是不方便人记忆,所以会有域名这个东西。
DNS服务器就是一种帮你翻译IP成域名的服务器
域名的组成和分类
常见格式:www.imlehr.com
完整格式:www.imlehr.com. (最后多了个点)
.
:根域,可用省略不写,全球13台根域的服务器(IPv4的),然后还有些根域的镜像服务器(比如在中国我们就用的是镜像的)
com
:顶级域,由ICANN组织指定和分配
- 国家地区级:cn,ca
- 通用顶级域名:com,org,edu
- 新的通用的顶级域名:top,red
imlehr
:二级域名,可用由个人或组织申请(注册域)
www
:三级域(子域),服务器网站名代表
域名解析过程
客户端访问imlehr.com
浏览器自动补全80 和那个.
客户端首先查询自己的hosts文件里有没有解析记录,如果有就直接给浏览器
如果没有,就继续去看本机内的DNS解析缓存
如果还是没有,就去看网卡上的DNS服务器地址,找到那个DNS服务器去找结果
说明一下:解析库和缓存的关系:解析库是自己有的确认了的,缓存是自己没有从别人那里听来的,所以解析库的更有权威性
这里的传输是UDP传输,减小压力。
你找的那个本地DNS服务器如果还是没有,实际上又会去顶级域服务器,然后到二级域服务器找
分布式DNS服务器
这里的分布式的意思是:分为一步一步来完成的
这里的工作流程是这样的:
首先客户端发出要解析的域名,请求先到一个DNS负载均衡服务器
,这个服务器可用很好地分配请求给多个DNS服务器从而来提高效率。DNS服务器则会去根服务器寻址,比如这里的一级域名是.com,那么根服务器就会告诉DNS服务器:你去找.com顶级域服务器叭,而根域名服务器本身的任务就结束了,接着DNS服务器就去这样一级一级地找服务器了直到找到需要的域名。
Ps:DNS服务器是不能随便让人就能搭建的,要向工信部或者专业权威机构申请的
NFS服务
Network File System网络文件系统
就是把一个服务器上(NFS服务器)的共享空间映射到本地上,你在本地映射的这个文件夹里处理东西实际上是处理的服务器上的,但是看起来就好像在本机上处理文件了
一般用来储存视频,图片等静态资源,主要是提供一个读取的功能而不是写
NFS挂载原理
NFS是通过网络来进行客户端和服务器之间的数据传输的,而NFS服务器端使用的是随机的端口
。所以客户端实际上是通过RPC(remote procedure call远程过程调用)连接服务器,然后RPC和NFS互动获得端口之后再给客户端让它来连。所以其实客户端先启动的是RPC,RPC服务会统一管理NFS的端口。
RPC和NFS如何通讯
NFS启动后会随机启动一些端口,然后NFS就会向RPC注册这些端口,然后RPC端口开启111端口等待客户端请求,有请求来了句把可用的NFS端口告诉给客户端。
Apache服务器
Apache是世界使用排名第一的Web服务器软件
但是由于Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此在一个Apache Web站点扩容时,通常是增加服务器或者扩充群集节点而不是增加处理器。(因为多处理器对他提升不大)
三种运行模式:
pre-fork模式
不用担心线程安全的问题,但是很吃内存,处理不了高并发
worker模式
对于线程的处理采用的是keep-alive模式,就是完成一次响应后先不慌断开连接,再等一段时间。所以这需要考虑安全问题。
event模式
不用keep-alive了,如果有新来的没位置了直接把你在等待但是没有工作的线程掐了,这样就效率更高了。