搭建自己的匿名代理——基于树莓派和Tor

本文由 极客范 - 梦境漫游指南 翻译自 THE UNSUSPECTING BIT。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

tor_pi本例使用安装了Debian的树莓派和Tor的SOCKS5代理端口实现。目标:让树莓派作为SOCKS 5代理端口的中转以实现匿名浏览上网。我不希望写一篇枯燥无比的教程,所以我觉得一般用户应该都能看得懂这篇教程。同时作为福利,我会教你们如何在iPhone或者iPad上使用Tor的socks代理端口实现匿名浏览,不需要越狱哦。有问题的话请随时留言告诉我!

简介

可能有时候你希望能匿名上网,或者你总是偏执的认为你被人盯上了。不管怎样,使用代理端口来实现匿名是一种不错的方法。如果你的需求仅仅是匿名浏览网页的话,那么可以下载Tor的完整包,其中内含了一个叫做Tor浏览器的精简版火狐。该浏览器支持Linux, OS X和Windows。也许你不想在设备上安装东西,或者想在iPhone或者安卓设备上也能匿名上网,那你就来对地方了。

Tor是怎么工作的?

Tor通过在多个服务器上转发你的连接来实现匿名。举个栗子,在浏览facebook的时候,服务器会在建立连接时记录你的IP。使用代理端口登陆的话,被记录下的就是代理服务器的IP了,而你的真实IP会隐藏起来。
经由Tor的连接会在到达目标服务器前经过3次中转,当目标服务器想回溯的话,需要经过3次不同的服务器中转。

Tor-Works-300x187Tor内置强大的socks 5代理端口,无需polipo或proxychains等外部工具便可完成安装设置。

在树莓派上安装Tor

本文默认你已经有了一部安装了最新版本debian的,能联网的树莓派。最新版本的debian代号为Wheezy(Version 7.1),在此之前的版本为Squeeze(Version 6.xxx)。
笔者注:尚未编译?我在这里编译了一个树莓派版本的Tor,源地址在这http://unsuspectingbit.com/wp-content/uploads/2013/12/tor.zip。下载完后解压,接下来就是一般的安装步骤:

然后在 /etc/apt/sources.list 这个文件中加上这几行:(可以用nano编辑器,比vi要好用点)

<DISTRIBUTION>可换成你系统发行版的代号名。
比如你用的是Wheezy的话,那就像这样:

升级并安装依赖关系:

然后从源代码开始构建Tor,编译的时候泡杯茶休息下吧:

如果出现了依赖关系缺失错误,试着安装以下的包依赖然后重试上一步:

没错误的话就可以继续安装了:

配置Tor

这步可能会有点麻烦,跟随教程的话应该问题不大,所以不用怕。用你喜欢的编辑器打开 /etc/tor/torrc。
把这行的注释去掉:

加上这行:

此处的192.168.1.10是你的树莓派的内网IP地址,9050指定了sock需要监听的端口。接着编辑SocksPolicy指定哪些客户端可以连接到树莓派的端口,由于是从上往下读取的,所以在hosts的上方指定哪些可以连接,其他的则不能连接。假设你的地址在 192.168.1.1 – 192.168.1.254内,那么就加上:

有其他的VPN需要连接的话,也可以在这加上。一定记得,如果写在最后一行的话将被拒绝连接(这是默认设置)。Tor将会使你安装了它的设备作为一个转发节点。这样是没有安全问题的,同时你可以自行分配带宽给它。Tor是依赖大家贡献的带宽的。分配带宽太少的话体验就会不好。把这些去掉注释:

设置好贡献给Tor的带宽参数即可。如果设置的太高的话可能会影响其他程序的正常带宽使用。自行斟酌吧,总带宽的20%左右是较为合适的。
谨记Tor是为了匿名访问的存在的,所以别过分追求速度。

这里参数的单位是千字节每秒,但一般运营商标注的是千比特每秒。比如你的是12M的网络的话,那么换算过来就是12000/8约等于1500KBps。上例中,则是贡献出500KB/s的带宽,瞬发不超过700KB/s的带宽出来。设置文件的其他部分你可以设置类似流量限制啦,或者只能在午夜连接啦等等参数,这个文件写的很清楚。
把下面的去掉注释:

最后加上:

搞定了!

ExitPolicy参数会拒绝他人访问你的节点,这样会安全一点。最后一段将会监听标准端口53和树莓派的内网IP地址的DNS请求,使你可以解析现实网络并不存在而Tor网络独有的 .exit 和 .onion 为后缀的域名。重启下服务(sudo /etc/init.d/tor),来试试吧。

测试

测试前首先需要将你的浏览器端口为刚刚我们弄好的。大部分浏览器基本都是到 设置=>高级=>网络=>连接设置。这是火狐的设置截图。

firefox2-296x300当然你也可以设置成系统全局代理,这样的话所有程序都能匿名访问网络了。点这里查看如何在Windows7, ubuntuOS X上设置。其他系统的话谷歌下应该就能找到。

SOCKS5的文本框里面填上你的树莓派的内网地址,并设置为9050端口。

最后访问https://check.torproject.org,应该能看到一个设置成功的界面。

blog-check_tor-206x300

福利:其他设备上实现代理上网

iPhone讨厌之处就在于只能设置HTTP代理而非SOCKS代理。这里我就不赘述了,仅仅给出基本步骤。
1> 安装类似LigHTTPd等类似的网页服务,然后在树莓派上放上一个测试页面。

2>如果都完成的话,创建一个端口自动设置文档。弄一个奇怪而秘密的名字,保存到 /var/www下。比如我的就是mysupersecretproxy.pac。

3>把下面的内容放到刚才的文档里。

4>在你的iPhone中如下设置
设置>Wifi,点你网络旁边的箭头(iOS 7是小感叹号),滚到底端,在http代理那里选自动,然后填上刚才的PAC文件地址(如 http://192.168.1.10/mysupersecretproxy.pac)。

福利2:通过VPN匿名上网

如果你有一台VPN能使你通过外网连接你的树莓派的话,那你就可以随时随地实现匿名上网了。

这次同样不会详细描述每一步,只要你有VPN下面的步骤应该都不是问题。假设你的树莓派地址为192.168.1.10,你的VPN地址在192.168.2.x段内,编辑/etc/tor/torrc 加上这一行:

用 sudo /etc/init.d/tor restart 重启一下,就大功告成了。

现在你的VPN可以连接你的树莓派,并作为其转发节点了。



原文链接: THE UNSUSPECTING BIT 翻译: 极客范 - 梦境漫游指南

译文链接: http://www.geekfan.net/6484/

[ 转载请保留原文出处、译者和译文链接。]

Sina 微博 : @梦境漫游指南

3 评论

  1. pp  /  2014 年 3 月 5 日, 下午 11:29 回复

    按照您的设置,不能够实现sock5代理啊,不知道是什么问题。

    Thumb up 0 Thumb down 0

    • 陈舸  /  2014 年 3 月 6 日, 上午 8:52 回复

      能说的具体点吗?出问题的在哪一步?

      Thumb up 0 Thumb down 0

  2. Greenhat  /  2014 年 4 月 20 日, 下午 12:11 回复

    在cydia上面下了tor但是不能浏览 网页 是需要什么依赖包吗。

    Thumb up 0 Thumb down 0

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">