知识

dns服务器配置教程

时间:2010-12-5 17:23:32  作者:娱乐   来源:焦点  查看:  评论:0
内容摘要: dns服务器配置教程 下午两点,办公室突然断网。ping网关通,ping百度超时。同事急得跺脚,我打开路由器后台,把DNS从自动改成8.8.8.8,三秒后网页刷出来了。这种场景你肯定不陌生——DNS

dns服务器配置教程

下午两点,配置办公室突然断网。教程ping网关通,配置ping百度超时。教程同事急得跺脚,配置我打开路由器后台,教程把DNS从自动改成8.8.8.8,配置三秒后网页刷出来了。教程这种场景你肯定不陌生——DNS就是配置那个把域名翻译成IP的“电话簿”,它挂了,教程网络再快也白搭。配置

自己搭一个DNS服务器,教程其实没想象中复杂。配置我用的教程是Ubuntu 22.04,装个BIND9,配置半小时能跑起来。先更新软件源,然后apt install bind9,一条命令的事。装完别急着启动,先看看配置文件长啥样——/etc/bind/named.conf是主入口,里面用include引了三个子文件,其中named.conf.options最常改。

打开options文件,里面默认只有几行注释。你要加的是监听地址和允许查询的网段。比如公司内网是192.168.1.0/24,就写:

options {  listen-on port 53 {  192.168.1.10; }; allow-query {  192.168.1.0/24; }; recursion yes; };

这里有个坑:如果服务器有多个网卡,没写listen-on的话,BIND默认只监听本机回环地址。我上次就是漏了这行,内网其他机器死活解析不了。改完配置记得named-checkconf检查语法,没问题就systemctl restart bind9。

光有转发还不够,真正的乐趣在于配置权威区域。假设你要给内部项目搭个伪域名project.local,在named.conf.local里加一段:

zone "project.local" {  type master; file "/etc/bind/zones/db.project.local"; };

然后手动创建那个zone文件。别怕写记录,核心就几条:A记录指向服务器IP,CNAME给服务起别名,MX留给邮件系统。我习惯把TTL设成300秒——开发环境改记录频繁,等5分钟总比等2小时强。写完后用named-checkzone project.local /etc/bind/zones/db.project.local验证,出错会直接告诉你行号和原因。

还有个常被忽略的细节:系统自带的systemd-resolved会抢占53端口。你装完BIND9发现启动失败,八成是它搞的鬼。解决办法是systemctl stop systemd-resolved,然后编辑/etc/resolv.conf,把nameserver改成127.0.0.1。这步不做,你后面怎么配都白搭。

配置完成后,测试别偷懒。先从服务器本机dig @127.0.0.1 project.local,看返回的A记录对不对。再到客户端机器手动把DNS指到192.168.1.10,nslookup project.local能解析就说明通了。如果不行,先tcpdump -i eth0 port 53抓包,看请求到底到没到服务器——八成是防火墙挡了,放行UDP 53端口就行。

说句实在话,现在云厂商的DNS服务又便宜又省心,自建这玩意儿纯属给自己找活干。但你要是搞内网穿透、离线开发环境,或者纯粹想弄懂DNS原理,亲手搭一次比看十篇文档都管用。我办公室那台树莓派至今还跑着这个服务,偶尔给测试环境切个域名,比改hosts文件利索多了。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap