V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cjyang1128
V2EX  ›  问与答

为啥全局代理不对 terminal 起作用

  •  
  •   cjyang1128 · 2016-08-10 17:51:43 +08:00 · 3714 次点击
    这是一个创建于 3034 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有人研究过为什么全局代理不对 terminal 的一些会触发网络请求的命令起作用吗?好奇很久了,但是搜不到。。。

    18 条回复    2016-08-11 23:42:59 +08:00
    SourceMan
        1
    SourceMan  
       2016-08-10 18:16:13 +08:00
    #http proxy for
    export http_proxy="http://127.0.0.1:6152"
    export https_proxy="http://127.0.0.1:6152"
    Tinet
        2
    Tinet  
       2016-08-10 18:29:01 +08:00
    个人感觉是因为层次或者数据路径不一样。希望高人解惑
    Havee
        3
    Havee  
       2016-08-10 18:34:58 +08:00
    全局 X11
    cjyang1128
        4
    cjyang1128  
    OP
       2016-08-10 19:36:02 +08:00
    @SourceMan 额,我用的是 proxychains
    Sorrow
        5
    Sorrow  
       2016-08-10 20:07:17 +08:00
    proxychains 的原理是修改动态链接库。
    所以,对任何静态链接的程序无效。
    对于 suid/sgid 的程序,需要 root 权限。
    还有其他一些特殊情况也不能用 proxychains.
    klesh
        6
    klesh  
       2016-08-10 21:49:12 +08:00 via Android
    用 1 楼的方法,绝大多数程序都会认这个环境变量。至少我还没遇到不支持的
    xi_lin
        7
    xi_lin  
       2016-08-10 21:52:21 +08:00
    @klesh export 的话执行的命令如果内部再开一个 shell script 调用 bash 的话不能传递吧?
    ahjsrhj
        8
    ahjsrhj  
       2016-08-10 21:57:02 +08:00 via Android
    @klesh ping?
    9hills
        9
    9hills  
       2016-08-10 21:59:35 +08:00
    Mac 的 Proxy Setting 仅仅只是一个配置,生效不生效取决于程序愿不愿意读这个配置

    而终端不读这个配置,就这么简单,不过大部分程序认 http_proxy 环境变量
    klesh
        10
    klesh  
       2016-08-10 22:05:50 +08:00 via Android
    @ahjsrhj 请看看环境变量的名字。 ping 并不属于 http 的。

    @xi_lin 可以传递,你可试下。
    xi_lin
        12
    xi_lin  
       2016-08-10 23:01:19 +08:00
    @klesh @debiann
    我是在用 Cocoapod 的时候 export 了 http/https proxy ,然后在执行 pod install 的过程中有一个依赖 realm 会启动脚本用 curl 去下载文件。这个下载过程看上去像是没有走代理的样子,经常出错失败。

    Cocoapod 应该是 ruby 代码, realm 启动的脚本是 https://github.com/realm/realm-cocoa/blob/master/build.sh

    这种情况下没有传递成功?
    alexapollo
        13
    alexapollo  
       2016-08-10 23:40:19 +08:00
    用 Proxifier 不会有这个问题
    klesh
        14
    klesh  
       2016-08-11 09:26:24 +08:00
    @xi_lin 有可能是你的代理不稳定啊,你可以把那网址截取出来,直接运行 curl 试下, curl 是支持 http_proxy 环境变量的。
    xi_lin
        15
    xi_lin  
       2016-08-11 12:50:56 +08:00
    @klesh 直接 export 完运行 curl 是没有问题的,我每次都是直接用 curl 下回来解决的。
    klesh
        16
    klesh  
       2016-08-11 22:43:16 +08:00
    @xi_lin 这真是奇怪得很,我之前也用过 cocoapod ,但是 export http_proxy 是有效果的。我是配置在 ~/.bash_profile 里面
    xi_lin
        17
    xi_lin  
       2016-08-11 22:55:47 +08:00
    @klesh 你配在 bash profile 里的话新开的 bash 应该也是生效的。我只是在每次跑 pod 之前在当前 session 里 export 的,可能是这样导致的。
    julyclyde
        18
    julyclyde  
       2016-08-11 23:42:59 +08:00
    因为并没有全局代理这个概念
    只有分别承认 http_proxy 环境变量这个说法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1713 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:39 · PVG 00:39 · LAX 08:39 · JFK 11:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.