我对Linux上的no_proxy
环境变量感到困惑。
在互联网上有许多指示显示引导点,例如.localdomain.com
https://stackoverflow.com/a/19719875/202576。
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
此示例用于使用wget
。不过,我无法确定这是否有效。例如,在Ubuntu18.04上,我删除了引导点以使其工作。注意,我使用的是子域,例如wget mysite.localdomain.com
。
export no_proxy="localhost,127.0.0.1,localaddress,localdomain.com"
当我使用一个curl
时,它将与一个前导点一起工作。
因此,no_proxy
的配置方式似乎取决于工具吗?对于curl
和wget
来说,这是不同的。
是否有适用于所有工具的no_proxy
约定?
我想写出每一个完整的域名都是可行的。
发布于 2022-05-05 18:45:18
没有标准,据我所知,所以您需要设置/使用什么取决于您使用的工具的实现。Curl将与一个前导点一起工作,因为它会剥离它,而wget则不会工作(不剥去它)。
阅读https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/的一些详细分析
该条摘录:
然而,如果有领先的话,
。在no_proxy设置中,行为各不相同。例如,curl和wget的行为不同。卷发总是脱下领头羊。并与域后缀匹配。此调用绕过代理:
$ env https_proxy=http://non.existent/ no_proxy=.gitlab.com curl https://gitlab.com You are href="redirected">https://about.gitlab.com/">redirected.
然而,wget并没有剥夺领先地位。并对主机名执行精确的字符串匹配。因此,如果使用顶级域,wget将尝试使用代理:
$ env https_proxy=http://non.existent/ no_proxy=.gitlab.com wget https://gitlab.com non.existent (non.existent).失败:名称或服务未知。wget:无法解析主机地址'non.existent‘`
https://stackoverflow.com/questions/62632642
复制相似问题