给 iTerm 设置代理

如果你用SS FQ的话, Shadow-Socks设置的系统代理是socks5代理,在iTerm中访问一些https还是不能用, 比如用go get下载一些依赖的库。一个办法就是使用Privoxy将socks5代理转换成http代理。

Privoxy

MacOS安装Privoxy比较简单。

1
2
3
4
5
6
7
8
9
10
11
12
13
-> brew install privoxy
==> Downloading https://homebrew.bintray.com/bottles/privoxy-3.0.26.sierra.bottl
######################################################################## 100.0%
==> Pouring privoxy-3.0.26.sierra.bottle.1.tar.gz
==> Caveats
To have launchd start privoxy now and restart at login:
brew services start privoxy
Or, if you don't want/need a background service you can just run:
privoxy /usr/local/etc/privoxy/config
==> Summary
? /usr/local/Cellar/privoxy/3.0.26: 52 files, 1.8MB

你可以使用brew services start privoxy启动privoxy服务,或者手工临时启动privoxy /usr/local/etc/privoxy/config也可以。

如果中间需要brew link privoxy按照提示创建文件夹,比如/usr/local/sbin,设置对应的权限即可。

启动服务前先编辑vim /usr/local/etc/privoxy/config

1
2
3
4
5
6
listen-address 127.0.0.1:8087
forward-socks5 / 127.0.0.1:1080 .
forward 192.168.*.*/ .
forward 10.*.*.*/ .
forward 127.*.*.*/

8087是本机要监听的http代理地址, 1080是SS的socks5代理地址,还设置本地地址。

配置http代理

通过下面的环境变量就可以设置http代理。

1
2
export http_proxy=http://127.0.0.1:8087
export https_proxy=$http_proxy

你可以把它们写在 ~/.zshrc 或者 ~/.bash_profile中,随时切换。

1
2
alias goproxy='export http_proxy=http://127.0.0.1:8087 https_proxy=http://127.0.0.1:8087'
alias disproxy='unset http_proxy https_proxy'

参考

  1. https://segmentfault.com/a/1190000008848001
  2. https://honglu.me/2015/11/06/给iTerm终端设置代理/