首页 快讯正文

聚看点官网导读:给 iTerm 终端设置代理

admin 快讯 2020-02-23 9 0
【机器学习】算法原理详细推导与实现(六):k-means算法

本文介绍如何为自己的终端设置代理,从而实现在命令行中访问Google。

1. 背景

当你使用SS FQ时,大部分浏览器都可以成功访问Google,但是在命令行下执行curl https://www.google.com时,会超时失败。对于类似的这种情况,本文将解释出现这种现象的原因,并给出有效的解决方案。

2. 原因

  1. 启动SS时,会创建两个代理,一个是ss-local,一个是privoxy;ss-local用于代理socks5请求,privoxy用于代理所有的HTTP请求
  2. 启动SS时,不管用PAC模式还是全局模式,都会修改网络系统代理设置
    1. 网络系统代理设置从哪里看?Mac:系统偏好设置-->网络-->高级-->代理
    2. 在代理页中可以看到
    3. 从上图可以看到,网页代理服务器是一个部署在本地的代理服务器
    4. 这个本地代理服务器实际上是SS启动时创建的,我们可以从SS的HTTP代理设置中看到
  3. 大部分浏览器的默认代理设置是系统代理
    1. 因此浏览器访问https://www.google.com时,实际上是把请求发送给了SS创建的本地代理服务器127.0.0.1:1087
    2. 聚看点官网导读:给 iTerm 终端设置代理 第1张
    3. 上图的privoxy就是SS创建的本地HTTP代理服务器127.0.0.1:1087
    4. privoxy会把接收到的http/https请求转发给本地的ss-local服务,ss-local服务通过socks5协议发送加密过的请求数据到远端的SS server,SS server解密请求数据后,将真实的请求https://www.google.com发送到Google的服务器
    5. 聚看点官网导读:给 iTerm 终端设置代理 第2张
    6. 上图是privoxy的配置文件,privoxy的监听地址是:127.0.0.1:1087,转发地址是:127.0.0.1:1080
  4. 终端软件iterm/iterm2等默认是没有设置请求代理,因此无法访问https://www.google.com

3. 解决方案

  1. 通过下面的环境变量就可以设置HTTP代理:

    【大白话系列】MySQL 学习总结 之 缓冲池(Buffer Pool) 如何支撑高并发和动态调整

    export http_proxy=http://127.0.0.1:8087
    export https_proxy=$http_proxy
  2. 为了能够快速切换代理,可以在 ~/.zshrc 或者 ~/.bash_profile 中添加这样的alias:

    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'

4. 参考资料

  1. 给 iTerm 终端设置代理
  2. 利用 Privoxy 让命令行下的 wget 和 curl 等命令实现自动代理
,

Sunbet

Sunbet www.xzsxzxx.cn是Sunbet娱乐的官方网站,是亚洲唯一的Sunbet。公司业务主要范围:Sunbet、Sunbet、sunbet娱乐等。

版权声明

本文仅代表作者观点,
不代表本站诚信在线的立场。
本文系作者授权发表,未经许可,不得转载。

评论