1. 环境
系统:OS X 10.11.6 (15G31)
代理软件:shadowsocks
2. 背景
国内开发者要上外国的网站或下载一些网站上的代码时,一般都是通过代理,但应该有不少人遇到过这种情况:浏览器能打开目标网站,但在终端上却无法 ping
通或下载代码失败。这是因为你设置了代理,网页和软件能通过代理进行访问,但终端却没有走代理路径导致的。
本文则是介绍如何让终端走代理路径来访问目标网站并下载代码,使用的代理软件是 shadowsocks
。关于 shadowsocks
的安装与使用本文并不涉及,可用搜索引擎进行查找安装。
3. 安装
- 安装
Proxychains
:使用Terminal
运行以下命令
brew install proxychains-ng
- 查看
shadowsocks
本地端口号(端口号默认是1080
)。打开~/.ShadowsocksX/gfwlist.js
文件 - 设置
Proxychains
安装目录下的proxychains.conf
文件- 打开
proxychains.conf
文件所在位置,在我电脑上为/usr/local/Cellar/proxychains-ng/4.11/etc/proxychains.conf
- 打开
proxychains.conf
文件,并在[ProxyList]
下面添加socks5 127.0.0.1 1080
(如果[ProxyList]
下面有其他的内容,则将其删掉或注释掉),1080
即为shadowsocks
的本地端口号。
- 打开
- 如果使用的 OS X 系统 是
10.11
以下,则跳过这一步,直接进入第 5 步。由于 OS X 的新版本引入了一个新机制SIP (System Integrity Protection)
,即使 Root 权限也不能对一些二进制进行修改,这些二进制是在/System,/bin,/sbin,/usr (except /usr/local)
中的。这就影响了proxychains
的作用范围,不在上述目录中的二进制可以使用proxychains
,而在其中的就不行了。从目前的资料有来,有以下两种解决方法:4.1. 把所有命令都放在~/bin里,把~/bin放在路径里
4.2. 关闭
SIP
4.2.1. 重启电脑;
4.2.2. 在重启的界面上按住 Command 键和 R 键进入recovery mode
;
4.2.3. 左上角通用工具选择终端;
4.2.4. 在终端上分别运行:csrutil disable
和reboot
;
4.2.5. 等电脑重启进入桌面后,继续第 5 步。 - 在要使用代理的命令前面加上
proxychains4
,即可使其命令走代理途径。比如正常情况下运行curl https://www.twitter.com/
,那么让其走代理途径则是proxychains4 curl https://www.twitter.com/
,其他命令同理类推。
4. 参考
- Mac下的各种科学开发配置
- 如何在OS X 10.11的Terminal中使用shadowsocks
- 命令行工具下使用Shadowsocks
- Not working on OS X 10.11 due to SIP
文/牵线小丑(简书作者)
原文链接:http://www.jianshu.com/p/bee7c63c3d50
原文链接:http://www.jianshu.com/p/bee7c63c3d50
评论 在此处输入想要评论的文本。