Ubuntu 下的翻墙术

Ubuntu 下怎样解决某些网站连接被重置和不能连接是个大问题, Ubuntu 下 Win 里那些现成的免费的解决方案都不能用了, 似乎这是用 Linux 的不利一个方面 (这样的问题成为普通人用 Linux 的一个阻碍本身很滑稽) , 但从另一个角度来说, 一旦你掌握了在 X 下的解决方案, 你对这些网站的访问将更稳定也更快速。

Tor

Tor  虽然慢了点,在稳定性上它永远是 The best,平时的话不建议用,但绝对有必要在机器上安装备用。

安装方法:

一、打开源列表:

sudo gedit /etc/apt/sources.list

添加以下源:

deb http://mirror.noreply.org/pub/tor etch main
deb-src http://mirror.noreply.org/pub/tor etch main

二、添加密钥:

gpg –keyserver keys.gnupg.net –recv 94C09C7F

gpg –export 94C09C7F | sudo apt-key add -

注意 sudo 前面的内容里是横线符号是两个英文下的 – ,不是一个中文下的 -

三、更新源:

sudo apt-get update

四、新立得里搜索并安装 libevent

五、安装 Tor

sudo apt-get install tor privoxy

六、配置 privoxy

sudo gedit /etc/privoxy/config

在最后加入

forward-socks4a / localhost:9050 .

据说最后那个点很重要,不要忘记了,同时我个人在出了一些状况的情况下将 localhost 改成 127.0.0.1 ,也一样运行正常。

七、重启 privoxy

sudo /etc/init.d/privoxy restart

八、安装 Vidalia

sudo apt-get install vidalia

九、给 bridges@torproject.org 写一封主题或内容为 get bridges 的邮件,数分钟后即可获得网桥地址。

十、基本到这里已经万事俱备,只要把网桥添加到 tor 里就 ok 了,可我偏偏出了问题:我启动 viadlia 后会显示有一个 Tor 已经启动了,并且监听了 9050 端口。

为了解决这个问题,我简单研究了下 tor 代理的结构,其原理可能如下:

代理分两步,一步是由 tor 完成,一步由 privoxy 完成。 tor 负责连接上代理网络,privoxy 在中间负责把 tor 和本地端口连接起来,这样就完成了本地接入代理网络。

我出现的问题的原因可能是:

我之前分别安装了 tor 和 privoxy , 之后又安装了 vidalia, 而貌似 vidalia 不过就是图形界面的 tor + privoxy, 所以我等于安装了两次。而之前单独的安装的 tor 安装后已设置为随系统启动而且监听了 9050 端口,所以我打开 vidalia 后 vidalia 里的 tor 就不能再监听 9050 端口了,也就不能启动了。

解决的方法也简单,一是,你非要图形界面的 vidalia 启动,那么请你用

sudo ps aux

查看系统里的所有进程 tor 的进程号(貌似在图形界面的系统管理器里看不到 tor 和 privoxy 的进程,反正我找不到),tor 进程的用户名我这里是 116,第二列 PID 就是 tor 的进程号。

然后用把这个进程给 kill 掉

sudo kill -9 xxxxx

xxxxx 就填 tor 的进程号

然后启动 vidalia 就可以连接了。

二、如果你不启动 vidalia , 就用命令

sudo /etc/init.d/privoxy start

直接启动 privoxy 就好。

很诡异的是我并没有之前安装的 tor 配置网桥,但以这种方式用 tor 代理的话竟然可以成功,不知道为什么。或许是运气好,为了万全,再给出配置单独的 tor 的方法:

修改 Tor 网桥配置

备份原Tor配置文件 torrc:

sudo cp -p /etc/tor/torrc torrc.backup

然后在torrc配置文件末尾添加 ”UseBridges 1″ 开关选项(默认是0, 即关闭状态)。

最后,将bridges@torproject.org回复邮件中的bridge列表附加至 torrc 配置文件末尾,请按回复邮件中的bridge的原有格式添加,即:

bridge ip:port

保存修改后的 /etc/tor/torrc 文件

这样就在 ubuntu 下安装好了可用的 tor 了,这意味着热爱自由的人也终于可以松一口气了,因为从现在起至少信息对你来说是自由的了,其它的我就不说了。

SSH

对 SSH 的认识是从佐拉 童鞋当年免费发放的 sshgfw 开始的,我惊叹它的快速和稳定,但是好景不长,主机商发现了将 SSH 用作代理这种不正常的使用行为并叫停了佐拉童鞋的服务。虽然 sshgfw 没了,但是用 SSH 作代理却成了我心中理想的翻 wall 方式。

SSH 翻墙的话 Ubuntu 本身只要一条命令就可以实现

ssh -CfNg -D 127.0.0.1:7777 用户名@服务器地址

那个 7777 端口随便用一个未被占用的端口就成。

要图形化的就用 PuTTY, 这个跨平台 Win 下也可以:

1、connection >> ssh >> tunnels

2、source port 下随便填一个未占用的端口,然后选中 Dynamic,  点击 add 添加

3、返回 session, 在 host name 里填写你的主机名,点击 open 打开

4、接下来就输入你的用户名和密码就好了。

X

这个我不说名字,希望大家也不要讲,知道的在现实中和亲朋好友分享下即可,不要在网络公开传播,因为它的主要功能不再翻墙上,如果继续扩大它的翻墙功能的话,让这么好的一个开发平台被封真是罪过一件。

它和 python 有关,恰好 ubuntu 也内置了 python, 所以这也只需要几行命令就可以了。

1、用 cd 命令进入有关目录

2、执行以下命令

sudo python proxy.py

以上是我用过的代理方式,总的来说从 win 转到 ubuntu 下在这方面没有什么大的变化,win 下唯一让我难以割舍的代理方式就是 puff 了,强烈建议作者推出 X 版。

而诸多代理方式里有待我去尝试的一个是 VPN 一个是传说中的 ipv6 ,等有时间去研究研究。

没有评论: