Probleme beim Herstellen einer Verbindung zur Site über die Befehlszeile

Probleme beim Herstellen einer Verbindung zur Site über die Befehlszeile

Ich kann mich mit Folgendem verbinden https://registry.terraform.io/.well-known/terraform.json über einen Browser

Wenn ich versuche, über die Befehlszeile eine Verbindung herzustellen

curl: (7) Verbindung zum Port 443 von registry.terraform.io konnte nicht hergestellt werden: Zeitüberschreitung

Irgendwelche Ideen zur Lösung des Problems? Danke

Antwort1

Das Problem lag bei falschen Proxy-Einstellungen im Befehlsfenster HTTPS_PROXY = Proxy-Einstellungen vom Browser

Antwort2

Kurz zusammengefasst

Versuchen Sie es mit dem curlunten in Schritt 7 aufgeführten Befehl. Wenn das nicht funktioniert, liegt wahrscheinlich neben Ihrem curlBefehl ein anderes Problem vor (z. B. eine Firewall oder ein Proxy).

Kopieren von Browseranfragen mit cURL

Wenn Sie eine Verbindung über einen Browser herstellen können, können Sie mögliche Probleme mit Ihrem curlBefehl vermeiden, indem Sie die gewünschte Transaktion aus Ihrem Browser „kopieren“. Chrome, Firefox und Opera verfügen alle über eine Entwicklerkonsole, die dies ermöglicht.

  1. Öffnen Sie eine neue leere Registerkarte.

  2. Drücken Sie in Chrome und Firefox, F12um die Entwicklerkonsole zu öffnen. Drücken Sie in Opera Ctrl+ Shift+ I.

  3. Suchen Sie nach der NetworkOption und wählen Sie sie aus.

  4. Navigieren Sie zu Ihrer gewünschten URL, z. B.https://registry.terraform.io/.well-known/terraform.json.

  5. Sie sollten am Ende etwa Folgendes sehen:

    Beispiel: Netzwerktransaktionen

    Firefox-Entwicklerkonsole – Netzwerktransaktionen – Screenshot

  6. Wählen Sie die gewünschte Transaktion aus, klicken Sie mit der rechten Maustaste und wählen Sie die Option Copy as cURL(verwenden Sie für Chrome Copy as cURL (cmd)).

    Beispiel: Als cURL kopieren

    Firefox-Entwicklerkonsole – Netzwerktransaktionen – Als cURL kopieren – Screenshot

  7. Wenn Sie den Inhalt der Zwischenablage einfügen, sollten Sie eine exakte Kopie der Anfrage für Folgendes erhalten curl:

    curl "https://registry.terraform.io/.well-known/terraform.json" -H "authority: registry.terraform.io" -H "upgrade-insecure-requests: 1" -H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" -H "sec-fetch-mode: navigate" -H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" -H "sec-fetch-site: none" -H "accept-encoding: gzip, deflate, br" -H "accept-language: en-US,en;q=0.9" --compressed
    

Dieser curlBefehl sollte die Anfrage des Browsers exakt wiedergeben.

Andere Probleme

Vorausgesetzt, dass sich das Problem dadurch nicht lösen lässt, müssen Sie nach anderen Gründen suchen, warum diese Anforderung fehlschlagen könnte, z. B. Firewall-/Proxy-Probleme oder Zertifikatsprobleme.

  • Verwenden Sie die Option -koder --insecure, um selbstsignierte oder ungültige Zertifikate mit curl zu ignorieren.

  • Erwägen Sie die Verwendung des --verboseFlags sowie das Dumping von HTTP-Headern mit , mit -D -, curlum die Fehlerbehebung zu erleichtern.


Emulieren eines bestimmten Browsers

Aufgrund Ihres zusätzlichen Kommentars, dass Ihre (generischen) cURL-Anfragen immer noch fehlschlagen, müssen Sie wahrscheinlich den spezifischen Browser emulieren, der eine erfolgreiche Verbindung herstellen kann.

Browser identifizieren sich mit einemUser-AgentZeichenfolge, die einer bestimmten Version dieses Browsers zugeordnet ist. Wenn Sie den Browser emulieren möchten, der eine Verbindung zu Ihrer URL herstellen kann, müssen Sie Folgendes tun:

  1. Befolgen Sie die nachstehenden Schritte.Kopieren von Browseranfragen mit cURLim Browser, der erfolgreich eine Verbindung herstellen kann.

  2. Versuchen Sie, den user-agentWert in Schritt 7 durch den Wert zu ersetzen, der von einer Site wie zurückgegeben wirdWas ist mein Browser?(Besuchen Sie diesen Link in dem Browser, der problemlos auf Ihren Link zugreifen kann.)

Beispiel (Option 2)

„Generischer“ Benutzeragent (oben)

-H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"

Bestimmter User Agent (z. B. von „What Is My Browser“)

-H "user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"

Es ist wichtig zu beachten, dass die erste Methode (Kopieren der Anfrage) wahrscheinlich die zuverlässigste ist, da sie möglicherweise andere Header abfängt als die, user-agentdie zum Autorisieren einer Anfrage verwendet werden.


verwandte Informationen