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

che*_*kaf 15 yum proxy

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

我看,这是可能的使用环境变量HTTP_PROXY那么NO_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
Run Code Online (Sandbox Code Playgroud)

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

[解决方法]

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

小智 33

正如您在此处描述的那样,我无法使用环境变量使其正常工作。然而,Yum 确实支持代理本身,您应该能够执行以下操作:

proxy=http://proxy:port
Run Code Online (Sandbox Code Playgroud)

进入yum.conf然后添加

proxy=_none_
Run Code Online (Sandbox Code Playgroud)

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


小智 5

如果我正确理解了这个问题,则所需的行为是

packages.centos.com通过代理获取。

packages.internal.lan不通过代理会直接去。

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

为此,我使用了以下内容。

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

export no_proxy=internal.lan

yum install package1 package2
Run Code Online (Sandbox Code Playgroud)

package1是通过代理从互联网上拉下来的,

package2没有通过代理从我的本地镜像中拉出。


小智 5

Fedora 上 yum 的替代品是 dnf。

对于dnf_none_会导致错误

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

proxy=
Run Code Online (Sandbox Code Playgroud)

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

  • 自“dnf” v4.2.11(2019 年 9 月发布)以来,已实现“_none_”的使用以实现向后兼容性(参考:https://github.com/rpm-software-management/dnf/commit/62c263452d5630b6605dc91c99469472b1390c35) (3认同)