在macOS上设置Tor代理

在macOS上设置Tor代理

注:仅作技术探讨

相信很多接触Tor(The Onion Router,洋葱路由)网络的同学,刚开始都是从使用Tor Browser开始的。在后面使用过程中,我也逐渐以上到,Tor作为一种代理技术,本身是可以脱离浏览器的捆绑,应用在网络活动的各个角落的。比如说进行匿名访问Onion网站、通过Tor网络传输敏感文件,乃至使用各种软件服务时设置Tor代理隐藏身份。

因为洋葱网络是由N个志愿节点组成的,所以我们初期是不需要自己搭建洋葱网络节点的(后续会更,先挖个坑😉)。所以我们这里主要是在搭建Tor客户端,以及进行相关配置。

0. 前期准备

  • 稳定可用的自建科学上网节点,或者使用机场服务
  • 科学上网代理的客户端,提供代理转发。例如本篇使用的是Qv2ray
  • 其他好像也不需要什么了

1. 安装Tor代理

首先我们需要在终端安装Tor服务。对于macOS用户,我们可以使用HomeBrew一键安装:

1
$ brew install tor

HomeBrew使用原生源下载比较慢,建议给终端加上科学上网代理,使用国内镜像还是不太推荐,你说你都要使用Tor了对吧。

2. 设置Tor的上级代理

由于GFW,我们不能直连Tor网络,需要给Tor设置上级代理。Tor服务本身支持,只需要修改配置文件即可。在macOS中,配置文件在:/usr/local/etc/tor/torrc.sample,配置文件中包含很多配置介绍,有更多需求的同学可以仔细看下备注。

先备份一下配置文件:

1
$ cp /usr/local/etc/tor/torrc.sample /usr/local/etc/tor/torrc.sample.BK

接下来,我们需要编辑torrc.sample,在文件头部加入科学上网客户端的socks代理信息SOCKS5Proxy 127.0.0.1:1086,最后去掉起sample后缀使其生效:

1
2
3
$ vim /usr/local/etc/tor/torrc.sample
...
SOCKS5Proxy 127.0.0.1:1086

这里再给不太清楚同学补充一下,之所以填入127.0.0.1:1086是因为这里使用的科学上网工具Qv2ray的监听地址是127.0.0.1、Socks端口为1086,如下图所示:

图:Qv2ray的客户端配置信息

在配置文件torrc中加入这个科学上网的上级代理信息后,我们就可以通过科学上网代理去连接洋葱网络啦。

3. 运行Tor服务

我们使用HomeBrew的services命令来管理服务:

1
2
3
4
5
# 查看使用HomeBrew安装的服务列表,检查是否有成功安装,显示有tor
$ brew services
...
# 开启Tor代理
$ brew services start tor

开启Tor服务后,Tor服务会在本地进行Socks5代理,监听的地址为localhost,端口号为9050

因此,我们在需要使用Tor代理时,只需要走127.0.0.1:9050即可。

4. 在Chrome中配置

我们可以直接在Chrome的设置中进行网络代理设置,也可以下载代理管理插件,例如SwitchyOmega。如下图所示,就是我们在SwitchyOmega插件中进行Tor的Socks代理配置:

配置好,apply后,选择该代理模式,就可以愉快地使用Tor代理进行网上冲浪啦~

图:访问Hidden Wiki(.onion)

补:5. 终端Tor代理监视

Tor代理服务在终端中本身没有提供相关监视信息,我们需要一个对Tor的监视面板。这里我们采用官方推荐的Nyx,它可以查看Tor代理的带宽图、事件日志和连接信息等。∑

同样,我们可以在macOS中使用HomeBrew一键安装:

1
$ brew install nyx

然后,我们需要在Tor配置文件中开启控制接口,去掉ControlPort 9051参数前的注释符,注意,这个9051端口也正好是Nyx的默认attach端口,如果需要改变该端口可以使用Nyx 的-i参数改变:

1
2
3
4
5
6
7
8
$ vim /usr/local/etc/tor/torrc
···
## The port on which Tor will listen for local connections from Tor
## controller applications, as documented in control-spec.txt.
ControlPort 9051
## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
···

如果不开启该选项的话,Nyx无法attach到Tor代理服务,会报以下的错误:

1
2
3
Unable to connect to tor. Are you sure it's running?
# 或者是
please check in your torrc that 9050 is the controlport. maybe you configured it to be the orport or socksport instead?

我们也可以修改上面的Tor配置文件,此时用Nyx的-i参数即可设置:

1
2
# 使用-i参数可以指定另外的attach地址、端口
$ nyx -i 192.168.0.0:9052

完成上述配置后,我们显示的效果如下图所示,并且有多种功能支持:

图:Nyx在终端开启后的效果