macOS High Sierra 使用proxychains遇到的问题

  • 安装shadowsocks
  • 安装proxychains
  • 10.11版本后新增的SIP

安装shadowsocks

由于pip上的shadowsocks停止更新了,所以需要通过以下命令使用最新版本shadowsocks

>>> sudo pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip
>>> sslocal --version
Shadowsocks 3.0.0

在/etc下创建shadowsocks.json文件

{
    "server":"xxxx",
    "server_port":xxxx,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"xxxx",
    "timeout":300,
    "method":"rc4-md5",
    "fast_open": false
}

启动

sslocal -c /etc/shadowsocks.json -d start

安装proxychains

>>> git clone https://github.com/rofl0r/proxychains-ng.git
>>> cd proxychains-ng
>>> ./configure
>>> make && make install
>>> cp ./src/proxychains.conf /etc/proxychains.conf
>>> cd .. && rm -rf proxychains-ng

编辑/etc/proxychains.conf 在文件最后加上:

socks5 127.0.0.1 1080

测试:

>>> proxychains4 curl twitter.com
[proxychains] config file found: /usr/local/etc/proxychains.conf
[proxychains] preloading /usr/local/lib/libproxychains4.dylib

如果仅返回上面两条信息,则说明curl并没有使用proxychains
究其原因,是因为自10.11版系统后,加入了SIP,使得系统中一部分位置受到保护,这其中就包括/usr/bin,这个目录下的文件无法使用proxychains

10.11版本后新增的SIP

要解决上面的问题,方法有两个:

  • 关闭SIP
  • 使用/usr/local/bin目录下的可执行文件
    我采用的是第二种方法,通过brew安装的命令一般位于/usr/local/bin目录下,以curl命令为例,系统自带的curl命令位于:
>>> which curl
/usr/bin/curl

通过brew安装curl后:

>>> brew install curl
>>> which curl
/usr/local/bin/curl
>>> proxychains4 curl twitter.com
[proxychains] config file found: /usr/local/etc/proxychains.conf
[proxychains] preloading /usr/local/lib/libproxychains4.dylib
[proxychains] DLL init: proxychains-ng 4.13-git-10-g1198857
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  twitter.com:80  ...  OK

git命令也可通过此方法使用proxychains,但brew命令不知何原因无法使用proxychains,如果找到解决方案将会更新本文章。

猜你喜欢

转载自blog.csdn.net/MacwinWin/article/details/86795990