如何指定 Yum 不应为特定域使用代理

如何指定 Yum 不应为特定域使用代理

是否可以指定 yum 应绕过代理配置的域?恐怕这是不可能的……

我读到可以使用环境变量HTTP_PROXYNO_PROXY这是最优雅的解决方案吗?

[编辑]

我尝试使用环境变量的解决方案:

export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain

Yum 使用代理,但是 repos *.domain 不会被绕过。

[解决方法]

使用http://cntlm.sourceforge.net/我可以配置应忽略哪个域。但这仅适用于需要 NTLM 身份验证的代理...

答案1

我无法使用您在此处描述的环境变量来实现这一点。不过,Yum 本身支持代理,您应该能够执行以下操作:

proxy=http://proxy:port

yum.conf然后加入

proxy=_none_

进入您不想通过全局代理访问的 repo 定义。这在 yum.conf 手册页中有详细说明(尽管很简洁)。

答案2

如果我正确理解了这个问题,期望的行为是

软件包通过代理进行拉取。

软件包.internal.lan无需通过代理,直接进行。

我刚刚来到这里,用谷歌搜索了如何自己做这件事,并使用上述信息来实现我想要的,但我不确定上述答案是否完整。

为此我使用了以下内容。

export HTTP_PROXY=http://myproxy.internal.lan:port

export no_proxy=internal.lan

yum install package1 package2

包1通过代理从互联网上获取数据,

包2没有通过代理就从我的本地镜像中被拉出来了。

答案3

fedora 上 yum 的替代品是 dnf。

对于 dnf_none_会导致错误

您需要将代理设置为空字符串

proxy=

参考:https://dnf.readthedocs.io/en/latest/conf_ref.html

答案4

您只需在 repo 文件中指定它即可。例如:

[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo  
[cloudera-cdh4]  
name=Cloudera's Distribution for Hadoop, Version 4  
baseurl=http://"yourhost"/cdh4/  
gpgcheck = 0
enabled=1
proxy=_none_

相关内容