什么是 DNSSEC?它怎么防 DNS 劫持和缓存污染,宝塔域名怎么开
DNSSEC(Domain Name System Security Extensions,域名系统安全扩展)是一套 DNS 安全认证机制,它通过数字签名来验证 DNS 响应的真实性和完整性,目的是防止 DNS 缓存污染、DNS 劫持这类安全威胁。简单说:普通 DNS 查询「问什么答什么、但不验证答案是不是真的」,DNSSEC 则给解析结果加了签名,让查询方能够确认「这个 IP 确实是权威服务器签发的、中途没被人改过」。
DNSSEC 防的是哪两类攻击
普通 DNS 查询默认是「明文、无校验」的:递归解析器向权威服务器要结果,谁先回了、内容对不对,它自己无法判断。这给两类攻击留了空子:
- DNS 劫持:攻击者在查询链路中拦截并伪造一个响应,把
www.example.com指向自己控制的 IP,用户就被引到了钓鱼站。因为响应没有签名,解析器照单全收。 - DNS 缓存污染:攻击者向递归解析器投喂伪造的解析结果,让解析器把它缓存起来,之后一段时间内所有用户的查询都返回这个被污染的结果。
DNSSEC 的解法是给每一级解析结果做数字签名:权威服务器用自己的私钥对响应签名,递归解析器用对应的公钥验证签名。伪造的响应因为没有对应私钥签不出合法的签名,在验证链上过不去,就会被丢弃。这就是它「更高级别安全保护」的来源(概念见官方文档为域名配置 DNSSEC 与 DS 记录)。
工作原理:一条从根到域名的「验证链」
DNSSEC 不是给单个域名单独签名,而是一条自顶向下的信任链:
- 信任锚:根服务器的密钥签名(KSK)是整条链的起点,所有验证都从它往下递推。
- 根区签
.com等顶级域(TLD)的密钥摘要,TLD 再签example.com的密钥摘要,最后权威服务器用自己区的密钥签具体的解析应答。 - 递归解析器一层层验证,每一层都要「上一级的签名」对得上「这一级的公钥」,直到最终的解析结果。
这条链由几种记录衔接:DNSKEY(存放公钥)、DS(Delegation Signer,父区存子区密钥的摘要)、RRSIG(资源记录集的签名)。其中 DS 记录正是注册商这一侧要参与写入的那一条——它把「域名」和「DNS 服务商的签名密钥」关联起来。
宝塔在 DNSSEC 里扮演什么角色
DNSSEC 需要注册商和 DNS 服务商双方配合,宝塔作为域名注册商,负责的是「把 DS 记录写进域名的注册信息」,而实际的 DNSSEC 签名由 DNS 服务商(如 CloudFlare、阿里云 DNS 等)完成(见为域名配置 DNSSEC 与 DS 记录)。
所以开 DNSSEC 不是宝塔一家能做完的事,前提条件有三条:
- 域名已在宝塔完成注册,或已转入宝塔管理;
- 你的 DNS 服务商支持 DNSSEC 签名功能;
- 你已经从 DNS 服务商那里拿到了 DS 记录信息。
宝塔域名怎么开 DNSSEC:四步
第一步:在 DNS 服务商启用 DNSSEC。 登录 DNS 服务商控制台,找到 DNSSEC 配置项并启用签名,等它生成 DNSKEY 和 DS 记录。不同服务商入口不同:CloudFlare 在「DNS」选项卡里,阿里云 DNS 在「安全设置」里,腾讯云 DNS 在「域名解析」里。
第二步:获取 DS 记录信息。 从 DNS 服务商那里拿到四个值:Key Tag(密钥标签)、Algorithm(加密算法,通常为 7 或 8)、Digest Type(摘要类型,通常为 1 或 2)、Digest(摘要值)。形如:
2371 13 2 9388FDC839A35EA747E37A2B8A9D76BE2E56D0275F1A01F000148A916167B45B
第三步:在堡塔域名管理控制台添加 DS 记录。 登录堡塔域名管理控制台,进入「域名列表」,找到目标域名点「管理」进入详情,切到「域名安全」选项卡,点「管理 DNSSEC」:

点「添加 DS 记录」后,把第二步拿到的四个值逐一填进去(Algorithm 支持 5/7/8/10/12/13/14/15/16 等多种算法,Digest Type 支持 1/2/3/4):

保存并确认无误即可。
第四步:验证配置。 配置完成后需等 DNS 传播(通常 24–48 小时),之后可用在线工具 Verisign DNSSEC Debugger 或 DNSViz 验证,也可用命令:
dig DS example.com
dig +dnssec example.com
能查到 DS 记录、且签名验证通过,就说明 DNSSEC 已生效。
开了有什么好处,也别忘了它的代价
好处很明确:解析结果带签名、可验证,能防 DNS 响应被篡改(劫持)和缓存被污染,对金融、电商这类对「访问到的是不是真站点」敏感的业务尤其有价值。
但也要看清代价和前提,官方文档明确提醒(见为域名配置 DNSSEC 与 DS 记录):
DNSSEC 配置错误可能导致域名解析失败,请在配置前充分了解相关知识;如有疑问,联系宝塔技术支持或 DNS 服务商获取帮助。
此外它需要注册商和 DNS 服务商双方都支持并正确配合,更换 DNS 服务商后还要重新配置;生效也要等 24–48 小时的传播期。
如果只是想知道「域名解析有没有被劫持或污染」而不想现在就上 DNSSEC,可以用宝塔拨测的污染检测、拦截检测入口,先判断当前解析是否已经被动手脚,再决定要不要上签名防护。
常见问题
DNSSEC 是什么?
DNSSEC(域名系统安全扩展)是一套 DNS 安全认证机制,通过数字签名技术验证 DNS 响应的真实性和完整性,防止 DNS 缓存污染、DNS 劫持等安全威胁。它给域名解析结果「加了签名」,让递归解析器能确认返回的 IP 确实是权威服务器签发的、没被中间人篡改。
DNSSEC 能防住 DNS 劫持吗?
能防「篡改解析响应」这一类的 DNS 劫持:因为解析结果带签名,攻击者改了内容但拿不到对应私钥,伪造的响应在验证链上过不去,会被递归解析器识别为无效。它防的是响应被篡改和缓存被污染,前提是递归解析器本身开启了 DNSSEC 验证。
开启 DNSSEC 需要什么条件?
需要三件事:域名已在宝塔完成注册或转入宝塔管理;你的 DNS 服务商支持 DNSSEC 签名功能;并且你已经从 DNS 服务商那里拿到了 DS 记录信息(Key Tag、Algorithm、Digest Type、Digest 四个值)。
DS 记录是什么?四个字段各是什么?
DS(Delegation Signer)记录是注册商写进域名注册信息里、用来「指向」DNS 服务商签名密钥的一条记录。它有四个字段:Key Tag(密钥标签)、Algorithm(加密算法)、Digest Type(摘要类型)、Digest(摘要值)。宝塔作为注册商只负责添加这条 DS 记录,实际的 DNSSEC 签名由 DNS 服务商完成。
配置 DNSSEC 后多久生效?怎么验证?
配置完成后需要等 DNS 传播,通常 24–48 小时。验证可以用在线工具 Verisign DNSSEC Debugger、DNSViz,或用命令 `dig DS example.com` 查询 DS 记录、`dig +dnssec example.com` 查看签名验证结果。
配置 DNSSEC 后网站打不开怎么办?
多数是 DS 记录配置错误、DNS 传播还没完成、或 DNS 服务商配置问题三类原因。先核对 Key Tag、Algorithm、Digest Type、Digest 四个值是否填对,再等 24–48 小时让记录传播,最后联系 DNS 服务商确认 DNSSEC 签名是否正常。