1.1环境准备

作用系统IP主机名
web 服务器redhat9.5192.168.33.8web
DNS 主服务器redhat9.5192.168.33.18dns1
DNS 从服务器redhat9.5192.168.33.28dns2
客户端redhat9.5192.168.33.7client

1.2修改主机名和IP地址

web服务器

[root@web-8 ~]# hostnamectl hostname web
[root@web-8 ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.8/24 ipv4.gateway 192.168.33.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@web-8 ~]# nmcli c up ens160 

DNS1

[root@dns1-18 ~]# hostnamectl hostname dns1
[root@dns1-18 ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.18/24 ipv4.gateway 192.168.33.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@dns1-18 ~]# nmcli c up ens160 

DNS2

[root@dns2-28 ~]# hostnamectl hostname dns2
[root@dns2-28 ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.28/24 ipv4.gateway 192.168.33.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@dns2-28 ~]# nmcli c up ens160 
 

client

[root@dns-client ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.7/24 ipv4.gateway 192.168.33.2 ipv4.dns "192.168.33.18 192.168.33.28" connection.autoconnect yes
[root@dns-client ~]# nmcli c up ens160 

#ip恰好与题目client ip相同
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@dns-client ~]# 
[root@dns-client ~]# 
[root@dns-client ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:b2:f4:4d brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.33.7/24 brd 192.168.33.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb2:f44d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

关闭几台服务器的 selinux:

[root@web ~]# setenforce 0
 

[root@dns1 ~]# setenforce 0
 

[root@dns2~]# setenforce 0

1.2配置web服务

1.2.1安装nginx

[root@web ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@web ~]# dnf install nginx -y
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

BaseOS                                 2.6 MB/s | 2.7 kB     00:00    
AppStream                              2.9 MB/s | 3.2 kB     00:00    
Package nginx-2:1.20.1-20.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

1.2.2配置nginx首页

[root@web ~]# rpm -ql nginx

[root@web ~]# echo "welcome nginx" > /usr/share/nginx/html/index.html

[root@web ~]# systemctl enable --now nginx
[root@web ~]# firewall-cmd --permanent --add-service=http
Warning: ALREADY_ENABLED: http
success
[root@web ~]# firewall-cmd --reload 
success

1.3配置DNS主服务

1.3.1安装dns软件

[root@dns1 ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@dns1 ~]# dnf install bind -y
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

Last metadata expiration check: 1 day, 2:16:39 ago on Sun 16 Mar 2025 02:44:58 PM CST.
Package bind-32:9.16.23-24.el9_5.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

1.3.2修改主配置文件

[root@dns1 ~]# rpm -ql bind

[root@dns1 ~]# vim /etc/named.conf
[root@dns1 ~]# cat /etc/named.conf 
options {
    listen-on port 53 { 192.168.33.18; };
    directory     "/var/named";
    allow-query     { any; };
};
zone "haha.com" IN {
    type master;
    file "haha.com";
};

1.3.3配置区域数据文件

[root@dns1 ~]# vim /var/named/haha.com
[root@dns1 ~]# cat /var/named/haha.com 
$TTL    1D
@    IN    SOA    @    admin.haha.com.    (0   1D   2H   3W   2D)
    IN    NS    ns1
    IN    NS    ns2
ns1    IN    A    192.168.33.18
ns2    IN    A    192.168.33.28
www    IN    A    192.168.33.8

1.3.4检查配置语法

[root@dns1 ~]# named-checkconf
[root@dns1 ~]# named-checkzone haha.com /var/named/haha.com 
zone haha.com/IN: loaded serial 0
OK

1.3.5测试DNS解析

[root@dns1 ~]# systemctl start named

[root@dns1 ~]# ps -ef | grep named

[root@dns1 ~]# dig -t NS haha.com @192.168.33.18

; <<>> DiG 9.16.23-RH <<>> -t NS haha.com @192.168.33.18
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64689
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 79ed8796f37753ac0100000067d7e7ca2cd104e727ccff15 (good)
;; QUESTION SECTION:
;haha.com.            IN    NS

;; ANSWER SECTION:
haha.com.        86400    IN    NS    ns2.haha.com.
haha.com.        86400    IN    NS    ns1.haha.com.

;; ADDITIONAL SECTION:
ns1.haha.com.        86400    IN    A    192.168.33.18
ns2.haha.com.        86400    IN    A    192.168.33.28

;; Query time: 0 msec
;; SERVER: 192.168.33.18#53(192.168.33.18)
;; WHEN: Mon Mar 17 17:13:46 CST 2025
;; MSG SIZE  rcvd: 133

1.3.6放行dns服务

[root@dns1 ~]# firewall-cmd  --permanent --add-service=dns
Warning: ALREADY_ENABLED: dns
success
[root@dns1 ~]# firewall-cmd --reload 
success

1.4配置DNS从服务

1.4.1安装dns软件

[root@dns2 ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@dns2 ~]# dnf install bind -y
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

BaseOS                                 1.2 MB/s | 2.7 kB     00:00    
AppStream                              3.1 MB/s | 3.2 kB     00:00    
Package bind-32:9.16.23-24.el9_5.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
 

1.4.2修改主配置文件

[root@dns2 ~]# vim /etc/named.conf 
[root@dns2 ~]# cat /etc/named.conf 
options {
    listen-on port 53 { 192.168.33.28; };
    directory     "/var/named";
    allow-query     { any; };
};

zone "haha.com" IN {
    type slave;
    masters {192.168.33.18 ;};
    file "slaves/haha.com ";
};

1.4.3放行dns服务

[root@dns2 ~]# firewall-cmd --permanent --add-service=dns
Warning: ALREADY_ENABLED: dns
success
[root@dns2 ~]# firewall-cmd --reload 
success

1.4.4启动dns服务

[root@dns2 ~]# systemctl start named

1.4.5测试dns解析

[root@dns2 ~]# dig -t NS haha.com @192.168.33.28

; <<>> DiG 9.16.23-RH <<>> -t NS haha.com @192.168.33.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39093
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 5c5ad754ea8ac7ce0100000067d7e9e24a147dbc8f042ccc (good)
;; QUESTION SECTION:
;haha.com.            IN    NS

;; ANSWER SECTION:
haha.com.        86400    IN    NS    ns1.haha.com.
haha.com.        86400    IN    NS    ns2.haha.com.

;; ADDITIONAL SECTION:
ns1.haha.com.        86400    IN    A    192.168.33.135
ns2.haha.com.        86400    IN    A    192.168.33.136

;; Query time: 0 msec
;; SERVER: 192.168.33.28#53(192.168.33.28)
;; WHEN: Mon Mar 17 17:22:42 CST 2025
;; MSG SIZE  rcvd: 133

[root@dns2 ~]# dig -t A www.haha.com @192.168.33.28

; <<>> DiG 9.16.23-RH <<>> -t A www.haha.com @192.168.33.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48432
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 8d6dbd0ad5db90d90100000067d7ea0c48d4f16d6e872941 (good)
;; QUESTION SECTION:
;www.haha.com.            IN    A

;; ANSWER SECTION:
www.haha.com.        86400    IN    A    192.168.33.133

;; Query time: 0 msec
;; SERVER: 192.168.33.28#53(192.168.33.28)
;; WHEN: Mon Mar 17 17:23:24 CST 2025
;; MSG SIZE  rcvd: 85
 

实验完成!!!

2实验总结

2.1实验目的

本次实验旨在配置 web 服务、DNS 主从服务,并在客户端进行相应测试,以实现网络中 web 访问及域名解析功能,加深对网络服务配置原理和操作的理解。

2.2实验环境

  1. web 服务器:IP 地址 192.168.33.8,主机名 web。

  2. DNS 主服务器:IP 地址 192.168.33.18,主机名 dns1。

  3. DNS 从服务器:IP 地址 192.168.33.28,主机名 dns2。

  4. 客户端:IP 地址 192.168.33.7,主机名 client。

2.3实验过程

  1. 环境准备:对各服务器和客户端进行主机名和 IP 地址的修改,并关闭了相关服务器的 selinux,为后续服务配置消除潜在的安全策略干扰。

  2. web 服务配置

    • 安装 nginx 软件,通过相关命令成功获取并安装了 nginx 服务。

    • 配置 nginx 首页,修改了 nginx 的配置文件,设置了自定义的首页内容,使其能够正常展示特定的网页信息。

  3. DNS 主服务配置

    • 安装 dns 软件,确保了 DNS 服务所需的软件包正确安装。

    • 修改主配置文件,对主配置文件中的相关参数进行了设置,包括监听地址、区域声明等。

    • 配置区域数据文件,定义了域名与 IP 地址的映射关系,为域名解析提供数据支持。

    • 检查配置语法,使用工具检查配置文件的语法正确性,避免因语法错误导致服务无法正常运行。

    • 测试 DNS 解析,在客户端使用命令行工具进行域名解析测试,验证了主 DNS 服务器能够正确解析域名。

    • 放行 dns 服务,配置防火墙规则,允许 DNS 服务的相关端口通过,确保网络中其他设备能够访问 DNS 服务。

  4. DNS 从服务配置
    • 安装 dns 软件,与主服务器类似,完成了从服务器上 DNS 软件的安装。

    • 修改主配置文件,配置从服务器与主服务器的同步关系,使其能够从主服务器获取区域数据。

    • 放行 dns 服务,配置防火墙规则,保障从服务器的 DNS 服务可被访问。

    • 启动 dns 服务,成功启动从服务器的 DNS 服务,使其开始工作。

    • 测试 dns 解析,在客户端再次进行测试,确认从服务器也能够正确解析域名,且与主服务器的解析结果一致。

2.4实验结果

  1. web 服务配置成功,通过客户端浏览器访问 web 服务器的 IP 地址,能够正常显示配置的 nginx 首页内容。

  2. DNS 主从服务配置成功,客户端能够通过主 DNS 服务器和从 DNS 服务器正确解析域名,实现了域名到 IP 地址的转换,保障了网络中基于域名的访问。

2.5实验问题及解决

  1. 在安装 nginx 时,由于网络不稳定,导致安装过程中断。解决方法是重新检查网络连接,确保网络稳定后,再次执行安装命令,最终成功安装。

  2. 在配置 DNS 主服务器的区域数据文件时,出现了语法错误,导致 DNS 服务无法正常启动。通过仔细检查配置文件,发现是记录格式错误,修改后服务恢复正常。

  3. 在配置 DNS 从服务器与主服务器同步时,一开始无法获取主服务器的区域数据。经过检查发现是防火墙规则设置不当,修改防火墙规则后,从服务器成功与主服务器同步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/898176.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/898176.shtml
英文地址,请注明出处:http://en.pswp.cn/news/898176.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遥感数据获取、处理、分析到模型搭建全流程学习!DeepSeek、Python、OpenCV驱动空天地遥感数据分析

【扔进数据&#xff0c;直接出结果】在科技飞速发展的时代&#xff0c;遥感数据的精准分析已经成为推动各行业智能决策的关键工具。从无人机监测农田到卫星数据支持气候研究&#xff0c;空天地遥感数据正以前所未有的方式为科研和商业带来深刻变革。然而&#xff0c;对于许多专…

第一个vue项目

项目目录 启动vue项目 npm run serve 1.vue.config.js文件 (CLI通过vue-cli-serve启动项目&#xff0c;解析配置配置文件vue-condig-js&#xff09; // vue.config.js //引入path板块&#xff0c;这是Node.js的一个内置模块&#xff0c;用于处理文件路径&#xff0c;这里引用…

QT中读取QSetting文件

1.ini文件的格式 头文件 #include <QSettings> #include <QStringList> #include <QtCore> #include <QDebug>2.读文件 //ini文件的读取 void iniTest::readIniFile(QString filePath) {//1.打开ini文件QSettings m_iniFile(filePath, QSettings::I…

卷积神经网络 - 一维卷积、二维卷积

卷积(Convolution)&#xff0c;也叫褶积&#xff0c;是分析数学中一种重要的运算。在信号处理或图像处理中&#xff0c;经常使用一维或二维卷积&#xff0c;本博文我们来学习一维卷积和二维卷积。 理解一维卷积和二维卷积的核心在于把握维度对特征提取方式的影响。我们从数学定…

java学习总结(六)Spring IOC

一、Spring框架介绍 Spring优点&#xff1a; 1、方便解耦&#xff0c;简化开发,IOC控制反转 Spring 就是一个大工厂&#xff0c;可以将所有对象创建和依赖关系维护交给Spring 2、AOP 编程的支持 Spring 提供面向切编程&#xff0c;可以方便的实现对序进行权限拦截、运监控等…

大模型推理:LM Studio在Mac上部署Deepseek-R1模型

LM Studio LM Studio是一款支持离线大模型部署的推理服务框架&#xff0c;提供了易用的大模型部署web框架&#xff0c;支持Linux、Mac、Windows等平台&#xff0c;并提供了OpenAI兼容的SDK接口&#xff0c;主要使用LLama.cpp和MLX推理后端&#xff0c;在Mac上部署时选择MLX推理…

AI技术学习笔记系列004:GPU常识

显卡架构是GPU设计的核心&#xff0c;不同厂商有其独特的架构演进。以下是主要厂商的显卡架构概述&#xff1a; 一、NVIDIA Tesla&#xff08;2006-2010&#xff09; 代表产品&#xff1a;GeForce 8000系列&#xff08;G80&#xff09;。特点&#xff1a;首款统一着色架构&…

实验- 分片上传 VS 直接上传

分片上传和直接上传是两种常见的文件上传方式。分片上传将文件分成多个小块&#xff0c;每次上传一个小块&#xff0c;可以并行处理多个分片&#xff0c;适用于大文件上传&#xff0c;减少了单个请求的大小&#xff0c;能有效避免因网络波动或上传中断导致的失败&#xff0c;并…

Android视频渲染SurfaceView强制全屏与原始比例切换

1.创建UI添加强制全屏与播放按钮 2.SurfaceView控件设置全屏显示 3.全屏点击事件处理实现 4.播放点击事件处理 5.使用接口更新强制全屏与原始比例文字 强制全屏/原始比例 点击实现

数据结构——串、数组和广义表

串、数组和广义表 1. 串 1.1 串的定义 串(string)是由零个或多个字符组成的有限序列。一般记为 S a 1 a 2 . . . a n ( n ≥ 0 ) Sa_1a_2...a_n(n\geq0) Sa1​a2​...an​(n≥0) 其中&#xff0c;S是串名&#xff0c;单引号括起来的字符序列是串的值&#xff0c; a i a_i a…

无再暴露源站!群联AI云防护IP隐匿方案+防绕过实战

一、IP隐藏的核心原理 群联AI云防护通过三层架构实现源站IP深度隐藏&#xff1a; 流量入口层&#xff1a;用户访问域名解析至高防CNAME节点&#xff08;如ai-protect.example.com&#xff09;智能调度层&#xff1a;基于AI模型动态分配清洗节点&#xff0c;实时更新节点IP池回…

1.5.3 掌握Scala内建控制结构 - for循环

Scala的for循环功能强大&#xff0c;支持单重和嵌套循环。单重for循环语法为for (变量 <- 集合或数组 (条件)) {语句组}&#xff0c;可选筛选条件&#xff0c;循环变量依次取集合值。支持多种任务&#xff0c;如输出指定范围整数&#xff08;使用Range、to、until&#xff0…

【MySQL基础-9】深入理解MySQL中的聚合函数

在数据库操作中&#xff0c;聚合函数是一类非常重要的函数&#xff0c;它们用于对一组值执行计算并返回单个值。MySQL提供了多种聚合函数&#xff0c;如COUNT、SUM、AVG、MIN和MAX等。这些函数在数据分析和报表生成中扮演着关键角色。本文将深入探讨这些聚合函数的使用方法、注…

windows版本的时序数据库TDengine安装以及可视化工具

了解时序数据库TDengine&#xff0c;可以点击官方文档进行详细查阅 安装步骤 首先找到自己需要下载的版本&#xff0c;这边我暂时只写windows版本的安装 首先我们需要点开官网&#xff0c;找到发布历史&#xff0c;目前TDengine的windows版本只更新到3.0.7.1&#xff0c;我们…

Web测试

7、Web安全测试概述 黑客技术的发展历程 黑客基本涵义是指一个拥有熟练电脑技术的人&#xff0c;但大部分的媒体习惯将“黑客”指作电脑侵入者。 黑客技术的发展 在早期&#xff0c;黑客攻击的目标以系统软件居多。早期互联网Web并非主流应用&#xff0c;而且防火墙技术还没有…

华为OD机试 - 最长的完全交替连续方波信号(Java 2023 B卷 200分)

题目描述 给定一串方波信号,要求找出其中最长的完全连续交替方波信号并输出。如果有多个相同长度的交替方波信号,输出任意一个即可。方波信号的高位用1标识,低位用0标识。 说明: 一个完整的信号一定以0开始并以0结尾,即010是一个完整的信号,但101,1010,0101不是。输入的…

游戏引擎学习第163天

我们可以在资源处理器中使用库 因为我们的资源处理器并不是游戏的一部分&#xff0c;所以它可以使用库。我说过我不介意让它使用库&#xff0c;而我提到这个的原因是&#xff0c;今天我们确实有一个选择——可以使用库。 生成字体位图的两种方式&#xff1a;求助于 Windows 或…

7、什么是死锁,如何避免死锁?【高频】

&#xff08;1&#xff09;什么是死锁&#xff1a; 死锁 是指在两个或多个进程的执行时&#xff0c;每个进程都持有资源 并 等待其他进程 释放 它所需的资源&#xff0c;如果此时所有的进程一直占有资源而不释放&#xff0c;就会陷入互相等待的一种僵局状态。 死锁只有同时满足…

Compose 实践与探索十四 —— 自定义布局

自定义布局在 Compose 中相对于原生的需求已经小了很多&#xff0c;先讲二者在本质上的逻辑&#xff0c;再说它们的使用场景&#xff0c;两相对比就知道为什么 Compose 中的自定义布局的需求较小了。 原生是在 xml 布局文件不太方便或者无法满足需求时才会在代码中通过自定义 …

【C++】:C++11详解 —— 入门基础

目录 C11简介 统一的列表初始化 1.初始化范围扩展 2.禁止窄化转换&#xff08;Narrowing Conversion&#xff09; 3.解决“最令人烦恼的解析”&#xff08;Most Vexing Parse&#xff09; 4.动态数组初始化 5. 直接初始化返回值 总结 声明 1.auto 类型推导 2. declty…