磁力链Magnet

磁力链的定义、工作原理与 .torrent 的区别

#status / growing #type / concept

磁力链 Magnet Link

一句话定义

磁力链是一种基于文件内容哈希(infohash) 的 URI scheme,用于在 P2P 网络中定位和下载文件,无需中心化的 tracker 服务器或 .torrent 文件。

核心机制 / 工作原理

URI 结构

magnet:?xt=urn:btih:<infohash>&dn=<文件名>&tr=<tracker地址>
参数含义
xtexact topic,urn:btih: 表示 BitTorrent info hash
dndisplay name,可选的文件名提示
trtracker URL,可选的 tracker 地址

magnet vs .torrent

维度.torrent 文件磁力链
需要 tracker通常需要可选
需要元数据文件否(通过 DHT 获取)
分享方式传文件传一个字符串链接
去中心化依赖 tracker原生支持 DHT

工作流程

  1. 客户端拿到磁力链(一个字符串)
  2. 通过 DHT(分布式哈希表) 网络查找哪些节点拥有该 infohash 对应的文件
  3. 通过 PEX(Peer Exchange) 从已连接的节点获取更多 peer
  4. 从多个 peer 同时下载文件的不同片段(分片下载)
  5. 同时自己也作为上传者,为其他 peer 提供已下载的片段

DHT 与 PEX

  • DHT (Distributed Hash Table) — 分布式节点网络,每个节点负责存储部分”哪个 peer 拥有哪个文件”的映射。常见实现:Mainline DHT、Kademlia。
  • PEX (Peer Exchange) — 已连接的 peer 之间互相告知其他 peer 的地址,加速发现更多下载源。

最小例子

magnet:?xt=urn:btih:9f35d2c8a5e6b7d8f1a2c3d4e5f6a7b8c9d0e1f2&dn=example.pdf
  • 9f35d2c8... 是文件内容的 SHA-1 哈希(infohash),40 个十六进制字符
  • example.pdf 是可选的文件名提示
  • 没有 tr 参数,完全依赖 DHT 发现 peer

边界与常见误解

  • “磁力链 = 盗版” — 磁力链是中性技术,用于 P2P 文件分享。合法用途包括 Linux ISO 分发、学术数据集共享等。
  • “磁力链比 torrent 快” — 速度取决于做种人数和带宽,与使用磁力链还是 .torrent 无关。磁力链的优势是便利性,不需要先下载元数据文件。
  • infohash 不包含文件内容 — infohash 只是文件元数据的哈希摘要,不包含文件名、大小或内容。下载时需要先通过 DHT 获取元数据。
  • 隐私 — 使用磁力链时,你的 IP 地址对其他 peer 可见(P2P 协议的固有特性)。VPN 或代理可以隐藏 IP,但不能完全匿名。
  • “磁力链只用于 BitTorrent”magnet: URI scheme 设计上不限于 BT 协议,但实际使用几乎全部是 BT。
  • 相关概念: 哈希摘要Hash
  • [[p2p-network|P2P 网络]]
  • [[dht|分布式哈希表 DHT]]
  • [[bittorrent|BitTorrent 协议]]
创建于 2026/1/10 更新于 2026/5/27