我有CentOS Linux release 7.4.1708
Linux 发行版。
我需要安装一些软件包。要执行的第一个命令是添加存储库:
yum 安装https://extras.getpagespeed.com/release-el7-latest.rpm
当我运行它时,命令会挂起并在一段时间后打印错误。cli 的完整输出如下:
# yum 安装https://extras.getpagespeed.com/release-el7-latest.rpm
不能打开:
https://extras.getpagespeed.com/release-el7-latest.rpm. 跳过。
错误:无需执行
附言我尝试安装Page Speed Nginx 模块
更新 1
好像我的服务器无法下载 rpm 文件:
服务器已连接到互联网,wget
并且ping
命令在一些随机资源上正常运行。
更新 2
我已经下载了文件https://extras.getpagespeed.com/release-el7-latest.rpm 通过浏览器到我的工作站并将其上传到主服务器文件夹。
然后我进入服务器主文件夹并执行命令rpm -Uvh release-el7-latest.rpm
。
#rpm -Uvh release-el7-latest.rpm
警告:release-el7-latest.rpm:Header V4 RSA/SHA1 签名,密钥 ID 222b0e83:NOKEY
正在准备... 正在更新/安装...
1:getpagespeed-extras-7-3.el7.gps
然后我通过命令搜索了我的包yum search
。它给出了错误,下面是一些巨大的输出部分。
yum 搜索 nginx 模块
附加内容 | 3.4 kB 00:00:00
https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml:
[Errno 14] curl#7 - “无法连接到 2606:4700:30::6812:31e3:
网络无法访问”正在尝试其他镜像。
https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml:
[Errno 14] curl#56 - “回调中止”尝试其他镜像。
我弄清楚了 IPv6 存在一些问题并将ip_resolve=4
设置添加到/etc/yum.conf
文件中。
错误改变:
yum 搜索 nginx-module
extras | 3.4 kB 00:00:00
https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml:
[Errno 14] curl#7 - “无法连接到 extras.getpagespeed.com:443;操作正在进行中”
问题是否与 https 连接问题有关?
更新 3
Update 2
与文件相关的错误https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml,无法下载。
直接从 CLI 下载也没有成功:
# curl--verbosehttps://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml
* 即将 connect() 到 extras.getpagespeed.com 端口 443 (#0)
* 尝试 104.18.48.227...
* 连接超时
* 尝试 104.18.49.227...
* 连接时间经过 86358ms,继续!
* 尝试 2606:4700:30::6812:31e3...
* 无法连接到 2606:4700:30::6812:31e3:网络无法连接
* 尝试 2606:4700:30::6812:30e3...
* 无法连接到 2606:4700:30::6812:30e3:网络无法连接
* 无法连接到 extras.getpagespeed.com:443;网络无法访问
* 关闭连接 0
curl:(7)无法连接到 2606:4700:30::6812:31e3:网络无法访问
我以为是服务器上的 https 问题,但curl https://www.google.com
运行正常。可以通过浏览器从工作站下载文件。
更新 4
Iptables 规则如下:
# iptables-save
*filter
:输入接受[71:19593]
:转发接受[0:0]
:输出接受[81:64337]
:MYSQL-[0:0]
:MYSQL_WHITELIST-[0:0]
-A输入-p tcp-m tcp --dport 3306-j MYSQL
-A MYSQL-j MYSQL_WHITELIST
-A MYSQL-j接受
-A MYSQL_WHITELIST-s 10.100.10.6/32-j返回
-A MYSQL_WHITELIST-j DROP
提交
更新 5
跟踪路由输出:
# traceroute extras.getpagespeed.com
跟踪路由到 extras.getpagespeed.com (104.18.48.227),最多 30 个跳数,60 字节数据包
1 * * *
2 * * *
3 * * *
4 * * *
...
30 * * *
答案1
您的 Web 请求似乎在尝试通过 HTTPS 端口 443 访问 extras.getpagespeed.com 时超时。此主机实际上使用 DNS 在几个不同的 IP 之间进行负载平衡,因此它会尝试两者,然后尝试 ipv6(这是无法访问的,因为您的路由表中可能没有配置 ipv6 的默认路由)。您应该能够通过使用 telnet 在 443 上打开 tcp 连接来验证这一点:
telnet extras.getpagespeed.com 443
如果超时,则可能是防火墙规则阻止了你向 extras.getpagespeed.com 解析的 IP 地址发出的出站 Web 请求
您可以通过首先检查主机上的防火墙设置来验证这一点:
iptables-save
对于 iptables。如果您正在运行firewalld,您还可以使用:
systemctl status firewalld
获取状态,然后
firewall-cmd --list-all
如果没有活动规则阻止到目标端口 443 到 104.18.49.227 或 104.18.48.227 的出站 tcp 连接,但您的 telnet 仍然超时,下一步是找出网络中的哪个跃点正在过滤对这些特定 ip 地址的 HTTPS 请求。您应该能够使用以下命令轻松找到网络中的下一个跃点:
traceroute extras.getpagespeed.com
我的直觉是,你的路由器、防火墙(ACL 可以从路由器内具有双重功能的防火墙应用,或者从网络边缘的专用防火墙应用,具体取决于你的网络拓扑)有一条规则,可以捕获你的 HTTPS 请求并丢弃数据包。
我不认为这是一个路由问题,因为 A- 我们能够顺利到达解析器,并顺利解析 extras.getpagespeed.com,并且 B- 我们可以将端口 80 流量传送到谷歌,所以你的默认路由是有效的。
答案2
- DNS 重新解析
DNS 恢复似乎正在运行。您已将 yum 配置更改为使用 IPv4。
- 服务器上的防火墙规则
接下来检查防火墙(重点检查 OUTPUT/传出连接)。您可以尝试以下操作之一:
iptables-save
iptables -S ; iptables -t nat -S
- 联系
您提到它在工作站上工作正常。服务器和工作站是如何连接的?它们位于同一连接后面吗?您使用 VLAN 吗?路由器/防火墙上是否有任何 ACL 处理连接(和/或 VLAN 路由)?默认网关是否相同?通信在哪里终止(跟踪路由)- 至少 ICMP 显示的内容...
ip route show
ip address show
traceroute extras.getpagespeed.com
以防万一...服务器/工作站上是否没有任何活动的 VPN 会话,因此结果可能会受到影响(它会在以前的命令的输出中可见)?
- 再检查一次
我尝试通过 http(端口 80)访问它,至少可以看到 https 架构的重定向。尝试通过端口 80 访问它。最后我不会帮忙,但如果是与端口 443 特别相关的问题,我可以帮助排除故障。
$ curl -4iv http://extras.getpagespeed.com/release-el7-latest.rpm >/dev/null
* About to connect() to extras.getpagespeed.com port 80 (#0)
* Trying 104.18.49.227...
* Connected to extras.getpagespeed.com (104.18.49.227) port 80 (#0)
> GET /release-el7-latest.rpm HTTP/1.1
> User-Agent: curl/7.29.0
> Host: extras.getpagespeed.com
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 12 Dec 2018 00:42:10 GMT
< Content-Length: 0
< Connection: keep-alive
< Set-Cookie: __cfduid=d1db394ac95ecd334f0739681096b64ba1544575330; expires=Thu, 12-Dec-19 00:42:10 GMT; path=/; domain=.getpagespeed.com; HttpOnly
< X-Varnish: 1149403
< Location: https://extras.getpagespeed.com/release-el7-latest.rpm
< CF-Cache-Status: MISS
< Server: cloudflare
< CF-RAY: 487c264520a7c274-FRA
<
* Connection #0 to host extras.getpagespeed.com left intact
注意:由于它位于 CloudFlare,因此如果它被识别为潜在攻击(不当通信、请求速率等),连接可能会受到一些限制。