Mac OS X 上安装 tor 并配置为自动启动

安装

使用 MacPorts 安装 tor

$ sudo port install tor

自动启动

由于该 port 并未提供自动启动脚本,因此我们只能自己编写。
编写文件 /Library/LaunchDaemons/org.example.tor.plist

$ sudo vi /Library/LaunchDaemons/org.example.tor.plist

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>org.example.tor</string>
	<key>ProgramArguments</key>
	<array>
		<string>/opt/local/bin/tor</string>
		<string>-f</string>
		<string>/opt/local/etc/tor/torrc</string>
		<string>--PidFile</string>
		<string>/tmp/tor.pid</string>
		<string>--DataDirectory</string>
		<string>/opt/local/var/lib/tor</string>
	</array>
	<!--
	<key>UserName</key>
	<string>privoxy</string>
	-->
	<key>KeepAlive</key>
	<true/>
	<key>RunAtLoad</key>
	<true/>
	<key>StandardOutPath</key>
	<string>/tmp/org.example.tor-out.log</string>
	<key>StandardErrorPath</key>
	<string>/tmp/org.example.tor-err.log</string>
</dict>
</plist>

注意上述文件内容中的 UserName 那段被注释掉了,被注释掉后 tor 将以 root 身份运行。

由于我的 Mac OS X 上通过 MacPorts 安装了 Privoxy, 所以有 privoxy 这个用户,所以我就使用 privoxy 用户来运行 tor。

如果使用非 root 用户运行 tor,那么需要预先创建数据目录 /opt/local/var/lib/tor 并对 UserName 所指的用户授予读写权限。
比如我这里手动创建该目录并授权用户 privoxy 读写权限:

$ sudo mkdir -p /opt/local/var/lib/tor
$ sudo chown -R privoxy:privoxy /opt/local/var/lib/tor
$ sudo chmod 700 /opt/local/var/lib/tor

启动后台驻留程序(Daemon):

$ sudo launchctl load /Library/LaunchDaemons/org.example.tor.plist

停止后台驻留程序(Daemon):

$ sudo launchctl unload /Library/LaunchDaemons/org.example.tor.plist

可以通过查看日志文件 /tmp/net.oxerr.tor-out.log 来查看运行状态,如果启动成功并成功连上 tor 网络,那么它默认会监听在 127.0.0.1:9050 端口,可使用 telnet 命令测试是否成功连接:

$ telnet 127.0.0.1 9050
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.

使用方法

默认情况下我们会得到一个工作在本机 9050 端口的 socks 代理服务器,我们可以在浏览器等应用程序里设置代理服务器为 socks 127.0.0.1:9050。
或者使用命令 torsocks,比如:

$ torsocks curl ip.cn
当前 IP:85.25.103.69 来自:法国

Tor 的配置文件 /opt/local/etc/tor/torrc

安装完成后会有一个示例配置文件 /opt/local/etc/tor/torrc.sample,复制到/opt/local/etc/tor/torrc

$ sudo cp /opt/local/etc/tor/torrc.sample /opt/local/etc/tor/torrc

使用 man tor 命令可以查阅 tor 的配置帮助文档。

常用配置项

给 Tor 配置 socks 代理服务器,比如:

Socks5Proxy 127.0.0.1:1080

卸载

停止后台驻留程序(Daemon):

$ sudo launchctl unload /Library/LaunchDaemons/org.example.tor.plist

删除手动创建的文件:

$ sudo rm /Library/LaunchDaemons/org.example.tor.plist
$ sudo rm /opt/local/etc/tor/torrc

删除数据文件目录:

$ sudo rm -r /opt/local/var/lib/tor

卸载 port:

$ sudo port uninstall tor

Advertisements

#launch-daemon, #mac-os-x, #macports, #tor