终端Shell配置网络代理
OS下终端 Shell是不走系统代理的,因此即使开了系统代理,比如iTerm2下执行curl或者npm等发现也是存在网络不通。
使用代理App Surge或者其它的代理App通过支持修改网卡是可以强制走代理的,但是有时我们并不想使用这种方式,那么是否有办法让终端Shell走代理呢。
是的,可以,这里Mark下解决办法。
编辑shell配置文件
这里以bash为例,打开bash_profile,vi ~/.bash_profile
,如果平时是使用zsh也可以vi ~/.zshrc
。
增加如下配置
1 | export http_proxy=socks5://127.0.0.1:6153 |
如果本身只是想解决终端http请求代理的话,all_proxy可以不配置。因为请求并非都是http请求,这里可以配置all_proxy来解决非http请求。注意 git ssh是不会走这里的配置,解决办法是git单独配置proxyCommand或者代理软件的增强模式来解决。
配置生效
source ~/.bash_profile
测试
curl -i https://google.com
如果是系统代理服务本身有网络请求抓包的话,可以通过抓包来判断代理是否生效。
临时禁用代理
因为配置中我们有增加disproxy,这里只要执行disproxy
即可。
写在最后
这样终端Shell发出的请求即可走代理服务了。