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

2016-08-10 17:51:43 +08:00
 cjyang1128

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

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

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

@xi_lin 可以传递,你可试下。
debiann
2016-08-10 22:05:51 +08:00
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
2016-08-10 23:40:19 +08:00
用 Proxifier 不会有这个问题
klesh
2016-08-11 09:26:24 +08:00
@xi_lin 有可能是你的代理不稳定啊,你可以把那网址截取出来,直接运行 curl 试下, curl 是支持 http_proxy 环境变量的。
xi_lin
2016-08-11 12:50:56 +08:00
@klesh 直接 export 完运行 curl 是没有问题的,我每次都是直接用 curl 下回来解决的。
klesh
2016-08-11 22:43:16 +08:00
@xi_lin 这真是奇怪得很,我之前也用过 cocoapod ,但是 export http_proxy 是有效果的。我是配置在 ~/.bash_profile 里面
xi_lin
2016-08-11 22:55:47 +08:00
@klesh 你配在 bash profile 里的话新开的 bash 应该也是生效的。我只是在每次跑 pod 之前在当前 session 里 export 的,可能是这样导致的。
julyclyde
2016-08-11 23:42:59 +08:00
因为并没有全局代理这个概念
只有分别承认 http_proxy 环境变量这个说法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/298453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX