Как мне сделать HTTP POST для сервера, живущего в экземпляре Amazon ec2 через ssh?

329
anon

У меня есть сервер, прослушивающий http://0.0.0.0:8000, однако он живет в экземпляре Amazon.

Как сделать HTTP-запрос POST с внешнего компьютера (используя curl)? То есть я хотел бы использовать сервер прослушивания в качестве API. Это отличается от других случаев, потому что я хотел бы сделать это через SSH.

0
Спасибо за помощь Атти, да это я и имел ввиду anon 5 лет назад 1
«_listening на` 0.0.0.0:8000`_ »означает« _listening на всех интерфейсах_ »- так что вы можете общаться с ним по его общедоступному IP? (то же самое, что вы использовали бы для SSH) Attie 5 лет назад 0
Да, я так думаю, Атти, когда я запускаю сервер, он просто говорит: `порт не указан, по умолчанию используется порт 8000`, который находится в экземпляре ec2. Я хотел бы сделать `curl -XPOST` с" внешней машины " anon 5 лет назад 0
Я полагаю, вы можете использовать SSH? Вы пытались использовать `curl` с тем же IP-адресом, который вы использовали для SSH? Attie 5 лет назад 0
Нет, не могли бы вы привести пример? anon 5 лет назад 0
Как вы управляете экземпляром EC2? SSH? Attie 5 лет назад 0
да attie с ssh спасибо! anon 5 лет назад 0
Возможный дубликат [Что такое синтаксис командной строки cURL для выполнения запроса POST?] (Https://superuser.com/questions/149329/what-is-the-curl-command-line-syntax-to-do- а-пост-запрос) Ahmed Ashour 5 лет назад 0
Это отличается, потому что я хотел бы сделать это через SSH anon 5 лет назад 0

1 ответ на вопрос

0
Attie

Если вы хотите запустить curl на экземпляре EC2, и туннель выход через ssh, то попробуйте следующее:

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

Вы должны увидеть результат непосредственно на терминале ( -sзапретит curlвывод).

Вы можете выполнить любую команду, подобную этой, для этого нет ничего особенного curl.

Если это работает, то вы можете изменить используемые curlпараметры -X POSTи / или -dвместе с правильной конечной точкой.


Помните, однако, что 0.0.0.0это « специальный » адрес, который на самом деле означает « прослушивание на всех интерфейсах » ... Так что, если вы не настроите правила входящих сообщений правильно, кто-нибудь все равно сможет это сделать curl http://$:8000/и попасть на ваш сервер.

У вас есть справка о том, как настроить это на экземпляре Amazon? Мне не удалось подключиться к экземпляру, истекло время ожидания anon 5 лет назад 0
Возможно, вы захотите задать другой вопрос, в частности, о правилах входящего трафика для EC2 ... сначала запустите базовый SSH, а затем вернитесь и попробуйте "_use` curl` over SSH_ "впоследствии. Attie 5 лет назад 0
Эта ссылка может помочь: [Авторизация входящего трафика для ваших экземпляров Linux] (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html) Attie 5 лет назад 0

Похожие вопросы