通过 ProxyChains-NG 实现终端代理
对于技术人员来说,通过
shadowsocks
实现代理是一件很轻松的事情。但是却不能代理终端程序,这就很难受了,这里我们可以通过ProxyChains-NG
来实现终端下的代理。首先,确保你的 Mac 已经安装了 Hombrew,如果还没有,点击这里:安装 Homebrew
# 1. 关闭 SIP
macOS 10.11
以后由于开启了SIP(System Integrity Protection)
会导致命令行下proxychains-ng
代理的模式失效,如果你要使用proxychains-ng
这种简单的方法,就需要先关闭SIP
。
具体的关闭方法如下:
1
2
3
41. 重启Mac,按住Option键进入启动盘选择模式,再按⌘ + R进入Recovery模式。
2. 菜单栏 -> 实用工具(Utilities)-> 终端(Terminal)。
3. 输入命令 `csrutil disable`。
4. 重启进入系统后,终端里输入 `csrutil status`,结果中如果有 `System Integrity Protection status:disabled`. 则说明关闭成功。
# 2. 通过 Homebrew 安装 ProxyChains-NG
1
brew install proxychains-ng
# 3. 进行一些简单的配置
1
2
3
4
5vim /usr/local/etc/proxychains.conf
# proxychains.conf
...
[ProxyList]
socks5 127.0.0.1 1080 # 你的代理地址
proxychains-ng
支持多种代理模式,默认是选择 strict_chain
。
1
2
3
4dynamic_chain #动态模式,按照代理列表顺序自动选取可用代理
strict_chain #严格模式,严格按照代理列表顺序使用代理,所有代理必须可用
round_robin_chain #轮询模式,自动跳过不可用代理
random_chain #随机模式,随机使用代理
# 4. 使用方法
proxychains-ng
用法非常简单,命令格式如下:
1
proxychains4 [exec] [args]
# 5. 测试
1
proxychains4 curl ip.cn
1
proxychains4 curl myip.ipip.net
# 6. 全局代理
通过 proxychains-ng
直接调用 SHELL
1
proxychains4 -q /bin/bash
# Mac 下 proxychains 无法生效解决办法
2017 年 7 月 22 日 系统自定义
proxychains 安装命令:
1
brew install proxychains-ng
原因:使用 proxychains4 nmap 的时候发现走的并非代理,而执行命令 proxychains4 curl ifconfig.io 的时候,获取到的 ip 地址的确是本地的。无论怎么设置,都无法生效,流量就是不走设置好的 socks5 代理。
处理方法:关闭 mac 电脑 System Integrity Protection (SIP) 系统完整性保护,而在 10.11 版本之前是没有的,所以需要关闭。
操作如下:
1. 关机
2. 开机的时候按住 command+R 按钮,进入恢复模式,其实并不是去恢复系统,而是进入恢复界面,找到 CMI 命令行界面,这个类似 windows 进入了 PE 系统,这样子操作就可拥有对系统最大化的修改权,类似在 windows 下你删除 system32 文件,显然是删不了的。但是在 PE 下就可以,这个进入恢复模式也是类似如此。
3. 执行命令:csrutil disable
这样子即可关闭,如果开启,执行如上操作,再次输入 csrutil enable 即可。
4. 检测命令:proxychains4 curl www.google.cn
Done
# 修改苹果 SIP(System Integrity Protection)设置
如果是 Linux 系的 此时你应该成功代理了 忽略下文
macOS 10.11 后,苹果加入 SIP 设置就会导致部分命令是执行不成功的,就包括使用 socks 的 proxychains4。如果我们要解决这个问题,我们就要关掉 SIP。
- 重启 Mac,按下
Command+R
直到出现 Apple Logo。 - 选择
实用工具
->终端
。 - 输入命令
csrutil disable
。出现类似于 “成功禁用 SIP” 的意思就表示成功了。
如果还要打开 SIP,最后的步骤 csrutil enable
即可