Linux DNS 服務器正反向解析

一、環境說明與準備工作

1.基礎信息

本次實驗用兩臺 Linux 主機,分別作為 DNS 服務端和客戶端,具體信息如下:

服務端IP客戶端IP網址
192.168.120.130192.168.120.128www.zy.com

2.準備工作

  • 關閉安全軟件:服務端和客戶端都要關閉防火墻和 SELinux,避免攔截 DNS 服務(端口 53):
  • 修改主機名:方便區分兩臺機器,服務端改名為 “dns”,客戶端改名為 “web”:
# 關閉安全軟件:服務端和客戶端都要關閉防火墻和 SELinux,避免攔截 DNS 服務(端口 53):
[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node1 ~]# getenforce 
Disabled
[root@node1 ~]# hostnamectl set-hostname dns
[root@node1 ~]# bash# 安裝 Bind 軟件:服務端需要安裝 Bind(提供 DNS 服務的核心軟件):
[root@dns ~]# yum  install  bind  -y
  • 配置靜態 IP:
    服務端設置 IP 為 192.168.120.130,網關 192.168.120.2:
# 服務端配置靜態IP
[root@dns ~]# nmcli  c  modify  ens32   ipv4.method manual ipv4.addresses  192.168.120.130/24  ipv4.gateway  192.168.120.2  ipv4.dns  114.114.114.114
[root@dns ~]# nmcli  c  reload 
[root@dns ~]# nmcli  c  up  ens32
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)

客戶端設置 IP 為 192.168.120.128,并指定 DNS 服務器為服務端 IP:

# 客戶端設置靜態IP(dns服務器為服務器端)
[root@web ~]# nmcli c modify ens32  ipv4.method manual ipv4.addresses 192.168.120.128/24 ipv4.gateway 192.168.120.2 ipv4.dns 192.168.120.130
[root@web ~]# nmcli  c  reload 
[root@web ~]# nmcli  c  up  ens32
[root@web ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens32
UUID=2d3438fd-d747-48d3-9c58-2af0e06c82db
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.120.128
PREFIX=24
GATEWAY=192.168.120.2
DNS1=192.168.120.130連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/Act

二、DNS 服務端配置

Bind 的配置主要涉及 3 個文件:主配置文件(named.conf)、區域配置文件(named.rfc1912.zones)、數據配置文件(如zy.com.zone)。

1.修改主配置文件(named.conf)

主配置文件控制 DNS 服務的基本運行規則,需允許所有主機訪問:

找到并修改以下兩行(默認可能限制為本地訪問):
[root@dns ~]# vim  /etc/named.conf 
# 需改2行listen-on port 53 { any; };  # any為允許所有主機allow-query     { any; };   

2.配置區域文件(named.rfc1912.zones)

區域文件用來定義 “要解析哪些域名”,包括正向解析(域名→IP)和反向解析(IP→域名):

[root@dns ~]# vim /etc/named.rfc1912.zones 
# 正向解析區域:負責zy.com域名的解析  
zone "zy.com" IN {  # 雙引號中輸入,表示管理那個區域type master;  # 主服務器  file "zy.com.zone";   # 數據文件名稱(存儲在/var/named/目錄)  allow-update { none; };  # 不允許動態更新 
};# 反向解析區域:負責192.168.120網段的IP解析(注意網段倒寫為120.168.192.in-addr.arpa)
zone "120.168.192.in-addr.arpa" IN {type master;file "192.168.120.arpa";allow-update { none; };
};

3. 創建數據配置文件

數據文件是實際存儲 “域名→IP” 或 “IP→域名” 對應關系的地方,需要從模板復制并修改:

[root@dns ~]# cd  /var/named  # 切換到數據配置文件存儲路徑
[root@dns named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@dns named]# cp -a named.localhost  zy.com.zone 從 /var/named/ 目錄下的模板文件 named.localhost復制,保留文件權限:
[root@dns named]# vim  zy.com.zone    # 完整格式修改如下
$TTL 1D
zy.com. IN SOA  ns.zy.com. rch.qq.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumIN              NS      ns.zy.com.  # NS記錄:指定該域名的DNS服務器是ns.zy.com  
ns.zy.com.      IN              A       192.168.120.128  # A記錄:ns.zy.com對應的IP(服務端IP)  
www.zy.com.     IN              A       192.168.120.128  # A記錄:www.zy.com對應的IP(客戶端IP) 
ftp.zy.com.     IN              A       192.168.120.128  # 可選:添加其他子域名解析(如ftp、bbs)  
bbs.zy.com.     IN              A       192.168.120.128[root@dns named]# cp -a named.loopback   192.168.120.arpa  從模板 named.loopback 復制,用于 IP 到域名的解析:
[root@dns named]# vim 192.168.120.arpa   修改內容如下(IP 最后一段寫在前面,比如 192.168.48.128 寫成 128):
$TTL 1D
@       IN SOA  ns.zy.com. rch.qq.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumIN              NS      ns.zy.com.
ns.zy.com.      IN              A       192.168.120.128
128             IN              PTR     www.zy.com.
128             IN              PTR     ftp.zy.com.
128             IN              PTR     bbs.zy.com.

4. 啟動 DNS 服務

配置完成后,啟動 Bind 服務(named)并設置開機自啟:

systemctl start named  
systemctl enable named  
# 檢查服務狀態,確保為active (running)  
systemctl status named  

三、測試

  • 定義客戶端,下載nginx,并且使用xftp上傳代碼到/目錄下
[root@web ~]# yum install nginx -y
[root@web ~]# ls /
afs  bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  zy
[root@web ~]# chmod -R 777 /zy
[root@web ~]# ls /zy
compat  css  img  index.html  js
[root@web ~]# vim /etc/nginx/nginx.conf
root         /zy;
[root@web ~]# systemctl start nginx# 定位客戶端測試
[root@web ~]# nslookup  www.zy.com   #nslookup 命令:測試正向和反向解析
Server:		192.168.120.130
Address:	192.168.120.130#53Name:	www.zy.com
Address: 192.168.120.128[root@web ~]# nslookup  192.168.120.128
128.120.168.192.in-addr.arpa	name = ftp.zy.com.
128.120.168.192.in-addr.arpa	name = bbs.zy.com.
128.120.168.192.in-addr.arpa	name = www.zy.com.[root@web ~]# curl www.zy.com
<!DOCTYPE html>
<html id="html" debug="true">
<head lang="zh-CN">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">>                         # ctrl+d退出[root@web ~]# dig www.zy.com    dig 命令:更詳細地查看解析過程; <<>> DiG 9.16.23 <<>> www.zy.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9522
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: eecb428312fa459d010000006884c8bfef1c80f209ab35b8 (good)
;; QUESTION SECTION:
;www.zy.com.			IN	A;; ANSWER SECTION:
www.zy.com.		86400	IN	A	192.168.120.128;; Query time: 0 msec
;; SERVER: 192.168.120.130#53(192.168.120.130)
;; WHEN: Sat Jul 26 20:23:27 CST 2025
;; MSG SIZE  rcvd: 83

四、總結

這次搭建 DNS 服務器,最容易出錯的地方是數據文件里的 “.”(比如域名后面漏寫 “.” 會導致解析失敗)和反向解析的網段倒寫。不過按照步驟一步步改配置,測試時看到解析結果的那一刻還是挺有成就感的。其實 DNS 原理不難,就是通過配置文件告訴服務器 “某個域名對應某個 IP”,學會了之后搭建自己的小網站時,就不用死記 IP 地址

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90817.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90817.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90817.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

歷史數據分析——中證旅游

中證旅游板塊走勢從月線級別來看2015年5月到2024年9月&#xff0c;月線上走出了一個震蕩中樞的月線級別下跌段&#xff1b;目前月線級別底部放巨量&#xff0c;總體還在底部震蕩&#xff0c;后續上漲的概率較大。從周線級別來看從2022年12月到2024年9月整體是下跌走勢&#xff…

OpHReda精準預測酶最佳PH

1.顯著改進&#xff1a;OpHReda通過檢索嵌入數據增強機制&#xff0c;顯著提高了酶最佳pH預測的準確性&#xff0c;相比現有方法提升了55%的F1分數。2.多尺度殘差輕注意力模塊&#xff1a;該模塊結合了殘差學習和多尺度特征提取&#xff0c;增強了模型對酶序列中殘差級信息的捕…

醫護行業在未來會被AI淘汰嗎?

隨著AI的迅速發展&#xff0c;似乎所有職業都有被AI替代的風險&#xff0c;那麼醫療領域作為一個高技術依賴性的行業&#xff0c;有機會被淘汰嗎?我們今天就來說說&#xff0c;幾乎不可能被AI淘汰的職業---護理。一) AI在護理中扮演的角色i.) 臨床工作支持1. 健康監測自動化即…

大語言模型加速技術之KV Cache

大語言模型加速技術之KV CacheWhy we need KV Cache &#xff1f;Self-Attention Without CacheSelf-Attention With CacheHuggingface 官方代碼實現Why we need KV Cache &#xff1f; 生成式generative模型的推理過程很有特點&#xff0c;我們給一個輸入文本&#xff0c;模型…

代碼隨想錄算法訓練營第五十三天|圖論part4

110.字符串接龍 題目鏈接&#xff1a;110. 字符串接龍文章講解&#xff1a;代碼隨想錄思路&#xff1a; 把每個字符串看成圖的一個節點。 轉換為求無權圖兩節點的的最短路徑。求最短路徑用bfs #include <string> #include <vector> #include <iostream> #i…

Java進階4:泛型、序列化和反序列化

Java泛型 Java泛型是JDK5引入的一個新的特性&#xff0c;泛型提供了編譯時的類型安全檢測機制&#xff0c;這個機制運行程序員在編譯的時候檢測到非法的類型。泛型的本質是參數化類型&#xff0c;也就是所操作的數據類型被指定為一個參數。 泛型方法 可以寫一個泛型方法&#x…

RAG實戰指南 Day 24:上下文構建與提示工程

【RAG實戰指南 Day 24】上下文構建與提示工程 文章內容 開篇 歡迎來到"RAG實戰指南"系列的第24天&#xff01;今天我們將深入探討RAG系統中至關重要的上下文構建與提示工程技術。在檢索增強生成系統中&#xff0c;如何有效地組織檢索到的文檔片段&#xff0c;并將…

AWD的攻擊和防御手段

一、AWD相關介紹 AWD&#xff08;Attack With Defence&#xff09;是 CTF 線下賽中最接近真實攻防場景、觀賞性和對抗性最強的賽制之一。 賽制本質 人人對抗&#xff1a;所有戰隊互為攻擊者與防守者。 零和記分&#xff1a;你拿到的每一分都是別人的失分&#xff0c;總積分恒…

泛微OA8前臺SQL注入

漏洞URL&#xff1a; http://106.15.190.147/js/hrm/getdata.jsp?cmdgetSelectAllId&sql***注入點 在getdata.jsp中&#xff0c;直接將request對象交給 weaver.hrm.common.AjaxManager.getData(HttpServletRequest, ServletContext) : 方法處理 在getData方法中&#xff0…

Android 藍牙學習

在Android中&#xff0c;進行藍牙設備掃描startDiscovery需要申請位置權限&#xff0c;但有的時候并不需要申請位置權限&#xff0c;就有了android:usesPermissionFlags"neverForLocation"&#xff0c;設置這個就不用申請位置權限來進行藍牙掃描。 android:usesPerm…

Earth靶機攻略

一.環境準備 1.1Earth靶機環境準備 首先將我們解壓好的的Earth.ova放入虛擬機里&#xff0c;并配置環境 將網絡連接換成NET連接 二.信息搜集 2.1ip搜集 2.1.1使用netdiscover命令掃描靶機的ip地址,發現地址為192.168.182.137 2.2端口掃描 2.2.1使用nmap工具對目標機進行端…

java8 List常用基本操作(去重,排序,轉換等)

參考簡述網址: java8 List 根據對象某個字段或多個字段去重、篩選、List轉Map、排序、分組、統計計數等等 list簡單方法示例如下&#xff1a; 一、先定義一個訂單對象&#xff08;Order&#xff09; public class Order {private Long id;private Long userId;private Strin…

【linux】HAProxy七層代理

HAPorxy簡介HAProxy&#xff08;High Availability Proxy&#xff09;是一款高性能、開源的負載均衡器與反向代理服務器&#xff0c;主要用于 TCP 和 HTTP 協議的流量分發&#xff0c;廣泛應用于高并發、高可用的網絡架構中核心特性超高性能與低資源消耗基于單進程、多線程模型…

Android 的16 KB內存頁設備需要硬件支持嗎,還是只需要手機升級到Android15系統就可以

Android 的16 KB內存頁設備需要硬件支持嗎&#xff0c;還是只需要手機升級到Android15系統就可以&#xff1f; deepseek回答&#xff1a; DeepSeek R1 思考 3 秒 思考過程 好的&#xff0c;用戶現在問的是Android的16 KB內存頁設備是否需要硬件支持&#xff0c;還是只需要升級到…

相機內外參矩陣:從3D世界坐標到2D像素坐標變換

相機內外參矩陣&#xff1a;從3D世界坐標到2D像素坐標變換介紹**1. 內參矩陣&#xff08;Intrinsic Matrix, K&#xff09;****2. 外參矩陣&#xff08;Extrinsic Matrix, [R|t]&#xff09;****3. 完整投影過程&#xff08;世界坐標 → 像素坐標&#xff09;****步驟1&#xf…

哈希指針與數據結構:構建可信數字世界的基石

一、哈希指針的核心原理哈希指針是一種創新型數據結構&#xff0c;融合了傳統指針的定位功能與密碼學哈希的驗證能力&#xff1a;雙重功能&#xff1a;既存儲數據地址&#xff0c;又包含該數據的哈希值&#xff0c;實現數據定位與完整性驗證的統一。抗篡改機制&#xff1a;數據…

java實現一個方法,isTure則程序繼續往下,為false則return的鏈式寫法

以下是實現鏈式條件檢查的Java方法&#xff0c;采用函數式風格設計。代碼包含一個Chainable類&#xff0c;支持連續的check方法和多個終止操作&#xff08;如then, orElse等&#xff09;&#xff0c;滿足在條件為false時中斷鏈式調用并返回默認值的需求&#xff1a;import java…

數據結構學習之堆

本篇我們將學習新的數據結構——二叉樹。 作者的個人gitee&#xff1a;樓田莉子 (riko-lou-tian) - Gitee.com 目錄 樹的概念 樹形結構 非樹形結構 樹的相關術語 樹的表示 樹在實際生活上的應用 二叉樹 慢二叉樹 完全二叉樹 二叉樹的儲存結構 二叉樹的存儲結構 順序結構…

【csdn問答社區分析】前端開發熱點問題全解析

前端時間我在csdn問答社區的前端部分"視察”了一圈發現了大家的問題主要集中在以下方面一、框架與組件庫使用問題 Vue相關問題 組件化開發&#xff1a;如avue-crud組件自定義樣式不生效、el-select大數據分頁懶加載、element-plus表格動態列校驗等。功能實現&#xff1a;包…

Pycharm2025 安裝教程 免費分享 沒任何套路

Pycharm 安裝也是很簡單的&#xff0c;簡單過一下流程&#xff0c;如果需要的可以轉存下載到自己電腦上。我用夸克網盤分享了「pycharm2025」&#xff0c;復制鏈接瀏覽器打開轉存后即可下載。鏈接&#xff1a;https://pan.quark.cn/s/4bb74a939332備注&#xff1a;附帶2023-202…