最近在捣鼓 Kademlia 网络,说拿 nodejs 试一试,就查了一个随机 hash ,没想到返回了上百个 peer :
> var dht = require('bittorrent-dht')();
> dht.on('peer', (peer) => console.log(peer));
> dht.lookup( crypto.randomBytes(20) );
{ host: '125.50.181.227', port: 40154 }
{ host: '191.55.248.103', port: 57056 }
{ host: '2.53.58.245', port: 16868 }
...省略100+项...
{ host: '252.32.52.215', port: 7112 }
{ host: '62.37.119.85', port: 24012 }
感觉不对,用 scapy 一抓包,发现 ttl 全是 56 、 57 左右:
>>> sniff(filter="udp dst port 51846", prn=lambda x: x.ttl)
56
57
56
...省略10+项...
57
57
而这些 udp 包的原地址都在国外, ping 一下, ttl 至少 49 、 48 起,怀疑是小区宽带动手脚,截获 getpeers 包,随便回复一些 peer ,干扰 BT 下载。如果真是这样,忒黑了。
楼主用的是歌华宽带,但第 7 跳已经到电信的路由器了,说不清是谁的锅。
不知道其他小运营商有没有类似问题。求证实。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.