下载Tor的consensus文件
主要就是从Tor的权威目录服务器上获取Tor的consensus文件,并尝试解析一下这个consensus文件。主要目的是获取到当前Tor网络中所有Tor节点的信息。
首先是如何获取consensus文件,Tor是通过HTTP的形式分发consensus文件的,因此首先要找到这个HTTP链接在哪里。
十分幸运的是我之前读过Tor的一些specification,其中在https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt这个文件当中看到了相应的HTTP链接
3.11. Publishing the signed consensus
The voting period ends at the valid-after time. If the consensus has
been signed by a majority of authorities, these documents are made
available at
http:///tor/status-vote/current/consensus.z
and
http:///tor/status-vote/current/consensus-signatures.z
[XXX current/consensus-signatures is not currently implemented, as it
is not used in the voting protocol.]
[XXX possible future features include support for downloading old
consensuses.]
The other vote documents are analogously made available under
http:///tor/status-vote/current/authority.z
http:///tor/status-vote/current/.z
http:///tor/status-vote/current/d/.z
http:///tor/status-vote/current/bandwidth.z
once the voting period ends, regardless of the number of signatures.
The authorities serve another consensus of each flavor "F" from the
locations
/tor/status-vote/(current|next)/consensus-F.z. and
/tor/status-vote/(current|next)/consensus-F/+....z.
The standard URLs for bandwidth list files first-appeared in Tor 0.3.5.
也就是说HTTP链接形如:http:///tor/status-vote/current/consensus.z
其中hostname是Tor的某个权威目录服务器的IP:DirPort。因此下一步的主要任务就是找到Tor的权威目录服务器都有哪些,找到后套用即可。
我目前使用source insight看Tor的源码,一番操作之后,我找到了权威目录服务器的地址:
以171.25.193.9:443这个权威目录服务器为例,在浏览器中键入地址:http://171.25.193.9:443/tor/status-vote/current/consensus.z即可下载共识文件
下载完后是这样的一个文件:
此时需要查看consensus文件的内容只需要将其后缀.z去掉。然后用记事本打开即可。
打开后是这种样子的:可以看到很多有用的信息。
下图主要是共识文件头部的一些信息,描述了consensus文件的可用时间、建议使用的Tor版本、已知的flags。还可以看到参与投票的权威目录服务器是谁,它的投票digest
再往下翻就是各个节点的信息:其中一个r s v pr w p讲述一个结点的相关信息。