域名TXT记录(TEXT Record)是DNS中的一种资源记录,用于为域名添加人类可读的文本信息,常见于SPF、DKIM、DMARC、域名验证等场景。关于其长度限制,需要区分单个字符串、单个TXT记录与DNS报文整体三个层面。

根据DNS规范RFC 1035,一条TXT记录由一个或多个字符字符串(character-string)组成。每个字符字符串使用一个长度字节标识其长度,因此单个字符串的最大长度为255字节;如果一条TXT记录包含多个字符串,其RDATA总长度字段为2字节,因此整个TXT记录的理论最大长度可达65535字节。但在实际DNS系统中,这个理论上限几乎无法达到,因为它受DNS报文大小和解析器的处理能力限制。
在传统DNS协议中,未启用EDNS(0)时,UDP DNS报文默认最大为512字节,这会直接限制单条TXT记录可携带的实际内容长度。启用EDNS后,单个DNS报文可以承载更大的UDP数据包(例如4096字节),但MTU限制、中间网络设备、权威服务器配置以及解析器兼容性都会影响最终可用长度。因此,一条TXT记录的实际可用长度通常远小于理论最大值,建议控制在300~400字节以内。
从域名服务商的实践来看,不同平台的TXT记录长度限制并不完全相同。多数权威解析服务商将单条TXT记录的值限制为255字节或255个字符,这与RFC中单个字符字符串的最大长度一致。部分服务商不支持在同一条TXT记录中录入多个字符串,也不允许通过“拼接”方式突破该限制。如果需要发布更长的文本,应当拆分为多条TXT记录,或使用其他合适的DNS记录类型。
特别需要说明的是,SPF记录虽然通过TXT记录发布,但RFC 7208明确规定SPF记录中的字符串长度不能超过255字节,并且SPF规范限制DNS查询次数不得超过10次。当SPF语句过长时,应使用include机制拆分到多个域中,而不是试图通过增加TXT字符串长度来突破限制。
结论:域名TXT记录的单个字符串长度上限为255字节;同一条TXT记录可以包含多个字符串,理论上总长度可达65535字节,但受DNS报文大小、解析器能力和服务商策略限制,实际使用中通常不可行。在配置域名TXT记录时,应将单条记录值控制在255字节以内,并优先保证与主流DNS解析服务器以及邮件安全校验系统的兼容性。

查看详情

查看详情