链接预览与 DNS 泄露防护:网页抓取隔离与出站元数据加固
链接预览由 Telegram 服务器抓取生成,网站看到的是 Telegram 而非你。但在秘密聊天中,启用预览会让网址离开加密通道,削弱其存在意义。本文讲清这一权衡,并教你调整预览样式、写好链接说明。
链接预览由 Telegram 服务器抓取生成,网站看到的是 Telegram 而非你。但在秘密聊天中,启用预览会让网址离开加密通道,削弱其存在意义。本文讲清这一权衡,并教你调整预览样式、写好链接说明。

把链接粘贴到聊天里,就会出现一张带有标题、描述和图片的卡片。要让这张卡片存在,就必须有某个东西去抓取那个页面,而究竟是哪台机器去抓取的,正是本步骤的全部主题。
答案在普通聊天里是好消息,在秘密聊天里则是一个实实在在的权衡——而秘密聊天恰恰是那种便利行为与你使用它的初衷相冲突的唯一场景。
完成本步骤后你将能够
- 说出生成预览时,网站看到的是谁的地址。
- 解释为什么秘密聊天中的预览会削弱秘密聊天本身的意义。
- 当预览与你的消息不搭时,将其移除或调整样式。
- 区分预览与真正打开链接之间的差别。
Telegram 的服务器负责抓取
在普通聊天中,你的设备并不会去加载那个页面。它把地址发送给 Telegram,由 Telegram 自己的基础设施请求该页面,读取网站专门为此发布的标题、描述和图片,再把卡片回传给对话中的所有人。
这带来一个值得了解的后果,因为它与人们的假设正好相反。网站看到的是来自 Telegram 的请求,而不是来自你。你的地址不在它的日志里,而一个专门用来记录谁看过它的链接,记录的是一次来自数据中心的访问,而不是来自你家宽带的访问。
同样的设计意味着,当一篇被广泛分享的文章出现在成千上万个对话中时,网站并不会被访问成千上万次。预览被抓取一次后会被复用,这就是为什么在繁忙频道里发一个链接并不会对发布者构成压力测试。
这一切都不是对链接掉以轻心的理由,下一节会说明原因。但人们具体担心的那件事——看到预览就会把自己暴露给发送者——在这里并不成立。
有人在群里发了一个链接,预览出现在你的屏幕上。网站的所有者能了解到关于你的什么信息?
你的地址和大致位置,来自你设备发起的抓取
关于你,什么也学不到——页面是由 Telegram 抓取的,一次,为所有人
什么也学不到,除非链接包含跟踪参数
抓取发生在 Telegram 一侧,结果被共享,所以网站无法把你与群里的任何其他成员区分开来,也完全无法知道你当时在场。这是该设计的一个真正优势,也是聊天里的链接比电子邮件里的链接暴露更少的原因。当然,你一点击它,你就成了一个普通访客。
你在启用了预览的秘密聊天中发送了一个链接。现在有谁知道这个地址?
只有你和接收者——聊天是端到端加密的
Telegram 的服务器也知道,因为总得有什么去抓取页面
没人——预览是在 Secret Chat 中本地生成的
这就是本步骤核心的那个权衡。不向页面询问标题就无法构建卡片,而在秘密聊天中,这个请求必须有某个来源。启用预览意味着网址离开了加密通道,尽管消息本身没有——而对于那些真正值得使用秘密聊天的少数情形来说,这恰恰是你想要避免的泄露。有一个设置可以控制它,而且它应该处于关闭状态。
从一条消息中移除预览,实际上能达到以下哪一点?
它阻止接收者的设备联系该网站
它向任何尚未点击的人隐藏地址
它只改变你消息的外观——仅此而已
移除卡片只是呈现层面的操作。链接仍然以纯文本形式存在,仍然可以点击,而且无论如何 Telegram 已经抓取过那个页面了。这没什么问题,因为呈现本身就是一个真实的理由:一个次要引用配上巨大的卡片会淹没你自己的文字,而网站选的一张图库照片往往还不如没有配图。
秘密聊天的例外,直白地说
步骤 025 描述了那项保证:在秘密聊天中,Telegram 传递的是它自己无法读取的内容。链接预览是唯一一个与这一保证格格不入的普通功能。
一张预览卡片需要有人去访问那个页面。如果那个人是 Telegram 的爬虫,那么地址——不是消息,而是地址——就被交给了你特意要绕开的那个服务。如果换成你自己的设备去访问,那么网站本身就会看到你的连接。不存在一种安排能让卡片出现而什么都不外泄。
Telegram 把这做成一个设置而非默认行为,这是正确的做法,而建议很简单:在秘密聊天中关闭预览。你失去一张图片。你保住了让这段对话值得存在的那个特性。
在普通聊天中,这一切都不适用,因为地址作为消息的一部分本来就已经经过 Telegram 的服务器。没有什么额外需要保护的,而预览就是一种直接的便利。
卡片是你消息的配图
把隐私问题放到一边,底下还有一个实际问题,因为预览往往是你消息中最大的东西,而它的任何部分都不是你选的。
发送前,输入框上方的暂存栏让你可以修改它:把图片调大或调小,把卡片移到文字上方或下方,当有多个链接时选择预览哪一个,或者完全移除它。步骤 012 介绍过那个栏;这就是它的用途之一。
有三种情况默认设置是错的。你顺带引用的一个链接却配了一张占满整行的卡片,压过了一整段文字——把它调小或移除。一个本身就是消息重点的链接,把卡片放在你的评论上方读起来更好,这样人们在读你的看法之前就能看到它是什么。而一个默认图片很糟糕的网站——一个标志、一张图库照片、某人的脸——还不如什么都不配。
在频道里这比在聊天里更重要,因为卡片是帖子在信息流中的视觉标识。把它交给目标网站碰巧发布的内容,就是把你的呈现交给别人。
现在就试试——五分钟
一项隐私检查,以及三个能改善你发送的每一个链接的习惯。
- 在秘密聊天中关闭链接预览 在隐私设置里。如果你从不使用秘密聊天,这不会让你有任何损失;如果你用,这是本页唯一一个具有安全后果的项目。
- 给自己发一个链接,试试预览控制 收藏的消息就是合适的地方。大卡片、小卡片、上方、下方、移除。知道这四种状态存在本身就是大部分好处。
- 每个链接都配一句话 它指向哪里以及为什么。这也是对步骤 052 所涵盖的那种套路的防御:一个可见文字说一套、而目的地是另一套的链接。
- 检查你自己的频道帖子看起来如何 如果你运营一个频道,翻翻你的信息流,看看哪些帖子被你从未选择过的卡片所主导。那值得花五分钟去修正。
Telegram 自己的链接预览方式不同
指向一个频道、一个群组或某条具体消息的链接仍然是链接,但不涉及外部网站——Telegram 用它已经知道的信息来构建卡片。
对于一个公开频道,这会生成一张真正有用的卡片:名称、描述和图片,这样人们在点击之前就能看到自己被邀请加入的是什么。这是该平台最接近名片的东西,也是步骤 065 中那个公开描述值得认真撰写的又一个理由。
指向单条消息的链接行为不同,而这个差异常常让人措手不及。它只对已经能看到那个聊天的人有效。给同事发一个他们不在其中的私密群里的消息链接,他们得到的是毫无用处的东西——没有卡片,没有内容,没有解释。步骤 012 从另一个方向讲过同样的道理:链接是一个位置,而不是一份副本。
邀请链接又是第三种情况。它的预览呈现的是它所打开的那个房间,这意味着把它粘贴到公开场合,就等于向所有看到这条消息的人宣传这个房间,而不仅仅是你想邀请的那个人。步骤 023 的控制项正是为此而存在的。
这个阶段的常见问题
为什么有些链接从不生成预览?
因为该页面没有发布构建卡片所需的信息,或者它在登录之后,或者它拒绝来自自动访客的请求。你这边没有任何问题,也没有哪个设置能强制生成一个。如果一张卡片很重要——比如对频道里的一个帖子——可靠的答案是自己附上一张图片,而不是指望网站配合。
链接能告诉发送者我看了他们的消息吗?
不能通过预览,因为抓取不是你的,而且对所有人只发生一次。真正会告诉他们的是打开链接,那是来自你设备的一次普通访问,以及消息本身的已读回执,步骤 017 讲过这个。如果你在避免被人看到自己读了某样东西,预览不是该担心的东西。
预览图片会被存储在某处吗?
它会被缓存,这样卡片就能展示给所有看到这条消息的人,而无需重新抓取页面。这意味着预览可能比它来源的页面活得更久——一篇上个月被删除的文章,可能仍然在聊天里显示它旧的标题和图片。当你依赖一张卡片来说明某样东西曾经是什么时,这一点值得知道:卡片是一个快照,而不是实时视图。
这能保护我免受恶意链接的侵害吗?
只能防住被动的那部分。你的地址不会暴露,当它只是一张卡片时,页面上的任何东西都不会在你的设备上运行——但卡片是用网站控制的文字生成的,所以一个令人信服的标题和图片并不能证明链接指向哪里。防御很简单:点击前长按读出真实地址,并把任何消息中意外的链接当作一个去核实的提示,而不是去点击的提示。
我能让所有内容都不显示预览吗?
你可以在发送前逐条消息移除它们,这是大多数人想要的控制。普通聊天没有账户级别的开关,因为卡片是对话中每个人收到的消息的一部分,而不是你的显示偏好。秘密聊天的设置之所以不同,正是因为在那里问题不是呈现,而是究竟有没有发出请求。
指向我自己网络上内容的链接呢?
只有从你家或办公室网络才能访问的地址不会生成预览,因为负责抓取的机器不在那个网络上。这是预期行为,也是安全的行为。如果你要和同事分享内部的东西,链接只有在他们也在同一网络上时才对他们有效——这很好地提醒了链接是一个位置,而不是一份副本,步骤 012 从另一个方向讲过这一点。