ProxyChains-NG
项目主页:https://github.com/rofl0r/proxychains-ng
官方说明:
proxychains ng (new generation) - a preloader which hooks calls to sockets in dynamically linked programs and redirects it through one or more socks/http proxies. continuation of the unmaintained proxychains project.
安装
使用 Homebrew 安装
brew install proxychains-ng
配置
编辑配置文件
sudo vim /usr/local/Cellar/proxychains-ng/4.10/etc/proxychains.conf
在 [ProxyList] 下面(也就是末尾)加入代理类型,代理地址和端口 注释掉原来的代理并添加
socks5 127.0.0.1 1080
ps: 默认的socks4 127.0.0.1 9095是tor代理,而socks5 127.0.0.1 1080是shadowsocks的代理。
如果所在的网络很复杂,可能需要在配置文件中启用 dynamic_chain - 按照列表中出现的代理服务器的先后顺序组成一条链,如果有代理服务器失效,则自动将其排除,但至少要有一个是有效的,然后在 [ProxyList] 下添加多个代理。
默认是: strict_chain - 按照后面列表中出现的代理服务器的先后顺序组成一条链,要求所有的代理服务器都是有效的。
ps: 4.10 是proxychains-ng的版本好,具体参看自己的版本。
用法:
proxychains4 curl twitter.com
补充alias
vim ~/.bash_profile
插入
alias gfw='proxychains4'
alias sudogfw='sudo proxychains4'
使~/.bash_profile生效
source ~/.bash_profile
配置示例
strict_chain proxy_dns remote_dns_subnet 224 tcp_read_time_out 15000 tcp_connect_time_out 8000 localnet 127.0.0.0/255.0.0.0
[ProxyList] socks5 127.0.0.1 1080
Mac OS 10.11 恢复模式下 关闭 SIP
Command + R 进入恢复模式,选择Terminal 执行
csrutil enable --without debug
Apple Internal: enabled Kext Signing: enabled Filesystem Protections: enabled Debugging Restrictions: enabled DTrace Restrictions: enabled NVRAM Protections: enabled
disable 是把 5 个都关了。。。
目测 proxychains 之类的需要加入 LD_PRELOAD 进行动态 HOOK debug 那个就是保护了关键路径上的 bin 不被劫持
其他都是字面意思
保护的只有 rootless.conf 定义的目录文件
参考:
https://eliyar.biz/code/proxy-for-mac-terminal/
http://yanghui.name/blog/2015/07/19/make-all-command-through-proxy/