转载

Tor网络Python接口工具Stem的几个替代用法

Stem是Tor netword的一个Python 控制类库,也就是Tor的Python语言接口API。程序员可以通过Python编程,利用Tor匿名网络来传递自己的隐蔽信息。需要注意的是,Tor在中国被许多人用于突破防火长城,这主要是因为中国屏蔽了大量的海外网站和服务器。Tor会自动检测节点是否可达目标地址。如果返回错误无法到达,它会自动更换节点。相应地,这种技术也可以用在中国境外模拟中国境内的节点,以访问一些境外无法访问的内容。

Stem所需的Python版本最低是Python 2.6,它还兼任Python3.x版本。

但很多时候你并不一定需要使用一个编程类库来和Tor网络交互,有四种方法你可以直接通过命令行来和Tor网络交互。

你可以使用ControlPort

使用ControlPort是最简单的利用 Telnet 和Tor网络交互的方法。这种方法在连接后需要安全认证。

% cat ~/.tor/torrc ControlPort 9051  % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHENTICATE 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection Connection closed by foreign host.

你可以使用ControlSocket

ControlSocket是基于文件的socket交互,所以,你可以是 socat 连接它..

% cat ~/.tor/torrc ControlSocket /home/atagar/.tor/socket  % socat UNIX-CONNECT:/home/atagar/.tor/socket STDIN AUTHENTICATE 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection

你可以使用cookie认证

Cookie认证的意思就是说你的信用凭证依赖于Tor DataDirectory 里的一个文件的内容。你可以通过调用 PROTOCOLINFO 来了解Tor的更多认证方法。

% cat ~/.tor/torrc ControlPort 9051 CookieAuthentication 1  % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. PROTOCOLINFO 250-PROTOCOLINFO 1 250-AUTH METHODS=COOKIE,SAFECOOKIE COOKIEFILE="/home/atagar/.tor/control_auth_cookie" 250-VERSION Tor="0.2.5.1-alpha-dev" 250 OK

Cookie认证有两个小的工具: COOKIESAFECOOKIE 。下面我们演示的是使用 COOKIE 。而使用 SAFECOOKIE 需要更多的技术知识,牵涉更多的问题。

我们需要是 hexdump 命令来进行认证…

% hexdump -e '32/1 "%02x""/n"' /home/atagar/.tor/control_auth_cookie be9c9e18364e33d5eb8ba820d456aa2bc03444c0420f089ba4569b6aeecc6254  % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHENTICATE be9c9e18364e33d5eb8ba820d456aa2bc03444c0420f089ba4569b6aeecc6254 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection Connection closed by foreign host.

使用密码认证

Tor的另外一个认证方法就是使用密码。你需要让Tor来hash你的密码,然后…

% tor --hash-password "my_password" 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF

其余的就很简单了

% cat ~/.tor/torrc ControlPort 9051 HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF  % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHENTICATE "my_password" 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection Connection closed by foreign host.
正文到此结束
Loading...