Redhat

為什麼執行 yum update 時出現 curl 錯誤

  • April 16, 2020

我在實驗室工作。這個實驗室裡有很多 Windows-PC,我正在使用其中的一個。

還有一個代理伺服器,它允許所有 PC 能夠連接到 Internet。

現在,我有一台 Red Hat 7 機器,它連接到我的 PC,這意味著它沒有連接到代理伺服器。

|          |                  |           |
| Internet |<--- proxy server |<--- my PC |<--- RHEL7
|          |                  |           |

說我的電腦RHEL7能pinga.a.a.a通的IP是,我的電腦能ping通的代理伺服器IP是,代理伺服器b.b.b.b使用的埠是8080

現在,我需要讓 RHEL7 上網。這是我所做的:

1)我在我的電腦上進行如下配置:

port_forwarding(a.a.a.a, 6113, b.b.b.b, 8080)

2)我在Linux機器上進行如下配置:

export http_proxy="http://my_name:my_passwd@a.a.a.a:6113/"
export http_proxys="https://my_name:my_passwd@a.a.a.a:6113/"
export ftp_proxys="ftp://my_name:my_passwd@a.a.a.a:6113/"

現在,我可以wget www.google.fr在我的 RHEL7 上。我的配置有效。

然後,我執行yum makecache,這是輸出:

me@localhost:/etc/yum.repos.d$ yum makecache
Loaded plugins: langpacks, product-id, search-disabled-repos
base                                                                                                                                   | 3.6 kB  00:00:00
extras                                                                                                                                 | 2.9 kB  00:00:00
updates                                                                                                                                | 2.9 kB  00:00:00
(1/10): base/x86_64/group_gz                                                                                                           | 165 kB  00:00:00
(2/10): base/x86_64/primary_db                                                                                                         | 6.0 MB  00:00:02
(3/10): extras/x86_64/primary_db                                                                                                       | 165 kB  00:00:00
(4/10): extras/x86_64/filelists_db                                                                                                     | 217 kB  00:00:00
(5/10): base/x86_64/filelists_db                                                                                                       | 7.3 MB  00:00:03
(6/10): extras/x86_64/other_db                                                                                                         | 106 kB  00:00:00
(7/10): base/x86_64/other_db                                                                                                           | 2.6 MB  00:00:00
(8/10): updates/x86_64/filelists_db                                                                                                    | 4.5 MB  00:00:01
(9/10): updates/x86_64/other_db                                                                                                        | 573 kB  00:00:00
(10/10): updates/x86_64/primary_db                                                                                                     | 7.6 MB  00:00:03

似乎yum makecache可行。但是,當我執行時sudo yum update,出現錯誤:

https://mirrors.huaweicloud.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.huaweicloud.com; Unknown error"
Trying other mirror.
https://mirrors.huaweicloud.com/centos/7/extras/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.huaweicloud.com; Unknown error"

我在這裡嘗試了所有鏡像:http: //mirrorlist.centos.org/ ?release=7&arch=x86_64&repo=os ,但我總是遇到同樣的錯誤。

順便說一句,輸出curl -v mirrors.huaweicloud.com

* About to connect() to proxy 192.168.120.176 port 6113 (#0)
*   Trying 192.168.120.176...
* Connected to 192.168.120.176 (192.168.120.176) port 6113 (#0)
* Proxy auth using Basic with user 'me'
> GET HTTP://mirrors.huaweicloud.com/ HTTP/1.1
> Proxy-Authorization: Basic ejAwNDM2ODgwOnI2Ni0xODE2
> User-Agent: curl/7.29.0
> Host: mirrors.huaweicloud.com
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 301 Moved Permanently
< via: proxy A
< Date: Fri, 10 Apr 2020 03:49:09 GMT
< Server: CloudWAF
< Location: https://mirrors.huaweicloud.com/
< Set-Cookie: HWWAFSESID=b0be07ce156888de4e; path=/
< Set-Cookie: HWWAFSESTIME=1586490548595; path=/
< Content-Type: text/html
< Cache-Control: public
< Content-Length: 182
< Proxy-Connection: Keep-Alive
<
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>openresty</center>
</body>
</html>
* Connection #0 to host 192.168.120.176 left intact

我的猜測是,您僅在導出時為使用者“我”設置了代理http_proxyhttp_proxy因此它在您執行yum makecache或與該使用者捲曲時起作用。

但是當你執行時你sudo yum update以root身份執行命令,所以你為使用者“me”設置的變數不考慮在內,你需要為root設置它們,或者你可以添加以下內容yum.conf

proxy=http://a.a.a.a:6113/
proxy_username=my_name
proxy_password=my_passwd

如果這不是原因,您可以嘗試添加-v到 yum 命令以獲取更多資訊。

引用自:https://serverfault.com/questions/1011696