http_proxy、 https_proxy 和 all_proxy 区别

2023-09-02 20:50:42 +08:00
 OneKings
macOS 或 Linux 命令行设置代理几个问题:
1 、all_proxy 应该是包含 http_proxy 和 https_proxy ,为什么有些教程设置代理还 http_proxy 、https_proxy 和 all_proxy 一起设置呢?

2 、http_proxy 、https_proxy 和 all_proxy 设置的代理类型还不一样,比如:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
“http_proxy 、https_proxy” 设置为 “http 代理”,而 “all_proxy” 设置为 “Socks5 代理”,这样设置后面不会复盖前面吗?

3 、all_proxy 设置代理一般都是 Socks5 代理( all_proxy=socks5://127.0.0.1:7891 )很少看见设置为 http 代理( all_proxy=http://127.0.0.1:7891 )为什么?
2245 次点击
所在节点    问与答
6 条回复
ysc3839
2023-09-02 21:11:19 +08:00
环境变量代理服务器的功能都是网络库/应用程序自己实现的,不同的网络库的逻辑、支持的协议都不同,一般来说不建议使用 socks 协议,因为很多库并不支持,比如 wget 就不支持。而且 socks 协议也有坑,curl 用 socks4/socks5 代表本地解析 DNS ,需要写 socks4a/socks5h 才是远程解析 DNS 。
1.都设置应该是为了避免有的库不支持 all_proxy
2.具体得看代码怎么写的
3.没听说有这种说法,我自己都是设置成 http://
neilp
2023-09-02 21:24:16 +08:00
这并非一个系统级的实现, 只是简单的几个环境变量, 具体怎么识别, 怎么实现完全取决于 app 自己的想法.

所以, 写法都是约定俗成, 并没有统一的标准而言. 要具体对待.
yu8403723
2023-09-02 23:10:36 +08:00
虽然回答不了 op 的问题,但是用软路由就行了
binghe
2023-09-02 23:21:20 +08:00
http_proxy 、https_proxy 是只让 http(s)协议走代理。
all_proxy 可以让 http 、https 、socks 、ftp 、smtp 、dns 、pop3 等协议走代理。
以上是 gpt 给的答案。

至于你说的第三点,估计是早期几个做教程的人都是用 socks5 为主,后来的人也跟着用 socks5 了。
但其实因人而异。
比如我就用 all_proxy=http:// 居多。
SenLief
2023-09-03 00:02:26 +08:00
主要是 app 有些不遵守规则,所以都代理了。自己用还是 http://
just1
2023-09-03 00:10:33 +08:00
也可以看这个 https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/
具体应用程序实现还是差异很大的

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

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

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

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

© 2021 V2EX