我可以 使用浏览器连接到以下https://registry.terraform.io/.well-known/terraform.json
当我尝试从命令行连接到它时
curl: (7) 无法连接 registry.terraform.io 端口 443: Timed out
关于如何解决它的任何想法谢谢
我可以 使用浏览器连接到以下https://registry.terraform.io/.well-known/terraform.json
当我尝试从命令行连接到它时
curl: (7) 无法连接 registry.terraform.io 端口 443: Timed out
关于如何解决它的任何想法谢谢
TL;博士
尝试
curl
下面第 7 步中列出的命令。如果这不起作用,则除了curl
命令之外,您可能还有其他问题(例如防火墙或代理)。使用 cURL 复制浏览器请求
如果您可以使用浏览器连接,则消除
curl
命令潜在问题的一种方法是从浏览器“复制”所需的事务。Chrome、Firefox 和 Opera 都有一个允许这样做的开发者控制台。打开一个新的空白标签。
在 Chrome 和 Firefox 中,按F12打开开发者控制台。在 Opera 中,按Ctrl+ Shift+ I。
查找
Network
选项并选择它。导航到您想要的 URL,例如https://registry.terraform.io/.well-known/terraform.json。
您最终应该会看到类似于以下内容的内容:
前任。网络交易
选择所需的事务,右键单击并选择选项
Copy as cURL
(对于 Chrome,使用Copy as cURL (cmd)
)。前任。复制为 cURL
如果您粘贴剪贴板的内容,您应该有一份请求的精确副本
curl
:该
curl
命令应该完全复制浏览器发出的请求。其他问题
假设这不能解决问题,那么您将不得不查看此请求可能失败的其他原因,例如防火墙/代理问题或证书问题。
使用
-k
or--insecure
选项忽略带有 curl 的自签名证书或无效证书。考虑使用该
--verbose
标志以及使用 转储 HTTP 标头来-D -
帮助curl
故障排除。模拟特定浏览器
根据您的(通用)cURL 请求仍然失败的附加评论,您可能需要模拟可以成功连接的特定浏览器。
浏览器使用与该浏览器的给定版本关联的用户代理字符串来标识自己。如果您想模拟可以连接到您的 URL 的浏览器,您需要:
在可以成功连接的浏览器中使用我在使用 cURL 复制浏览器请求下给出的步骤。
尝试将
user-agent
第 7 步中的值替换为从诸如我的浏览器之类的站点返回的值(在浏览器中访问此链接,访问您的链接没有问题)。示例(选项 2)
“通用”用户代理(上图)
特定用户代理(例如来自我的浏览器)
重要的是要注意第一种方法(复制请求)可能是最可靠的,因为它可能会捕获
user-agent
用于授权请求的标头以外的标头。问题是命令窗口上的代理设置不正确 HTTPS_PROXY=来自浏览器的代理设置