DNS
(Domain Name System,域名系统)域名解析协议:因特网上作为域名和IP地址互相映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
DNS系统的作用什么是DNS? - 知乎 (zhihu.com)
正向解析:根据主机名称(域名)查找对应的IP地址
反向解析:根据IP地址查找对应的主机域名
域名解析过程
1.在浏览器中输入www.qq.com域名,操作系统检查本地hosts文件,是否又这个网址的映射关系,如果有,调用本地的ip地址映射,完成域名解析(/etc/hosts,记录常用网站域名的对应关系)
2.如果hosts没有这个域名映射,则检查本地DNS解析缓存,是否有这个网址的映射关系,如果有则返回,完成域名解析。
3.如果本地DNS解析器缓存没有,首先去找TCP/IP参数中设置的首选DNS服务器,我们一般叫本地DNS服务器,收到查询,如果包含在本地配置区域资源中,则返回解析结果,给客户机,完成域名解析,此解析具有权威性。
4.如果本地配置区域资源没有,但本地DNS服务器缓存了这个网址的映射关系,则调用这个IP地址映射,完成解析,此解析具有本地(仅在本地DNS服务器范围内有效)权威性。
5.如果本地DNS服务器本地区域文件与缓存解析,都失效,则根据本地DNS服务器设置进行查询,如果未用转发模式,本地DNS把请求发给“根DNS服务器”,“根DNS服务器”收到请求之后,判断这个域名(.COM .CN)是谁来授权管理,返回一个负责该顶级域名服务器的一个IP。
6.根DNS服务器 (根DNS服务器是全球DNS系统的最高层,负责管理顶级域名服务器的地址。) 收到解析请求,联系负责.com域的这台服务器,负责.com域的服务器,收到请求后,如果自己无法解析,就找到下一个负责管理.com域的下一级DNS服务器,(qq.com)给本地DNS服务器,本地DNS收到地址后,就会去找qq.com,重复上面的动作,直到找到主机。
7.如果使用转发模式,DNS服务器会把请求转发至上一级DNS服务器,由上一级服务器进行解析,如果上一级不能解析,把请求转至上一级,或者找根,以此循环。
8.不管是本地DNS服务器用的转发,还是找根,最终结果都会返回给本地DNS服务器,本地DNS服务器结果返回给我们。
递归与迭代
递归-----盗梦空间 不断下潜直达最底层并解决 自己调用自己,旨在缩小问题规模
本机向服务器
迭代-----明日边缘 不断回到同一个场景并不断优化总结 自己执行多次,旨在接近目标
「递归」和「迭代」有哪些区别? - 知乎 (zhihu.com)(12条消息) 一次看懂迭代与递归的区别_迭代和递归的区别_辛徳橘子丶的博客-CSDN博客
DNSMASQ
Dnsmasq为小型网络提供网络基础设施,dnsmasq服务提供DNS缓存和DHCP服务功能,路由器通告和网络引导。它被设计为轻量级且占用空间小,适用于资源受限的路由器和防火墙。它还被广泛用于智能手机和便携式热点的共享,并支持虚拟化框架中的虚拟网络。
配置文件/etc/dnsmaq.conf 私有域名 /dnf yum/
本地映射文件/etc/hosts
域名配置文件/etc/resolv.conf
安装 dnsmasq yum -y install dnsmasq
检查状态systemctl status dnsmasq
Apache
阿帕奇
安装 yum -y install apache
开机自启 syatemctl restart httpd
apache 配置文件
apache配置文件目录:/etc/httpd ( pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。)
apache主配置文件:/etc/httpd/conf/httpd.conf
apache默认存放网页的根目录:/var/www/html
(echo主要用于打印字符或者回显,一般起到一个提示的作用 echo [选项] [输出内容])
/etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" 定义了apache配置文件目录
Listen 80 定义了apache的端口
User apache 定义了启动用户 Group apache 定义了启动组
ServerAdmin root@localhost 定义管理员邮箱
#ServerName www.example.com:80 定义了服务器的域名
DocumentRoot "/var/www/html" 定义了网站的根目录
DirectoryIndex index.html 定义了网站的主页
实验一 修改httpd默认监听端口
vim /etc/httpd/conf/httpd.conf
重启!!
实验二 替换默认页面
在/var/www/html根目录下
创建默认页面index.html 内容为 hello world
echo "hello world" > index.html
实验三 替换默认首页的名称
vim /etc/httpd/conf/httpd.conf
创建index2.html 内容为 hello world too
echo "hello word too" >> index2.html
Apache日志
tail -f /var/log/httpd/*
192.168.158.131 - - [26/Jul/2023:15:07:50 +0800] "GET /index.html HTTP/1.1" 304 1415 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
192.168.158.131远程主机IP 表明了访问日志的是谁
-空白 - E-mail 为了避免用户被垃圾邮件骚扰 所以用-取代
-空白 - 登录名 用于记录浏览者进行身份验证时提供的名字
[26/Jul/2023:15:07:50 +0800]请求时间:用方括号包围
"GET /index.html HTTP/1.1" 请求方法/资源/协议 服务器收到的时一个什么样的请求。
304 状态码:请求的状态 一般200
1415发送字节数 表示发给客户端的总字节数
"Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"UA 客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等等
错误日志