Iterm2 设置代理

Mac用户大多对Iterm2都不陌生,颜值不错,用起来也顺手,但是大家肯定也都遇到过这样的场景:

  • 更新的时候,被墙了
  • 无法使用Git命令从Github上clone代码

我自己搭了个梯子,从Chrome上访问Github是没有问题,如何能够让Iterm2中的Git命令也可以访问外网呢?
如果Iterm2支持代理就好了,直接把配个代理服务器,但是Iterm2本身并不支持代理设置

我本地安装了Shadowsocks,打开『偏好设置』可以看到socks5和http代理分别监听了1086和1080端口,如果把Iterm2中的请求转发到这些端口上,是不是就可以满足我们想要的功能呢?

为了验证代理是否成功,先测试一下IP地址,在Iterm中输入:

1
curl ip.sb

此时返回的是目前机器的IP地址,可以去搜索一下IP所在地。

接下来打开Shadowsocks,在Iterm中输入如下内容:

1
2
3
4
5
alias proxy_http='export http_proxy=http://127.0.0.1:1080;export https_proxy=http://127.0.0.1:1080;'
alias unproxy_http='unset http_proxy https_proxy'

alias proxy_s5='export ALL_PROXY=socks5://127.0.0.1:1086'
alias unproxy_s5='unset ALL_PROXY'

alias是给命令设置别名的,我们分别设置了四个别名:

  • proxy_http:开启http代理
  • unproxy_http: 关闭http代理
  • proxy_s5:开启socks5代理
  • unproxy_s5: 关闭socks5代理

注意,此时不要关闭Iterm的当前窗口,在iterm当前窗口中输入开启http和socks代理指令,然后再次测试IP是否发生变化:

1
2
3
root@ proxy_http
root@ proxy_s5
root@ curl ip.sb

如果此时IP发生了变化,拿着变化后的IP去浏览器中查一下IP所在地,就可以判断出Iterm的代理是否设置成功了。

由于上面的四个alias只存在于当前session中,关闭了当前窗口,指令就失效了,为了避免下次再次重复输入,可以把这些指令写入.bashrc文件中:

1
2
3
vi ~/.bashrc
## 使用vi输入上面的内容
source ~/.bashrc

扩展:让手机可以访问外网

既然Iterm2可以通过代理的方式实现访问外网,手机是否可以呢?
答案是肯定的:在电脑上开启shadowsocks,开启http的代理监听(这里需要将监听地址改为电脑所在的机器的IP),然后在手机上,将网络代理到电脑上,这样手机就可以访问Google等网站了。


热门文章: