Tor的Bridge如果传播的范围比较广,可能隔几天就被和谐掉了,频繁地换有点麻烦(恍惚间让我想到了当年改host上Google的时光)。今天折腾了一下,自己在VPS上搭建tor的Bridge来自用。
而且也从Tor Browser里提取出tor,使其不依赖Tor Browser,可以供其他浏览器使用。
警告:部署Bridge可能会增加服务器被墙的概率。
搭建Tor Bridge
首先在VPS上安装tor:
1 | $ apt-get install tor |
然后安装obfs4proxy:
1 | $ apt-get install obfs4proxy |
因为这里tor需要使用obfs来混淆流量,所以如果你的软件仓库里找不到这个包,也可以从代码编译:Yawning/obfs4.
1 | # 从代码编译obfs4proxy |
注:如果在下载依赖包
go get -d ...
时出现了can't download
之类的错误,可以从提示的包仓库里自己clone下来放到错误消息提示的路径里去。
tor相关的库可以从gitweb.torproject.org里找到。
如果上面tor
和obfs4
都安装成功了,那么编辑tor的配置文件/etc/tor/torrc
:
1 | $ sudo nano /etc/tor/torrc |
将下面的配置填入其中:
1 | Log notice file /var/log/tor/notices.log |
注意:将ServerTransportPlugin的路径改为你上面将编译出来的obfs4proxy放到的路径。
然后执行命令重启tor:
1 | $ systemctl restart tor |
执行完毕之后查看tor的日志文件/var/log/tor/notices.log
:
1 | $ cat /var/log/tor/notices.log |
会出现下面这样类似的输出:
表明搭建tor网桥成功。记录下红框中的部分:
1 | ORPort 45.XXX.XXX.95:4XXX9 |
这两个就是后面将在客户端连接时需要的网桥数据:
1 | 45.XXX.XXX.95:4XXX9 FE3XXXXXXXXXXXXXXXXXXXXXXC16DCF |
接下来再使用tor browser时就可以填入自己的网桥了。
从tor-browser提取tor
首先,先下载tor browser的安装包并安装(目录任意)。
然后打开tor browser的安装路径,将Tor Browser\Browser\TorBrowser\Tor
拷贝出来放到一个新目录,如tor_portable.
此时tor_portable的目录结构如下:
1 | C:\USERS\VISIONSMILE\DESKTOP\TOR_PORTABLE |
然后在tor_portable
下新建一个Data文件夹备用。
此时再打开tor browser的安装目录,找到路径Tor Browser\Browser\TorBrowser\Data\Tor
,将该目录下的geoip
和geoip6
这两个文件拷贝到上一步创建的tor_protable\Data
目录下。
同时,也将tor browser安装目录下Tor Browser\Browser\TorBrowser\Data\Tor
的torrc
文件拷贝到tor_protable
目录。
执行完毕上面的操作之后,此时tor_protable
的目录结构为:
1 | C:\USERS\VISIONSMILE\DESKTOP\TOR_PORTABLE |
然后使用文本编辑器打开tor_protable\torrc
,将下面的配置填入其中:
1 | Bridge 45.XXX.XXX.95:4XXX9 FE3XXXXXXXXXXXXXXXXXXXXXXC16DCF |
Bridge为网桥,可以使用上面在服务器上部署的参数。
注意:不要在Bridge之后填obsf4,测试过程中发现,如果使用这样的格式:
1 | Bridge obfs4 45.XXX.XXX.95:4XXX9 FE3XXXXXXXXXXXXXXXXXXXXXXC16DCF |
会出现这样的错误:
1 | Nov 04 19:22:57.000 [warn] Proxy Client: unable to connect to 45.XXX.XXX.95:4XXX9 ("general SOCKS server failure") |
另外,还要注意Socks5Proxy根据自己的配置和需要决定。
执行完上面的操作,tor的提取和配置都执行完毕了。
下面可以在本地启动tor了:
1 | # 在tor_protable目录下执行 |
此时tor_protable目录下会创建出tor.log文件,打开即可查看tor的日志。
当日志中出现下面这样的输出时,即连接成功:
1 | Nov 04 19:20:39.000 [notice] Bootstrapped 50%: Loading relay descriptors for internal paths |
tor启动之后会创建一个Socks5代理(127.0.0.1:9050
),可以在Chrome上使用插件Proxy SwitchyOmega来设置,如果不能访问Chrome Web Store,也可以从github下载:FelisCatus/SwitchyOmega。
设置完毕之后,就可以打开一些“暗网”网址了!
比如DuckDuckGo的暗网网址:https://3g2upl4pq6kufc4m.onion
或者分享书籍的Imperial Library:http://xfmro77i3lixucja.onion
快速启动/关闭tor批处理
上面启动tor时使用的是命令tor -f torrc
,可以将其写为批处理:
1 | rem tor-run.bat |
接下来时关闭tor的批处理,因为tor会启动obfs4proxy
来混淆流量,所以会同时启动tor
和obfs4proxy
的进程。我们在关闭时需要杀掉这些进程,在windows下可以使用taskkill /IM
命令:
1 | rem tor-stop.bat |
本文到此完全结束,此时tor_protable完整的目录结构如下:
1 | C:\USERS\VISIONSMILE\DESKTOP\TOR_PROTABLE |
- 2018.11.05 10:29更新:修改部分措辞和别字。