从零开始:Windows与Linux搭建局域网DNS全攻略
目录
- 从零开始:Windows与Linux搭建局域网DNS全攻略
- Windows 操作
- 1. 安装 DNS 服务器
- 2. 配置 DNS 服务器
- 域名映射到多个 IP 的配置实例
- 3. 配置客户端
- 4. 测试 DNS 解析
- 5. IP 绑定(通过 DHCP)
- Linux 操作(以 CentOS 为例)
- 1. 安装 DNS 服务器(BIND)
- 2. 配置 DNS 服务器
- 域名映射到多个 IP 的配置实例
- 3. 配置客户端
- 4. 测试 DNS 解析
- 5. IP 绑定(通过 DHCP)
- 总结
从零开始:Windows与Linux搭建局域网DNS全攻略
以下是在 Windows 和 Linux 系统上分别搭建局域网 DNS 服务器并实现 IP 绑定的详细步骤。同时,我会提供一个域名映射到多个 IP 的配置实例,适用于需要负载均衡等场景。操作将分为 Windows 和 Linux 两部分独立说明。
Windows 操作
1. 安装 DNS 服务器
- 打开“服务器管理器”(Server Manager)。
- 点击“添加角色和功能”(Add Roles and Features)。
- 在角色列表中选择“DNS 服务器”(DNS Server),按照向导完成安装。
2. 配置 DNS 服务器
- 打开“DNS 管理器”(DNS Manager)。
- 在左侧树状结构中,右键点击“正向查找区域”(Forward Lookup Zones),选择“新建区域”(New Zone)。
- 选择“主要区域”(Primary Zone),点击“下一步”。
- 输入区域名称,例如
local
,完成区域创建。 - 在新建的
local
区域下,右键选择“新建主机(A记录)”(New Host (A))。 - 输入主机名和 IP 地址,例如:
- 主机名:
server
- IP 地址:
192.168.1.100
- 点击“添加主机”完成记录创建。
- 主机名:
域名映射到多个 IP 的配置实例
若需将同一域名映射到多个 IP(例如实现简单的负载均衡),重复添加 A 记录:
- 在同一区域(
local
)下,继续创建 A 记录:- 主机名:
server
,IP:192.168.1.100
- 主机名:
server
,IP:192.168.1.101
- 主机名:
- 配置完成后,
server.local
将解析到192.168.1.100
和192.168.1.101
,客户端查询时会轮询返回这些 IP。
3. 配置客户端
- 打开“网络和共享中心” > “更改适配器设置”。
- 右键网络连接,选择“属性”。
- 双击“Internet 协议版本 4 (TCP/IPv4)”。
- 在“首选 DNS 服务器”中输入 DNS 服务器的 IP,例如
192.168.1.10
。
4. 测试 DNS 解析
在客户端命令行运行:
nslookup server.local
- 应返回配置的 IP 地址,例如
192.168.1.100
和192.168.1.101
。
5. IP 绑定(通过 DHCP)
- 打开“DHCP 管理器”(DHCP Manager)。
- 在左侧树状结构中,展开服务器,右键“IPv4”,选择“新建保留”(New Reservation)。
- 输入以下信息:
- 名称:
server
- IP 地址:
192.168.1.100
- MAC 地址:
00-11-22-33-44-55
- 名称:
- 保存后,该设备将始终获得固定 IP。
Linux 操作(以 CentOS 为例)
1. 安装 DNS 服务器(BIND)
- 更新系统:
sudo yum update -y
- 安装 BIND 软件:
sudo yum install bind bind-utils -y
- 启动服务并设置开机自启:
sudo systemctl start named sudo systemctl enable named
2. 配置 DNS 服务器
- 编辑主配置文件
/etc/named.conf
:options { listen-on port 53 { any; }; # 监听 53 端口 allow-query { localhost; 192.168.1.0/24; }; # 允许查询的范围 recursion yes; # 启用递归查询 }; zone "local" IN { type master; # 主区域 file "/var/named/local.zone"; # 区域文件路径 };
- 创建区域文件
/var/named/local.zone
:$TTL 1D @ IN SOA ns.local. admin.local. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS ns.local. ns IN A 192.168.1.10 # DNS 服务器自身 IP server IN A 192.168.1.100 # 主机 A 记录
- 设置文件权限:
sudo chown named:named /var/named/local.zone
- 重启服务:
sudo systemctl restart named
域名映射到多个 IP 的配置实例
若需将同一域名映射到多个 IP,在 /var/named/local.zone
中添加多条 A 记录:
server IN A 192.168.1.100
server IN A 192.168.1.101
- 保存后重启服务:
sudo systemctl restart named
- 此时,
server.local
将解析到192.168.1.100
和192.168.1.101
,客户端查询时会轮询返回。
3. 配置客户端
编辑 /etc/resolv.conf
:
nameserver 192.168.1.10
4. 测试 DNS 解析
在客户端运行来查看域名对应的ip(也可ping域名查看):
dig server.local
- 应返回配置的 IP 地址,例如
192.168.1.100
和192.168.1.101
。
以下为执行结果示例(仅配置192.168.1.100
):
(base) [root@localhost ~]# dig server.local
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16 <<>> server.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45324
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;server.local. IN A
;; ANSWER SECTION:
server.local. 86400 IN A 192.168.1.100
;; AUTHORITY SECTION:
local. 86400 IN NS ns.local.
;; ADDITIONAL SECTION:
ns.local. 86400 IN A 192.168.1.10
;; Query time: 0 msec
;; SERVER: 192.168.1.10#53(192.168.1.10)
;; WHEN: Tue Apr 08 14:04:10 CST 2025
;; MSG SIZE rcvd: 90
5. IP 绑定(通过 DHCP)
(IP 绑定)是通过 DHCP 服务器为特定设备的 MAC 地址分配固定 IP,确保设备在每次连接网络时获得与 DNS 记录一致的 IP 地址。但如果客户端已经手动配置了静态 IP(例如,通过操作系统网络设置指定了 IP 地址),那么 DHCP 服务器的分配机制就不会生效,因为客户端不会向 DHCP 请求 IP。因此,在这种情况下,配置 DHCP 的 IP 绑定是多余的。
不过,你需要确保以下两点:
- 客户端的静态 IP 与 DNS 配置一致:例如,如果你在 DNS 中将 server.local 映射到 192.168.1.100,客户端的静态 IP 必须设置为 192.168.1.100,否则域名解析会指向错误的地址。
- 网络中无 IP 冲突:静态 IP 需要手动管理,避免与 DHCP 动态分配的地址或其它设备的静态 IP 重复。
- 安装 DHCP 服务:
sudo yum install dhcp -y
- 编辑配置文件
/etc/dhcp/dhcpd.conf
:subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.50 192.168.1.200; } host server { hardware ethernet 00:11:22:33:44:55; # MAC 地址 fixed-address 192.168.1.100; # 固定 IP }
- 启动服务:
sudo systemctl start dhcpd sudo systemctl enable dhcpd
总结
以上是在 Windows 和 Linux 上搭建局域网 DNS 服务器并实现 IP 绑定的完整步骤。两者的核心思路一致,但配置工具和文件路径不同。域名映射到多个 IP 的实例通过添加多条 A 记录实现,适用于负载均衡等需求。完成后,客户端即可通过域名访问指定 IP,且 DHCP 可确保设备获得固定 IP 地址。