通过 ProxyChains-NG 实现终端代理

对于技术人员来说,通过 shadowsocks 实现代理是一件很轻松的事情。但是却不能代理终端程序,这就很难受了,这里我们可以通过 ProxyChains-NG 来实现终端下的代理。

首先,确保你的 Mac 已经安装了 Hombrew,如果还没有,点击这里:安装 Homebrew

1. 关闭 SIP

macOS 10.11 以后由于开启了 SIP(System Integrity Protection) 会导致命令行下 proxychains-ng 代理的模式失效,如果你要使用 proxychains-ng 这种简单的方法,就需要先关闭 SIP

具体的关闭方法如下:

1. 重启Mac,按住Option键进入启动盘选择模式,再按⌘ + R进入Recovery模式。
2. 菜单栏 -> 实用工具(Utilities)-> 终端(Terminal)。
3. 输入命令 `csrutil disable`。
4. 重启进入系统后,终端里输入 `csrutil status`,结果中如果有 `System Integrity Protection status:disabled`. 则说明关闭成功。

2. 通过 Homebrew 安装 ProxyChains-NG

brew install proxychains-ng

3. 进行一些简单的配置

vim /usr/local/etc/proxychains.conf
# proxychains.conf
...
[ProxyList]
socks5 127.0.0.1 1080 # 你的代理地址

proxychains-ng 支持多种代理模式,默认是选择 strict_chain

dynamic_chain     #动态模式,按照代理列表顺序自动选取可用代理
strict_chain      #严格模式,严格按照代理列表顺序使用代理,所有代理必须可用
round_robin_chain #轮询模式,自动跳过不可用代理
random_chain      #随机模式,随机使用代理

4. 使用方法

proxychains-ng 用法非常简单,命令格式如下:

proxychains4 [exec] [args]

5. 测试

proxychains4 curl ip.cn

6. 全局代理

通过 proxychains-ng 直接调用 SHELL

proxychains4 -q /bin/bash

Stay Hungry. Stay Foolish.

frowhy
讨论数量: 5
likunyan

亲测有效

4个月前 评论

你好,通过这些设置是不是比如git composer 下载包什么的都会走代理端口

4个月前 评论
frowhy (楼主) 4个月前

你好,

[ProxyList]
socks5 127.0.0.1 1080 # 你的代理地址
这个是我的梯子地址吗

3个月前 评论
frowhy (楼主) 3个月前

file
不知道这样算是成功了吗
file

3个月前 评论
frowhy (楼主) 3个月前
vi ~/.bash_profile

# 添加下面的文本

# 后面的1087是你本机的 ss 端口号
export http_proxy=http://127.0.0.1:1087;
export https_proxy=http://127.0.0.1:1087;

# 下面是定义的开关方法。在终端直接输入方法名就可以生效。
function ss_off(){
    unset http_proxy  # 如果不想设置方法,则单独执行这两句就可以删除配置的环境变量
    unset https_proxy
    echo -e "已关闭代理"
}
function ss_on() {
    export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
    export http_proxy="http://127.0.0.1:1087" # 这里也是端口号
    export https_proxy=$http_proxy
    echo -e "已开启代理"
}

# 刷新环境
source ~/.bash_profile

# 开启
ss_off

# 检查是否生效
curl ip.gs

我觉得这样更方便。修改 .bash_profile.zshrc 都可以.

3个月前 评论
frowhy (楼主) 3个月前
FixBug (作者) 3个月前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!