在命令行工具中使用代理

Mar 15 2019 Linux

Mac 和 Linux

类 Unix 环境下设置代理特别简单,只要在用户家目录下的 .bashrc.bash_profile (ZSH 对应 .zshrc 以及 .zsh_profile)设置 http_proxyhttps_proxy 环境变量到代理地址即可,如下所示,其中 $url 就是代理地址。

1
2
3
4
5
6
# 代理设置
url=http://127.0.0.1:1080
# 如果代理失效的话直接运行 poff 即可断开 proxy
alias poff='unset http_proxy;unset https_proxy'
# 快捷方式打开
alias pon='export http_proxy=$url; export https_proxy=$url'

这里我设置了别名,需要使用代理的时候直接运行 pon 即可打开代理,而运行 poff 则关闭代理。

或者你可以直接可以设置只要打开 Termial 就使用代理的话去掉 alias 命令即可。

1
2
3
url=http://127.0.0.1:1080
export http_proxy=$url;
export https_proxy=$url

这里我使用的是 Shadowsocks ,所以这里的 urlhttp://127.0.0.1:1080。如果你需要自定义端口可以打开 Shadowsocks 的偏好设置,http 选项卡设置 http 代理监听端口即可。

注意:Mac 下的 ShadowsocksX-NG 的 HTTP 代理服务器端口默认 1087 而 socks5 的则是 1086 端口。

在 Linux 下有个比设置 http 和 https 代理有个更简单的,可以直接设置 export ALL_PROXY=socks5://127.0.0.1:1080 就行了。

最后测试一下连接,如果出现以下情况即说明设置成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ curl -I https://google.com
HTTP/1.1 200 Connection established

HTTP/2 301
location: https://www.google.com/
content-type: text/html; charset=UTF-8
date: Thu, 28 Feb 2019 03:37:48 GMT
expires: Sat, 30 Mar 2019 03:37:48 GMT
cache-control: public, max-age=2592000
server: gws
content-length: 220
x-xss-protection: 1; mode=block
x-frame-options: SAMEORIGIN
alt-svc: quic=":443"; ma=2592000; v="44,43,39"

Windows

如果你使用 Windows PowerShell 的话,那么需要使用下面的方式:

1
2
3
4
5
6
7
# 查看
set http_proxy
# 设置
set http_proxy=YOUR-PROXY
set https_proxy=YOUR-PROXY
# 删除
set http_proxy=

在 Windows 下使用 Git Bash 则配置方式和 Mac/Linux 一致,不过需要注意的需要在 .bash_profile 而不是 .bashrc 中进行配置。

因为如果你留意的话在每次打开 Git Bash 的时候回一闪而过 login 的字样,而 .bashrc 在每次打开命令行工具时就加载,而 .bash_profile 仅在用户登录时候加载一次,所以每次打开 GitBash 的行为就是登录用户。

VSCode

打开设置,选择 Applicaion-Proxy,注意这里保持 Proxy Strict SSL,关闭可能导致某些插件不能正常工作。

image

在 VSCode Windows 下默认使用 PowerShell 或者 CMD 命令工具,当然也可以设置成 GitBash 的。方法很简单,使用快捷键 Ctrl + Shift + p,然后输入 shell 选择默认 shell 命令即可。

Git

1
2
3
4
5
6
7
8
9
10
11
# 设置 git 的代理相关设置
git config –global http.proxy http://127.0.0.1:1080
git config –global https.proxy http://127.0.0.1:1080
# 或者使用 sock5
git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080

# 取消 git 的代理相关设置
git config –global –unset http.proxy
# 取消 git 的代理相关设置
git config –global –unset https.proxy

git, vscode, iterm2