HCRM博客

搭建CentOS系统上的DNS服务器指南

Centos上搭建DNS服务器是一个相对复杂但非常有意义的任务,DNS(Domain Name System,域名系统)是互联网中的一项基本服务,用于将人类可读的域名转换成计算机可理解的IP地址,以下是详细的步骤和相关配置,帮助你在CentOS上成功搭建一个内网DNS服务器。

一、安装BIND DNS服务器

1、更新系统软件包

搭建CentOS系统上的DNS服务器指南-图1
(图片来源网络,侵权删除)
  • sudo yum update y

2、安装BIND及其工具

  • sudo yum install bind bindutils bindchroot y

3、启动并设置开机自启

  • sudo systemctl start named
  • sudo systemctl enable named

二、配置BIND DNS服务器

1、修改主配置文件/etc/named.conf

  • sudo nano /etc/named.conf

添加或修改以下内容:

  • options {
  • listenon port 53 { any; };
  • listenonv6 port 53 { ::1; };
  • directory "/var/named";
  • dumpfile "/var/named/data/cache_dump.db";
  • statisticsfile "/var/named/data/named_stats.txt";
  • memstatisticsfile "/var/named/data/named_mem_stats.txt";
  • recursingfile "/var/named/data/named.recursing";
  • allowquery { any; };
  • recursion yes;
  • dnssecenable yes;
  • dnssecvalidation yes;
  • managedkeysdirectory "/var/named/dynamic";
  • pidfile "/run/named/named.pid";
  • sessionkeyfile "/run/named/session.key";
  • };
  • logging {
  • channel default_debug {
  • file "data/named.run";
  • severity dynamic;
  • };
  • };
  • zone "." IN {
  • type hint;
  • file "named.ca";
  • };
  • include "/etc/named.rfc1912.zones";
  • include "/etc/named.root.key";

2、创建正向解析区域文件

  • sudo nano /etc/named.rfc1912.zones

在文件末尾追加以下内容:

搭建CentOS系统上的DNS服务器指南-图2
(图片来源网络,侵权删除)
  • zone "example.com" IN {
  • type master;
  • file "example.com.zone";
  • allowupdate { none; };
  • };

创建并编辑example.com.zone 文件:

  • sudo nano /var/named/example.com.zone

添加以下内容:

  • $TTL 86400
  • @ IN SOA ns1.example.com. admin.example.com. (
  • 2023091101 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Minimum TTL
  • )
  • NS ns1.example.com.
  • A 192.168.1.100
  • www A 192.168.1.100

3、创建反向解析区域文件

  • sudo nano /etc/named.rfc1912.zones

在文件末尾追加以下内容:

  • zone "1.168.192.inaddr.arpa" IN {
  • type master;
  • file "1.168.192.zone";
  • allowupdate { none; };
  • };

创建并编辑1.168.192.zone 文件:

  • sudo nano /var/named/1.168.192.zone

添加以下内容:

搭建CentOS系统上的DNS服务器指南-图3
(图片来源网络,侵权删除)
  • $TTL 86400
  • @ IN SOA ns1.example.com. admin.example.com. (
  • 2023091101 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Minimum TTL
  • )
  • NS ns1.example.com.
  • PTR www.example.com.

三、防火墙配置及测试

1、关闭firewalld防火墙并安装iptables

  • sudo systemctl stop firewalld.service
  • sudo yum install iptablesservices y
  • sudo systemctl enable iptables
  • sudo systemctl start iptables

2、开放TCP和UDP端口53

  • sudo iptables I INPUT p tcp dport 53 j ACCEPT
  • sudo iptables I INPUT p udp dport 53 j ACCEPT
  • sudo service iptables save
  • sudo iptables L n v

3、重启BIND服务

  • sudo systemctl restart named

4、测试DNS解析

在客户端设备上,将DNS设置为指向你搭建的内网DNS服务器的IP地址,可以通过编辑/etc/resolv.conf 文件,将nameserver 的值修改为你的DNS服务器的IP地址,然后使用pingnslookup 命令测试域名解析是否正常工作。

  • ping www.example.com
  • nslookup www.example.com

四、FAQs问答环节

Q1: 如何更改DNS服务器的监听地址?

A1: 你可以通过修改/etc/named.conf 文件中的listenon 指令来更改DNS服务器的监听地址,如果你想让DNS服务器仅监听特定的IP地址,可以将其改为:

  • listenon port 53 { 192.168.1.100; };

修改后,记得重启BIND服务以使更改生效:

  • sudo systemctl restart named

Q2: 如果遇到“connection refused”错误怎么办?

A2: “connection refused”错误通常意味着DNS服务器没有正确监听指定的端口或者防火墙规则阻止了连接,请按照以下步骤排查问题:

1、确保BIND服务已经启动并且正在运行:

  • sudo systemctl status named

2、确保防火墙允许TCP和UDP协议的53端口通过:

  • sudo iptables L n v | grep dport

3、如果防火墙规则不正确,可以使用以下命令重新配置:

  • sudo iptables I INPUT p tcp dport 53 j ACCEPT
  • sudo iptables I INPUT p udp dport 53 j ACCEPT
  • sudo service iptables save
  • sudo systemctl restart iptables

4、确保DNS服务器配置文件中的listenon 指令正确无误。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/9840.html

分享:
扫描分享到社交APP
上一篇
下一篇