简易配置终端代理

终端环境默认是不走代理的,但有时比如 git 等终端环境下的程序也有走代理的需要,下面记录一下如何设置使终端环境也走代理。

§Windows 10

1
2
set http_proxy=http://127.0.0.1:1081
set https_proxy=http://127.0.0.1:1081

测试是否走代理:

1
curl ip.sb

返回 IP 如果是代理服务器 IP 说明当前终端下已经走代理了。

效果持续到当前 CMD 窗口关闭。

注意:

  • 测试终端环境下是否走了代理,使用 ping google.com 是不行的,因为 ping 命令既不是 HTTP 也不是 HTTPS 协议,而是 ICMP 协议,始终是不走代理的,如果要 ping 也走代理,那么需要一些比较高级的方法,比如配置透明代理之类的,本文就不涉及了。

§Linux

§临时方式

1
2
3
export ALL_PROXY=socks5://127.0.0.1:1080
export http_proxy=http://127.0.0.1:1081
export https_proxy=http://127.0.0.1:1081

类似 Windows ,只是命令稍有变化,测试方法和持续时间和上文 Windows 中的配置相同。

这种方法每次打开终端都要输一遍长长的指令,十分不便,下面介绍一个更加灵活一点的方法。

§进阶方式

可以写一个脚本,里面有两个函数,开启代理(proxy_on)和关闭代理(proxy_off),并且默认打开终端时代理是关闭的,根据需要来一句命令切换开关。

新建一个 shell 脚本(以建立在 /root/ 目录下为例):

1
vim /root/terminal_proxy.sh

粘贴上以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 开启代理
function proxy_on(){
    export ALL_PROXY=socks5://127.0.0.1:1080
    export http_proxy=http://127.0.0.1:1081
    export https_proxy=http://127.0.0.1:1081
    echo -e "已开启代理"
}
# 关闭代理
function proxy_off(){
    unset ALL_PROXY
    unset http_proxy
    unset https_proxy
    echo -e "已关闭代理"
}
# 执行proxy_off,即默认关闭代理
proxy_off

其中代理的地址和端口需要自己修改,如果需要终端默认开启代理,那么把最后一行改成 proxy_on

编辑终端的配置文件,默认在 ~/.bashrc ,如果是 zsh 那么配置文件在 ~/.zshrc ,在最后加上:

1
source /root/terminal_proxy.sh

保存后执行

1
source ~/.bashrc

或(如果 shell 是 zsh)

1
source ~/.zshrc

使配置生效即可。

使用进阶方式的优点:

  • 可以控制是否默认开启代理;

  • 每新建一个终端会话,都可以通过执行 proxy_onproxy_off 来开关代理,并且每个会话的代理设置是独立的,真正做到窗口级的控制;

  • 如果你在执行某个命令时不想使用代理,那么执行 proxy_off 临时关闭即可。


参考链接:

  1. 命令行走代理的便捷方式 - 掘金