在 bananian 上安装配置 Tor

本文假设已经在 Banana Pi R1 上安装了 bananian version: 16.04 (released 2016-04-23) 并运行了监听于 127.0.0.1:2080 的 Socks5 代理服务器,且其内网 IP 地址为 10.5.2.1。

安装

apt install tor
apt install tor-geoipdb

配置

在文件 /etc/tor/torrc 添加如下内容:

SocksPort 10.5.2.1:9050
ExcludeNodes {cn},{hk},{mo},{kp},{ir},{sy},{pk},{cu},{vn}
StrictNodes 1
Socks5Proxy 127.0.0.1:2080

日志

/var/log/tor/log

使用

在浏览器等上设置使用 SOCKS v5 代理服务器,主机为 10.5.2.1,端口为 9050。

#banana-pi-r1, #bananian, #bpi-r1, #debian, #jessie, #socks5, #tor

Advertisements

Mac OS X 到达世界任意角落的一个解决方案概述

Across the Great Wall, we can reach every corner in the world.
network

  1. 操作系统的系统偏好设置(系统偏好设置->网络->高级…->代理)里设置 Web 代理(HTTP)安全 Web 代理(HTTPS)Privoxy 监听的端口 127.0.0.1:8118
  2. SSH tunnel 负责建立 Socks5 代理,监听 127.0.0.1:1080 端口,采用 autosshLaunch Daemon 实现。
  3. tor 负责建立匿名隧道,监听 127.0.0.1:9050 端口,使用 127.0.0.1:1080 端口作为上级代理,用来访问暗网 *.onion,参考Mac OS X 上安装 tor 并配置为自动启动
  4. Privoxy 监听 127.0.0.1:8118 端口,负责分发 HTTP/HTTPS 请求。
    注意,Privoxy 3.0.22 以前的版本不支持 RFC5789 中定义的 HTTP PATCH 方法,不过如果 PATCH 是在 HTTPS 里则没有问题;Privoxy 3.0.22 增加了对 HTTP PATCH 的支持。
    1. gfwlist 或者用户自定义域名列表中的域名,分发到 SSH tunnel 建立的 Socks5 代理(127.0.0.1:1080)。
      使用 gfwlist2privoxygfwlist 和用户自定义域名列表转换成 Privoxy 的 action 配置文件,配置到 crontab 中定时执行。参考:Mac OS X 上 gfwlist2privoxy 的使用
    2. *.onion 域名分发到 tor 建立的 Socks5 代理服务器(127.0.0.1:9050)。
    3. user.action 中配置需要过滤的广告规则,和中国电信 HTTP 劫持所用到的域名。
  5. ZeroNet 连入网络使用(always)工作在 127.0.0.1:9050 端口的 tor
  6. dsocks 用来为不支持设置代理服务器的应用程序单独设置代理,比如 telegram,参考在 Mac OS X 上给 Telegram 单独设置代理服务器

#autossh, #dsocks, #gfwlist, #gfwlist2privoxy, #launch-daemon, #mac-os-x, #onion, #privoxy, #telegram, #tor, #zeronet

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

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

在FreeBSD下用Tor穿透障碍

曾经我写了在Ubuntu下如何使用tor穿透障碍(http://zhoushuqun.spaces.live.com/blog/cns!2B070A76FD6627CE!877.entry)。
现在我已经不用Ubuntu了,因此相应地写一下在FreeBSD下如何使用。

在FreeBSD下要使用tor穿透障碍相当的简单,你只需要安装port:tor(cd /usr/ports/security/tor/ && make install clean)就差不多了。
然后在/etc/rc.conf里面增加:

tor_enable="YES"

以便下次开机自动启动tor服务。

你可以使用

/usr/local/etc/rc.d/tor start

来手动启动服务。

这样tor就会在127.0.0.1:9050端口开启服务了。
你可以使用

%torify firefox

来使得firefox通过tor出去。

第一次使用这个命令可能会有下面这个错误提示:

/usr/local/bin/torify: Missing tsocks configuration file "/usr/local/etc/tor/tor-tsocks.conf".

不必紧张,解决很简单,用root账号进去把tor-tsocks.conf.sample复制一份命名为tor-tsocks.conf,然后就能玩了。

# cd /usr/local/etc/tor
# cp tor-tsocks.conf.sample tor-tsocks.conf

总结一下,你大概会用到以下命令:
root账号:

# cd /usr/ports/security/tor/ && make install clean
# echo ‘tor_enable="YES"’ >> /etc/rc.conf
# /usr/local/etc/rc.d/tor start
# cd /usr/local/etc/tor && cp tor-tsocks.conf.sample tor-tsocks.conf

普通账号启动程序:

% torify firefox
% torify telnet
……

要了解更多关于torify( wrapper for tsocks and tor),可以用man torify查看。

你也可以torbutton(https://addons.mozilla.org/en-US/firefox/addon/2275)来方便在firefox里开关tor代理(当然如果你使用了torbutton或者用手动设置firefox代理的方式的话就不需要用torify来启动firefox了),注意如果你没有使用(privoxy)/usr/ports/www/privoxy的话,可能需要改一下torbutton的默认配置,如下图选择使用自定义代理设置:

#freebsd, #tor