最近用brew
安装软件一直卡在Updating Homebrew...
,原因众所周知,当然处理方法有很多,为了解决根本原因,决定给终端配置下代理。
首先需要明确的是,即使shadowsocks
开启了全局模式,你的终端也不会自动代理到SS上!
MAC 配置
安装privoxy
brew install privoxy
打开配置文件
vim /usr/local/etc/privoxy/config
在文件最后加入以下配置项
listen-address 0.0.0.0:8118
forward-socks5 / localhost:1086 .
1086
是shadowsocks
在mac上的默认socket5代理端口,在windows上默认是1080
启动privoxy
sudo /usr/local/sbin/privoxy /usr/local/etc/privoxy/config
终端配置
bash
修改.bash_profile
,zsh
终端修改.zshrc
function stopSS(){
unset http_proxy
unset https_proxy
echo -e "已关闭代理"
}
function startSS() {
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
export http_proxy="http://127.0.0.1:8118"
export https_proxy=$http_proxy
echo -e "已开启代理"
}
保存后,source ~/.bash_profile
或source ~/.zshrc
即可。
使用
startSS 开启ss
stopSS 关闭ss
验证
ping www.google.com
此时仍然是ping
不通的!!!
原因是:ping的协议不是http,也不是https,是ICMP协议。
curl -v http://www.google.com
如果能获取到内容,则表示代理成功!
Windows 配置
windows下,我使用的终端是Cmder,修改安装目录下config/user_aliase.cmd
配置两条alias即可
startSS=set http_proxy=http://127.0.0.1:1080 && set https_proxy=http://127.0.0.1:1080 && set http_proxy_user=user && set http_proxy_pass=pass && set https_proxy_user=user && set https_proxy_pass=pass && echo "start ss"
stopSS=set http_proxy= && set https_proxy= && echo "close ss"
注意
- 代理只在当前tab有效,如果新开了一个终端,需要重新执行命令
startSS
shadowsocks
在mac上
的默认socket5代理端口是1086
,在windows
上默认是1080
- 代理成功后,
ping
依旧不能访问外网