tracker 服务器怎么选?公开、半公开和私有各适合谁
很多人把 tracker 当成一行可以随便删的附加参数,实际上它决定了你第一次能不能找到人。删掉之后还有 DHT 兜底,但兜底的速度和成功率都不如一个稳定 tracker。挑 tracker 之前,先弄清它在协议里到底负责什么。
tracker 在做什么
它是一个登记处。你的客户端连上去,报上自己正在下哪个 info hash、自己的 IP 和端口,tracker 就从登记表里挑一批同样在找这个文件的人返回给你。之后的数据传输和它无关,全部是节点之间直连。所以 tracker 挂了不影响已经建立的连接,只影响新连接的发现。
公开 tracker:多但杂
公开 tracker 不需要注册,任何人提交 hash 就能用。优点是接入零成本,缺点是响应慢、存活率低、返回的节点质量参差。实际使用时别只挂一个,挂五到十个不同的,让客户端自己去试。判断一个公开 tracker 是否可用,看它返回的 peer 数量和处理耗时,两秒以上没响应基本可以放弃。
半公开:注册制和门槛
这类 tracker 需要注册才能用,有的还要求定期登录或保持一定的分享率。好处是节点质量明显好一些,坏处是麻烦,而且规则一旦不满足会被踢。适合有一定使用频率、愿意维护账号的人。如果你只是偶尔下几部片子,投入和收益不成比例。
私有:保种换速度
私有 tracker 的核心逻辑是「你上传多少,才能下载多少」。它对 swarm 里的节点做了筛选,速度快、资源完整度高,代价是要长期保种。这是所有方案里体验最好的,也是维护成本最高的。进不去的人不必强求,公开加半公开的组合已经能满足绝大多数需求。
列表怎么维护
把 tracker 列表当成一个需要定期更新的东西。常见的做法是准备二十来条,客户端会并发去试,失败的自动跳过。每隔几个月检查一遍,把长期无响应的删掉,补几条新的。注意单条列表太长会拖慢启动时的握手,几十条是上限,几百条只会让客户端卡住。
什么时候可以不要 tracker
热门资源在 DHT 网络里有大量节点,纯 DHT 也能找到人,只是发现得慢一点。冷门资源则相反,没有 tracker 几乎等于找不到。所以判断标准很简单:你要下的东西够不够热。够热可以精简列表,偏冷就老老实实把 tracker 挂全。