Curl через промежуточный сервер

Мне нужно отправить запрос PUT / GET / POST с помощью curl через настраиваемый порт с client1 на server2. Однако server2 принимает эти запросы только от server1 и отклоняет client1 при прямом подключении. Как лучше всего туннелировать запросы curl от client1 к server2 через server1.

В случае SSH, например, я делаю это, создавая туннель. Поэтому мне интересно, существует ли аналогичная функциональность для curl.

1
задан 3 October 2018 в 17:27
2 ответа

Curl не имеет этой функции, и в любом случае это должен быть серверный вариант. В случае HTTP это означает настройку какого-либо прокси. Если вы не можете изменить конфигурацию сервера или установить прокси, но можете использовать SSH, тогда SSH - ваш единственный вариант.

Для туннелирования порта 80 на ваш локальный компьютер через server1:

ssh -L 8080:server2:80 user@server1

Затем curl localhost: 8080 отправит запрос на порт 80 на сервере 2.

Примечание; некоторые конфигурации серверов запрещают переадресацию портов некоторым или всем пользователям.

3
ответ дан 3 December 2019 в 16:43

Вы также можете использовать oneliner, это избавляет вас от необходимости поддерживать туннель в другом процессе.

ssh user@server1 curl http://server2/path -o -

Другими словами, curl не поддерживает туннели ssh, но туннели ssh поддерживают curl (вроде) ...

3
ответ дан 3 December 2019 в 16:43

Теги

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