You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

CentOS 7下访问packages.microsoft.com仓库执行yum update失败求助

CentOS 7下访问packages.microsoft.com仓库执行yum update失败求助

你好,我注意到你作为CentOS新手,在配置微软软件仓库时遇到了yum update超时、无法获取SSL证书的问题。结合你提供的tracepath、openssl和curl测试信息,我整理了几个针对性的排查和解决方向,你可以逐一尝试:

1. 解决路径MTU不匹配问题

从你的tracepath结果能看到,第6跳时MTU从1500降到了1476,这可能导致大尺寸的HTTPS数据包无法正常传输,进而触发超时。你可以临时调整网卡MTU来匹配路径MTU:

# 假设你的网卡是eth0,根据实际情况替换
ifconfig eth0 mtu 1476 up

# 如果使用NetworkManager管理网络,用以下命令
nmcli connection modify eth0 ipv4.mtu 1476
nmcli connection up eth0

调整完成后,再执行yum update测试是否解决超时问题。如果有效,可以把MTU设置写入网卡配置文件(如/etc/sysconfig/network-scripts/ifcfg-eth0),添加MTU=1476实现永久生效。

2. 修复系统CA根证书缺失问题

openssl连接仅显示CONNECTED但无法获取证书,大概率是系统缺少验证微软HTTPS证书所需的CA根证书。你可以先更新系统的CA证书包:

yum install -y ca-certificates
update-ca-trust extract

更新完成后,重新测试openssl连接,查看是否能正常获取证书链:

openssl s_client -connect packages.microsoft.com:443 -showcerts

如果输出中能看到完整的证书信息,说明证书问题已解决。

3. 调整yum超时与重试参数

默认的yum超时时间(30秒)可能不足以应对网络波动,你可以编辑yum配置文件延长超时时间并增加重试次数:

vi /etc/yum.conf

在文件中添加或修改以下参数:

timeout=60  # 超时时间改为60秒
retries=5    # 重试次数改为5次

保存退出后,执行yum clean all && yum makecache fast清理缓存并重新生成仓库缓存,再尝试yum update

4. 排查透明代理或网关拦截

虽然你已经开放了防火墙,但部分环境可能存在透明代理、WAF或网关设备拦截HTTPS流量,导致证书无法正常协商。你可以用curl做更详细的调试:

curl -vvv https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml

仔细查看输出中的证书验证、连接协商过程,如果出现“certificate verify failed”或代理相关提示,需要联系网络团队检查是否有流量拦截规则。

5. 验证微软仓库配置正确性

确保你的微软仓库配置文件正确无误,检查/etc/yum.repos.d/microsoft-prod.repo的内容:

[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/centos/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

如果文件不存在或内容错误,重新创建该文件并导入微软的GPG密钥:

rpm --import https://packages.microsoft.com/keys/microsoft.asc

之后清理yum缓存并更新:

yum clean all
yum makecache fast
yum update

问题补充信息

以下是你提供的测试输出,供参考:

yum update错误输出:

[root@abcde01 network-scripts]# yum update

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.gbnetwork.com

* extras: mirrors.gbnetwork.com

* updates: mirrors.gbnetwork.com

base                                                                                    | 3.6 kB  00:00:00

extras                                                                                  | 2.9 kB  00:00:00

https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: [Errno 12] Timeout on https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: (28, 'Operation timed out after 30001 milliseconds with 0 out of 0 bytes received')

Trying other mirror.

https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: [Errno 12] Timeout on https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: (28, 'Operation timed out after 30001 milliseconds with 0 out of 0 bytes received')

Trying other mirror.

https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: [Errno 12] Timeout on https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: (28, 'Operation timed out after 30001 milliseconds with 0 out of 0 bytes received')

Trying other mirror.

https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: [Errno 12] Timeout on https://packages.microsoft.com/centos/7/prod/repodata/repomd.xml: (28, 'Operation timed out after 30001 milliseconds with 0 out of 0 bytes received')

Trying other mirror.

openssl测试输出:

[root@abcde01 network-scripts]# openssl s_client -connect packages.microsoft.com:443

CONNECTED(00000003)

curl测试输出:

[root@ieleaisiq01 network-scripts]# curl -vk https://packages.microsoft.com

* About to connect() to packages.microsoft.com port 443 (#0)

*   Trying 52.230.121.169...

* Connected to packages.microsoft.com (52.230.121.169) port 443 (#0)

* Initializing NSS with certpath: sql:/etc/pki/nssdb

tracepath测试输出:

[root@abcde01]# tracepath packages.microsoft.com -p 443

1?: [LOCALHOST]                                         pmtu 1500

1:  gateway                                               0.166ms asymm 64

1:  gateway                                               0.080ms asymm 64

2:  100.64.96.0                                           0.171ms

3:  10.1.22.2                                             0.518ms

4:  10.1.22.9                                             0.496ms

5:  10.1.22.17                                            0.561ms

6:  10.1.22.17                                            0.554ms pmtu 1476

6:  192.168.1.99                                         20.473ms

7:  10.1.22.41                                           20.216ms

8:  203.115.193.250                                      23.265ms

9:  cbj-br1.arc.net.my                                   17.568ms

10:  203.115.224.98                                       23.552ms

11:  microsoft-1.myix.my                                  23.661ms

12:  ae28-0.icr02.kul01.ntwk.msn.net                      38.018ms

13:  be-102-0.ibr01.kul01.ntwk.msn.net                    28.477ms asymm 17

14:  be-7-0.ibr02.sg3.ntwk.msn.net                        29.007ms asymm 16

15:  ae102-0.icr02.sg3.ntwk.msn.net                       28.548ms

16:  no reply

17:  no reply

18:  no reply

^C

备注:内容来源于stack exchange,提问作者Myan

火山引擎 最新活动