All Articles

在VirtualBox中安装Tor

1. 前言

就是一篇简单的笔记。

2. VirtualBox

这块不需要很详细的讲解,基本上只要从官网下载binary直接使用即可。镜像需要提前下载好,VirtualBox安装比较奇怪的一点是,虚拟机的创建和操作系统的安装是分开的,会先创建出虚拟机实例,然后才是加载镜像进行虚拟机操作系统的安装。这点有点和其他的虚拟机不太相同。

VirtualBox虚拟机的显示自适应需要额外设置,比较麻烦。显示设置的屏幕里,需要把显卡控制器改成:VBoxSVGA

3. Linux

这里使用的是Ubuntu Desktop版本,因为后续安装和使用Tor最简单的做法就是直接使用官方的Tor Browser,也正因此需要桌面版本的操作系统。如果对安全有更高的要求,可以使用FreeBSD操作系统。

软件安装:

$ sudo apt-get install build-essential
$ sudo apt-get install wget vim

安装virtualbox的辅助程序Devices > Insert Guest Additions CD Image

按个人喜好,可选安装:sublime text3

安装privoxy,用来给需要HTTP代理的应用程序做前置入口,将这些HTTP流量转为socks5流量,进入到tor:

$ sudo apt-get install privoxy

修改配置文件/etc/privoxy/config:添加forward-socks5 / localhost:9150 .

后续可以在命令行下设置:

export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118

命令行流量就全走tor了。命令行下,可以使用curl ipinfo.io来查看当前IP的位置。

在tor安装成功之前,虚拟机肯定也是需要代理的,否则tor软件根本下不下来。可以通过Linux操作系统网络配置设置代理:

将所有的HTTP(s)代理设置成:192.168.xx.xx:xxxx,socks设置成192.168.xx.xx:xxxx。

命令行下则:

export http_proxy=http://192.168.xx.xx:xxxx
export https_proxy=http://192.168.xx.xx:xxxx

4. Tor

安装就直接从官网上下载Tor Browser,解压即可使用。配置文件位置:Browser/TorBrowser/Data/Tor/torrc

国内使用的时候必须使用网桥,按软件提示直接选一个可用的网桥,或从数据库申请一个网桥即可。注意,从数据库申请下来的网桥不一定就是可用的,还是需要连接测试。如果有条件的话,可以在Tor Browser之前再自己做一个跳板,这样效果会好很多,无论是从隐匿性上来说,还是从可用性上来说。

Tor Browser在连接完成之后,会在本地打开一个端口9150,提供本地的socks5连接。但软件并不提供HTTP和HTTPS代理,需要之前提到过的privoxy软件进行转换即可。

对Tor的节点进行限制,直接在之前提到的配置文件里添加内容即可,注意不要修改网桥相关的配置内容,那些是软件自动生成添加的:

## 以下为排除的节点(StrictNodes 1为坚决执行)
ExcludeNodes {cn},{hk},{mo},{kp},{ir},{cu},{vn},{ru},{by},{sd},{kz},{uz},{pk},{kg},{tj},{tm},{tr},{sy},{sg},{th},{ph},{my},{lk}
ExcludeExitNodes {cn},{hk},{mo},{kp},{ir},{cu},{vn},{ru},{by},{sd},{kz},{uz},{pk},{kg},{tj},{tm},{tr},{sy},{sg},{th},{ph},{my},{lk}
#ExcludeNodes 是指排除节点,即把括号中的国家的节点从tor链路上除去
#ExcludeExitNodes 是指“排除“出口”节点”,即tor的出口节点要排除括号中的国家的节点

## 指定出口节点:
StrictNodes 1
ExitNodes {us}
#这里us是指限定美国的ip为出口ip,你可以改为任何国家,国家代码请参考:https://zh.wikipedia.org/zh-cn/ISO_3166-1

轻量级过滤:

ExcludeNodes {cn},{hk},{mo}
ExcludeExitNodes {cn},{hk},{mo},{kp},{ir},{cu},{vn},{sd},{pk},{sy}
StrictNodes 1

EOF

Published 2019/9/20

Some tech & personal blog posts