马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
内网里想让几台机器用域名互相访问,不外乎两条路:改 hosts,或者自己搭一台 DNS。 hosts 机器一多就管不过来,局域网 DNS 才是一次配置、全网段生效的做法。这篇文章分别给出 Windows Server 用 DNS 服务器角色、CentOS 用 BIND 两套完整流程,并演示"一个域名解析到多个 IP"的配置——这是做内网负载均衡最省事的入门手段。
一、Windows 侧:装角色建区域
1. 安装 DNS 服务器
- 打开"服务器管理器"(Server Manager);
- 点"添加角色和功能"(Add roles and features);
- 角色列表里勾上"DNS 服务器"(DNS Server),按向导走完安装。
2. 建立正向查找区域与主机记录
- 打开"DNS 管理器"(DNS Manager);
- 左侧树状结构里右键"正向查找区域"(Forward Lookup Zones)→ 新建区域(New Zone);
- 选"主要区域"(Primary Zone),下一步;
- 输入区域名,例如 local,完成创建;
- 在该区域上右键"新建主机(A 记录)"(New Host (A)),填主机名与 IP。
主机名:server
IP 地址:192.168.1.100
点"添加主机"即完成一条记录。
3. 一个域名挂多个 IP
想做简单负载均衡,就在同一区域里重复加 A 记录:
主机名:server IP:192.168.1.100
主机名:server IP:192.168.1.101
配置完成后,server.local 会解析出两个地址,客户端查询时轮询返回,实际流量就被摊开了。
4. 客户端指向这台 DNS
- "网络和共享中心" → "更改适配器设置";
- 右键网络连接 → 属性;
- 双击"Internet 协议版本 4 (TCP/IPv4)";
- "首选 DNS 服务器"里填这台机器的 IP,例如 192.168.1.10。
5. 验证
nslookup server.local
应返回刚才设置的地址,多记录场景下会出现两个 IP。
6. 用 DHCP 保留固定 IP
想让某台机器永远拿到同一个 IP,走 DHCP 保留:
DHCP 管理器 → 服务器 → 右键 IPv4 → 新建保留(New Reservation)
名称:server
IP 地址:192.168.1.100
MAC 地址:00-11-22-33-44-55
保存后该设备每次都拿到同一个地址,DNS 里的 A 记录才不会和实机脱节。
二、Linux 侧:BIND 装与配
1. 安装并起服务
sudo yum update -y
sudo yum install bind bind-utils -y
sudo systemctl start named
sudo systemctl enable named
2. 主配置文件
编辑 /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"; // 区域文件路径
};
allow-query 要按实际网段收紧,别写成 any 直接对整个互联网开放递归查询,那是递归解析器常见的滥用入口。
3. 区域文件
新建 /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 记录
注意 SOA 小括号里的顺序:serial 改过要递增,主从同步才认;refresh/retry/expire 是给从服务器用的二级缓存节奏。
4. 权限与重启
sudo chown named:named /var/named/local.zone
sudo systemctl restart named
区域文件必须属主是 named,否则 named 进程读不到会直接拒载整个区域。改完配置记得先 named-checkconf 再重启,报错信息比看日志 快。
5. 一个域名多 IP
在区域文件里加第二条 A 记录即可:
server IN A 192.168.1.100
server IN A 192.168.1.101
保存后重启 named,server.local 就会轮询返回两个地址。
6. 客户端与验证
客户端改 /etc/resolv.conf:
nameserver 192.168.1.10
验证用 dig 最直观:
dig server.local
输出里会同时出现两个 A 记录,并且开头通常带一行 .local 保留给 mDNS 的提示,这是正常现象,不代表配置失败。
三、两套方案怎么选
Windows 方案适合域环境、运维团队以图形界面为主、已经跑着 AD 的场景,新建区域和加 A 记录都在 GUI 里点几下完成,门槛最低。CentOS + BIND 适合servers 全是 Linux、需要进版本控制管理配置、或者要和自动化脚本打通的环境,代价是要能吃透 named.conf 和区域文件语法。
共同的三条底线:区域文件属主权限别放错;allow-query 按网段收紧;改完先做配置检查再重启。做到这三点,内网域名解析基本不会再出"明明配了却解析不到"的哑火问题。
qidao123.com企服评测-应用市场 编辑提示
本文按 Windows 服务器管理器装 DNS 角色、正向查找区域与 A 记录新建、单域名多 IP 轮询、客户端首选 DNS 设置、nslookup 验证、DHCP 固定地址保留,以及 CentOS 下 BIND 的 yum 安装、named.conf 的监听与 allow-query 配置、local.zone 的 SOA 与 NS/A 记录、chown 权限与重启、dig 验证,重排成两套可照做的内网 DNS 落地流程。文中 IP、MAC、区域名均为示意值,命令与配置文件语法取自 BIND 官方文档,请以实际网络规划为准;服务请在自有或已授权网络环境中部署,开放递归查询前务必按网段收敛范围。 |