Wie kann ich über SSH einen HTTP-POST an einen Server in einer Amazon EC2-Instanz ausführen?

553
anon

Ich habe einen Server, der auf http://0.0.0.0:8000 hört, jedoch lebt dieser in einer Amazon-Instanz.

Wie kann ich eine HTTP-POST-Anforderung von einem externen Computer aus erstellen (verwenden curl)? Das heißt, ich möchte den Server als API verwenden. Dies unterscheidet sich von anderen Fällen, weil ich es über ssh machen möchte.

0
Danke für die Hilfe, Attie, ja, das habe ich gemeint anon vor 6 Jahren 1
"_listening auf 0.0.0.0:8000`_" bedeutet "_listening an allen Schnittstellen_" - können Sie damit auf seiner öffentlichen IP-Adresse kommunizieren? (das gleiche, das Sie für SSH verwenden würden) Attie vor 6 Jahren 0
Ja, ich denke schon, Attie, wenn ich den Server starte, heißt es nur: "Kein Port angegeben, standardmäßig Port 8000", der in der ec2-Instanz lebt. Ich möchte den "curl -XPOST" von einer "externen Maschine" machen anon vor 6 Jahren 0
Ich nehme an, Sie können SSH verwenden? Haben Sie versucht, "curl" mit derselben IP-Adresse zu verwenden, die Sie für SSH verwendet haben? Attie vor 6 Jahren 0
Nein, könnten Sie uns ein Beispiel geben? anon vor 6 Jahren 0
Wie verwalten Sie die EC2-Instanz? SSH? Attie vor 6 Jahren 0
ja attie mit ssh danke! anon vor 6 Jahren 0
Mögliches Duplikat von [Was ist die cURL-Befehlszeilensyntax für eine POST-Anforderung?] (Https://superuser.com/questions/149329/what-is-the-curl-command-line-syntax-to-do- a-post-Anfrage) Ahmed Ashour vor 6 Jahren 0
Es ist anders, weil ich es gerne über ssh machen möchte anon vor 6 Jahren 0

1 Antwort auf die Frage

0
Attie

Wenn Sie ausführen möchten, curl auf der EC2 - Instanz und Tunnel den Ausgang über ssh, dann versuchen Sie folgendes:

ssh $@$ curl -s http://localhost:8000/ 

Sie sollten das Ergebnis direkt auf dem Terminal sehen ( -sdie curlAusgabe wird gesperrt ).

Sie können jeden Befehl so ausführen, es gibt nichts Besonderes curl.

Wenn dies funktioniert, können Sie die curlzu verwendenden Parameter -X POSTund / oder -dden korrekten Endpunkt ändern .


Bitte beachten Sie jedoch, dass 0.0.0.0eine „ besondere “ Adresse, die „eigentlich bedeutet, hören auf allen Schnittstellen “ ... Also, wenn Sie die eingehenden Regeln richtig zu konfigurieren, noch jemand tun kann, curl http://$:8000/und drücken Sie Ihren Server.

Haben Sie eine Referenz, wie Sie dies in der Amazon-Instanz konfigurieren können? Ich habe einen Fehler beim Herstellen der Verbindung mit der Instanz erhalten anon vor 6 Jahren 0
Vielleicht möchten Sie eine weitere Frage stellen, insbesondere zu den eingehenden Regeln für EC2. Legen Sie zuerst die grundlegende SSH-Funktion an, und kehren Sie anschließend zurück. Versuchen Sie anschließend, "curl` over SSH_" zu verwenden. Attie vor 6 Jahren 0
Dieser Link könnte hilfreich sein: [Autorisieren des eingehenden Datenverkehrs für Ihre Linux-Instanzen] (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html) Attie vor 6 Jahren 0