什么是TXT记录?
TXT(文本)记录是与域关联的任何文本字符串的DNS记录类型。最初用于人类可读的注释,TXT记录已成为机器可读数据的必要部分,如电子邮件身份验证政策、域所有权验证和特定于服务的配置。
常见TXT记录用途
电子邮件身份验证
SPF(发件人政策框架):example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
指定哪些服务器可以为你的域发送电子邮件。
DKIM(域名密钥标识邮件):google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0..."
包含用于电子邮件签名验证的公钥。
DMARC(基于域的消息身份验证):_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"
定义电子邮件身份验证政策和报告。
域验证
Google搜索控制台:example.com. IN TXT "google-site-verification=abc123..."
Microsoft 365:
example.com. IN TXT "MS=ms12345678"
SSL证书验证:
_dnsauth.example.com. IN TXT "validation-token-from-ca"
其他应用
Facebook域验证:example.com. IN TXT "facebook-domain-verification=xyz789"
Keybase身份:
_keybase.example.com. IN TXT "keybase-site-verification=..."
自定义应用数据:
_app.example.com. IN TXT "config=value123"
TXT记录格式
基本语法
name IN TXT "text content here"
多个TXT记录
域可以有多个TXT记录:
example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. IN TXT "google-site-verification=abc123"
example.com. IN TXT "facebook-domain-verification=xyz789"
长TXT记录
TXT记录字符串限制为每字符串255个字符,但多个字符串可以连接:
selector._domainkey.example.com. IN TXT (
"v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
"...long key continues..."
)
DNS客户端自动连接这些字符串。
检查TXT记录
使用dig:dig example.com TXT
; 答案部分:
example.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
检查特定子域TXT:
dig _dmarc.example.com TXT
dig selector._domainkey.example.com TXT
使用DomScan:
curl "https://domscan.net/v1/health?domain=example.com"
# 返回DNS详情中的hasTXT和电子邮件身份验证状态
TXT记录最佳实践
对于电子邮件身份验证
1. 始终一起配置SPF、DKIM和DMARC
2. 使用单个SPF记录 - 多个SPF记录会造成问题
3. 将SPF查询保持在10以下 - 超过会造成失败
4. 在部署前测试 - 使用在线验证程序
对于域验证
1. 不要移除验证TXT记录 - 服务可能会重新验证
2. 文档每个TXT记录的用途 - 它们可以积累
3. 清理未使用的记录 - 移除你不再使用的服务的记录
对于自定义应用
1. 使用下划线前缀(_app.example.com)以避免冲突
2. 文档格式 - 未来的你会忘记
3. 考虑TTL - 对于经常改变的配置使用较低的TTL
安全考虑
信息泄露
TXT记录是公开的。不要存储敏感信息:
# 不好 - 暴露内部信息
example.com. TXT "internal-api-key=secret123"
SPF漏洞
过于宽松的SPF记录可以启用电子邮件欺骗:
# 不好 - 允许任何人发送
example.com. TXT "v=spf1 +all"
# 好 - 限制性
example.com. TXT "v=spf1 include:_spf.google.com -all"
故障排除TXT记录
多个SPF记录:仅一个SPF记录每个域有效。将多个SPF政策合并为一个。 截断的记录:如果你的TXT记录看起来被切割,确保正确的字符串引用和连接。 传播延迟:TXT记录更改遵循基于TTL的传播。在进行验证记录更改前降低TTL。TXT记录是DNS的瑞士军刀——功能多样但需要仔细管理,因为它们的使用增长。