是否可以指定 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