0%

proxychains4

使用Proxychains给你的Shell加上代理

Proxychains是啥?

他是一个命令行预加载器,用于挂钩动态链接程序中的套接字,并通过一个或多个socks / http代理重定向它。

GitHub地址 链接

MacOS和Linux系本身通过Shadowsocks代理之后,通过PAC名单可以识别出要代理的域名。但要求代理应用必须支持Sock5,如果不支持,那么也没有办法通过Shadowsocks代理。我们的Shell控制台环境是不支持Sock代理的,只支持HTTP代理。如果我们不在终端设置 http_proxy 代理,那么我们的Shell控制台是无法通过Shadowsocks代理的。

附 终端设置 http_proxy 代理方法

其实如果不嫌麻烦,我们可以通过在终端设置http_proxy来将Sock代理换成HTTP代理。这样Shell环境也可以曲线救国而使用Shadowsocks代理啦。

1
2
export http_proxy='http://localhost:8888'
export https_proxy='http://localhost:8888'

取消代理

1
2
unset http_proxy
unset https_proxy

如果有兴趣也可以将这个命令放在.bashrc或者.zshrc中,让我们的Shell控制台全局代理启动更加方便一些。

首先你的有自己的小飞机(Mac)

通过Proxychains代理的首先你的有自己的Shadowsocks。这里推荐搭建Shadowsocks-R环境(SSR),因为SSR比普通的Shadowsocks增加了协议和混淆,稳定性更高。

ShadowsocksX-NG 下载这个ShadowsocksX-NG,输入你的SSR配置即可。首先保证你的浏览器能够被ShadowsocksX-NG代理,因为浏览器是默认支持Sock协议的。

如果你是Linux系,你可以借助sslocal命令开启自己的Shadowsocks,具体的参数就不在此文中详细介绍

使用Proxychains4

安装(Mac)

1
brew install proxychains-ng

安装完成之后你将有proxychains4命令

安装(Linux)

1
2
3
4
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure
make && make install

配置参数

修改/usr/local/etc/proxychains.conf 中的配置(Mac brew安装)

注意:Linux系不会默认生成conf文件,需要将上工程中./src/proxychains.conf 里面的配置Copy到目录中

如果proxychain4命令不手动制定配置文件路径,它会自动寻找配置。

1
2
3
4
5
6
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
# socks4 127.0.0.1 9050
socks5 127.0.0.1 1086 # 这里设置自己的代理地址和端口

这就可以了么?

proxychains4配置生效之后,我们在终端使用proxychains4 加上命令就可以在终端代理了。但是这真的可以代理了么???答案是MacOS不行,而Linux系的同学已经OK了。

测试测试:

1
proxychains4 curl ip.cn

结果:

1
当前 IP:42.120.102.128 来自:浙江省杭州市 阿里云

修改苹果SIP(System Integrity Protection)设置

如果是Linux系的 此时你应该成功代理了 忽略下文

macOS 10.11后,苹果加入SIP设置就会导致部分命令是执行不成功的,就包括使用socks的proxychains4。如果我们要解决这个问题,我们就要关掉SIP。

  • 重启Mac,按下Command+R直到出现Apple Logo。
  • 选择实用工具->终端
  • 输入命令csrutil disable。出现类似于“成功禁用SIP”的意思就表示成功了。

如果还要打开SIP,最后的步骤csrutil enable即可

测试关闭SIP之后的Proxychains4

测试测试:

1
proxychains4 curl ip.cn

结果:

1
当前 IP:42.3.27.177 来自:香港特别行政区 香港电讯

如果看到的ip是境外的ip,这样即可成功在命令行中通过proxychains4代理啦。此时如果关掉proxychains4。

测试测试:

1
curl ip.cn

结果:

1
当前 IP:42.120.102.128 来自:浙江省杭州市 阿里云