HOME> 世界杯意大利名单> 局域网自建DNS服务器

局域网自建DNS服务器

2025-06-13 03:13:28

局域网自建DNS服务器:

在局域网(LAN)中自建DNS服务器可以有效地管理和解析本地网络中的域名,这对网络管理员和技术爱好者来说都是一个非常实用的解决方案。

以下是设置一个基本的局域网DNS服务器的一般步骤和建议:

选择合适的软件

有几种常用的DNS服务器软件可以选择:

BIND (Berkeley Internet Name Domain): 非常流行且功能强大的DNS服务器软件,适合中大型网络。

dnsmasq: 轻量级的DNS和DHCP服务器,适合小型网络和嵌入式设备。

Unbound: 主要用于递归DNS查询,非常安全且配置简单。

Microsoft DNS: 集成在Windows Server中,适合Windows网络环境。

安装和配置DNS服务器(以 BIND 为例):

-----------------------------------------------

在CentOS 7上安装BIND:

-----------------------------------------------

BIND 9通常通过bind包来安装BIND和BIND工具

sudo yum update -y

sudo yum install -y bind bind-utils

配置BIND

BIND的主要配置文件通常位于 /etc/named.conf。你需要对其进行一些基本配置。

编辑配置文件 /etc/named.conf:

sudo vi /etc/named.conf

文件内容示例:

options {

listen-on port 53 {127.0.0.1; any; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

recursing-file "/var/named/data/named.recursing";

secroots-file "/var/named/data/named.secroots";

allow-query { localhost;10.0.1.0/24;};

forwarders {

223.5.5.5; // 阿里云 DNS

8.8.8.8; // Google DNS

8.8.4.4;

};

/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key";

};

zone "example.com" {

type master;

file "example.com.zone";

allow-update { none; };

};

修改options块,允许所有IP进行查询(或者仅允许你的本地网络):

directory:指定BIND存储区域文件的位置。

allow-query:指定允许向BIND服务器发送查询请求的IP范围。根据你的网络情况,你可以设置为允许来自特定子网的请求,如 192.168.1.0/24。

forwarders:指定一个或多个上游DNS服务器的IP地址。BIND会将无法本地解析的DNS查询转发给这些服务器。

区域配置zone:根据需求定义主区域(master zone);

创建区域文件(通常存放在 /var/named 目录下):区域文件通常以.zone结尾,例如:db.example.com.zone。

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

在文件中添加你的DNS记录,例如:

$TTL 86400

@ IN SOA ns1.example.com. admin.example.com. (

2024080701 ; Serial

3600 ; Refresh

1800 ; Retry

1209600 ; Expire

86400 ) ; Minimum TTL

IN NS ns1.example.com.

ns1 IN A 192.168.1.10

www IN A 192.168.1.20

DNS区域文件的内容定义了example.com域的DNS记录,包括该域的SOA(Start of Authority)记录、NS(Name Server)记录和A(Address)记录。下面是对每一部分的解释:

$TTL 86400

$TTL:默认的生存时间(Time To Live),单位为秒。

86400:表示24小时(86400秒)。这是记录在DNS缓存中保存的时间。在此时间段内,缓存的DNS服务器不会向原始DNS服务器请求新的记录。

@ IN SOA ns1.example.com. admin.example.com. (...)

@:代表当前的域名(即example.com)。

IN:表示Internet类的记录。

SOA:Start of Authority,标志域名的权威起点,定义了DNS区域的基本信息。

ns1.example.com.:主DNS服务器的域名。这是负责该域名区域的主要DNS服务器。

admin.example.com.:域名管理员的电子邮件地址,.替代了@符号(如 admin@example.com)。

(...):括号内的字段分别是:

2024080701 - Serial:序列号,用于标识此区域文件的版本。每当该文件有修改时,序列号应递增。格式通常为 YYYYMMDDNN(年份+月份+日期+修改次数)。

3600 - Refresh:刷新间隔,单位为秒。此时间表示从属DNS服务器应该多长时间检查主DNS服务器以获取更新。3600秒即1小时。

1800 - Retry:重试间隔,单位为秒。如果从属DNS服务器在尝试获取更新失败后,需要等待多长时间再进行重试。1800秒即30分钟。

1209600 - Expire:失效时间,单位为秒。如果从属DNS服务器在指定的失效时间内无法与主DNS服务器通信,则该DNS区域数据被认为是无效的。1209600秒即14天。

86400 - Minimum TTL:在之前版本的BIND中,Minimum TTL被用作负面缓存(Negative Caching)的默认TTL。在现代BIND版本中,它仍然定义了该区域的TTL值。

IN NS ns1.example.com.

IN:表示Internet类的记录。

NS:Name Server记录,指定该域名的权威DNS服务器。

ns1.example.com.:指定example.com的权威DNS服务器为ns1.example.com。

ns1 IN A 192.168.1.10

ns1:主机名,即 ns1.example.com。

IN A:A记录,将主机名映射到IPv4地址。

192.168.1.10:ns1.example.com的IP地址。

www IN A 192.168.1.20

www:主机名,即 www.example.com。

IN A:A记录,将主机名映射到IPv4地址。

192.168.1.20:www.example.com的IP地址。

设置BIND启动与开机自启动

启动BIND:

sudo systemctl start named

启用BIND服务,使其在系统启动时自动启动:

sudo systemctl enable named

配置防火墙:

确保你的防火墙允许DNS查询通过(默认端口53), 在CentOS 7上,使用以下命令安装防火墙:

sudo firewall-cmd --permanent --add-port=53/udp

sudo firewall-cmd --permanent --add-port=53/tcp

sudo firewall-cmd --reload

测试BIND配置

使用以下命令测试BIND配置是否正确:

sudo named-checkconf

sudo named-checkzone example.com /var/named/example.com.zone

如果没有错误信息返回,则配置文件和区域文件是正确的。

配置客户端

在局域网中的客户端设备上,将DNS服务器的IP地址设置为刚刚配置的DNS服务器的IP地址(如 192.168.1.2)。这可以在网络设置中手动配置,也可以通过DHCP服务器自动分发。

测试DNS服务器:

使用 nslookup工具测试DNS解析功能,确保配置正确。定期检查和更新DNS记录,保持数据的准确性和网络的正常运行。

nslookup example.com localhost

也可以直接使用ping 命令测试域名解析功能。

ping example.com

如果解析成功,BIND 9已经成功安装并配置为DNS服务器。

-----------------------------------------------

在Ubuntu系统上安装BIND:

-----------------------------------------------

使用以下命令安装BIND:

sudo apt update

sudo apt install bind9

-配置BIND

配置文件通常位于 /etc/bind 目录下。主要的配置文件是 named.conf 和 zone 文件。

编辑主配置文件 named.conf(配置基本选项和引入区域文件):

// /etc/bind/named.conf

options {

directory "/var/cache/bind";

recursion yes;

allow-query { any; };

forwarders {

8.8.8.8; // Google DNS 或其他外部DNS服务器

8.8.4.4;

};

};

配置区域(zone)named.conf.local文件(创建区域文件定义本地网络的域名和IP地址的映射):

// /etc/bind/named.conf.local

zone "example.local" {

type master;

file "/etc/bind/db.example.local";

};

创建区域文件:

// /etc/bind/db.example.local

$TTL 604800

@ IN SOA ns1.example.local. admin.example.local. (

2024080701 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

; Name servers

@ IN NS ns1.example.local.

; A records for name servers

ns1 IN A 192.168.1.2

; A records for other hosts

www IN A 192.168.1.3

重启BIND服务:

sudo systemctl restart bind9

配置客户端

在局域网中的客户端设备上,将DNS服务器的IP地址设置为刚刚配置的DNS服务器的IP地址(如 192.168.1.2)。这可以在网络设置中手动配置,也可以通过DHCP服务器自动分发。

测试DNS服务器:

使用 nslookup工具测试DNS解析功能,确保配置正确。定期检查和更新DNS记录,保持数据的准确性和网络的正常运行。

nslookup example.com localhost

也可以直接使用ping 命令测试域名解析功能。

ping example.com

如果解析成功,BIND 9已经成功安装并配置为DNS服务器。

阿里云账号企业实名认证需要多少时间?
社交关系与流量无法解决58同城的两大痛点