mac install tor

install

brew install tor

config

You will find a sample Tor configuration file at /usr/local/etc/tor/torrc.sample. Remove the .sample extension to make it effective.

man tor

simple excute

tor

github though socket

测试通过之后,你可以修改 SSH 的配置文件,就不用每次都在命令行参数中指定密钥文件的路径了。如果你用 SSH 方式操作2个以上的项目,很有必要进行如下定制,可以节省很多命令行输入。
  SSH 配置文件的路径是: ~/.ssh/config
  如果你系统中没有这个文件,就创建一个。然后用你熟悉的文本编辑器修改这个文件。
  下面俺给出一个示例:
你需要把示例中的“别名”改为你自己起的名字(用一个可读性好点的名字);
把“私钥文件路径”也同样替换为你本机所使用的文件路径。
其它部分【不要】改动。
Host 别名
HostName ssh.github.com
Port 443
User git
PreferredAuthentications publickey
IdentityFile 私钥文件路径

所谓的“别名”,用来替换 URL 中的主机名。比如俺那个 zhao 项目,俺在 ~/.ssh/config 中使用的别名就是 zhao
  之后俺如果要 clone 该项目,只需用如下命令:
git clone ssh://zhao/programthink/zhao
看到没?俺在 URL 中就不写 github.com 而改为 zhao,那么 openssh 就会去 ~/.ssh/config 中找到 zhao 这个配置项,然后用对应的私钥文件进行 SSH 连接,

★针对不同的 Git 使用方式,如何配置代理?

B/S 方式(Web 方式)

这种方式最简单——就跟你翻墙访问其它网站类似——只需要让你的浏览器通过 Tor 的线路访问 GitHub 的页面,就 OK 了。
  没用过 Tor 的同学,先去看俺的扫盲教程《戴“套”翻墻的方法》。

C/S 方式 下的 HTTPS 协议

对于这种方式,你需要修改 Git 的配置参数,让 Git 知道 Tor 代理的 IP 和 端口。
  具体的配置命令如下:
git config --global http.proxy SOCKS5h://代理地址:端口号
注意1:
假如你的 Tor 客户端运行在【本机】,那么上述命令中的“代理地址”就替换为: 127.0.0.1
否则就替换为:运行 Tor 客户端的主机的 IP 地址。
注意2:
如果你的 Tor 客户端用的是【Tor Browser】,“端口号”必须用 9150
如果你用的是 Tor 的其它软件包(比如:Tor Expert Bundle),则“端口号”使用 9050

C/S 方式下的 SSH 协议

要让 SSH 通过 Tor 的代理,稍微麻烦一点。因为 Tor 默认提供的是 SOCKS 代理,而 OpenSSH 客户端默认又【不】支持 SOCKS 代理。
  因此,得依靠第三方的工具,来实现“SSH through SOCKS”。
  这里要提醒一下列位看官:
  俺说的是“SSH through SOCKS”,而【不是】“SOCKS through SSH”(这两者完全不同)

为了搞定“SSH through SOCKS”,俺选用大名鼎鼎的 netcat(俗称“网猫”)。
  由于这个 netcat 名气很大,主流 Linux 发行版的软件仓库中都有它。你只需要用发行版自带的软件包管理器,把 netcat 装上。
  说到 netcat,有一个“原版的”以及非常多的【变种】。“原版的 netcat”【不】支持代理,必须用某些支持代理的【变种】。俺推荐的是 OpenBSD 社区开发的 netcat 变种(也叫“OpenBSD netcat”或“netcat-openbsd”)。
  如何判断你是否装对了捏?
  在装好 netcat 之后,先运行如下命令(命令中的 nc 就是 netcat 的缩写)。如果输出的第一行能看到 OpenBSD 这个单词,就说明你装对了。
nc -h

接下来,用如下命令测试“SSH through Tor SOCKS”是否成功。
ssh -o “ProxyCommand=nc -X 5 -x 代理地址:端口号 %h %p” -T ssh.github.com
注意1:
假如你的 Tor 客户端运行在【本机】,那么上述命令中的“代理地址”就替换为 127.0.0.1
否则就替换为:运行 Tor 客户端的主机的 IP 地址。
注意2:
如果你的 Tor 客户端用的是 Tor Browser,“端口号”必须用 9150
如果你用的是 Tor 的其它软件包(比如:Tor Expert Bundle),则“端口号”使用 9050

上述测试命令如果最终显示 Permession denied 就说明已经通过 SOCKS 代理连接到 GitHub 了(也就是说,你的 SSH 已经能够走 SOCKS 代理联网了)。
  如果没有显示这个信息,而是显示了其它其它信息,你再用如下命令重新试一次
ssh -o “ProxyCommand=nc -X 5 -x 代理地址:端口号 %h %p” -Tv ssh.github.com
这次俺加了一个 v 选项,可以打印出详细的诊断信息(不过都是洋文)。如果你略懂洋文并略懂网络技术,或许能判断出错的原因所在。

搞定之后,为了方便起见,同样可以把 SSH 的这个 ProxyCommand 命令行选项加入到 SSH 的配置文件。如此一来,以后每次你要连接 GitHub 的服务器,都会自动走 Tor 提供的 SOCKS 代理。
  前面俺已经给出了 SSH 配置文件的示例,俺把之前那个示例文件,加上 ProxyCommand 选项之后,变为如下
Host 别名
HostName ssh.github.com
Port 443
User git
PreferredAuthentications publickey
IdentityFile 私钥文件路径
ProxyCommand nc -X 5 -x 代理地址:端口号 %h %p
  注意1:
  假如你的 Tor 客户端运行在【本机】,那么上述命令中的“代理地址”就替换为 127.0.0.1
  否则就替换为:Tor 客户端所在主机的 IP 地址。
  注意2:
  如果你的 Tor 客户端用的是 Tor Browser,“端口号”必须是 9150
  如果你用的是 Tor 的其它软件包,则“端口号”使用 9050