Назад | Перейти на главную страницу

Как отправить HTTP-запрос, выданный cURL, через VPN?

Пожалуйста, простите меня за (возможно) вопрос о новичках, но я новичок в сетях Linux. Я уже потратил несколько дней на поиск в Интернете ответа на свой вопрос, но не смог его найти, поэтому решил задать вопрос здесь, потому что я знаю, что этот сайт посещают многие опытные профессионалы.

В любом случае, перейдем к собственному вопросу: у меня есть два доступных сервера. Назовем их Сервер-A и Сервер-B. Я установил VPN-туннель между Server-A и Server-B с помощью OpenSWAN. Я назначил исходные IP-адреса: 192.168.2.1 для Server-A и 172.16.2.1 для Server-B. Я успешно могу пинговать 172.16.2.1 с сервера-A и 192.168.2.1 с сервера-B, поэтому я предполагаю, что я правильно настроил VPN, и оба сервера могут обмениваться данными.

Теперь, на сервере A, я хочу сделать это:

Когда я отправляю HTTP-запрос через libcurl следующим образом:

завиток http://checkip.dyndns.com/

Я бы хотел, чтобы запрос проходил через общедоступный IP-адрес Сервера-A.

Однако, когда я выдаю:

curl --interface 192.168.2.1 same_url_as_in_the_above_request

Я бы хотел, чтобы запрос проходил через VPN, чтобы использовать доступ к Интернету Сервера-B, поэтому я ожидал бы увидеть общедоступный IP-адрес Сервера-B, указанный в контрольном ответе.

Прямо сейчас, когда я отправляю такой запрос, я получаю следующую ошибку:

curl (7): не удалось подключиться к хосту

Что я могу сделать для этого, или я ошибаюсь? Все, что я хочу сделать, это использовать доступ к Интернету Сервера-B с Сервера-A для доступа только к определенным веб-сайтам или когда ISP для Сервера-A по какой-то причине не работает. Мне не нужно автоматизировать это, просто хочу иметь возможность делать это вручную, когда это необходимо.

Я бы предположил, что мне нужно выполнить маршрутизацию или NAT, но я понятия не имею, что именно делать - я прочитал много материалов за последние пару дней, но мне трудно понять, что должны выглядеть точные команды iptables и / или route, и если вообще настройка VPN - правильное решение.

Я очень надеюсь, что кто-нибудь из присутствующих сможет дать мне совет, и мне очень жаль, если я рассмешил всех вас подобным нубским вопросом.

С уважением!

для доступа только к определенным сайтам

На самом деле самый простой способ сделать это - использовать HTTP-прокси и передать варианты маршрутизации на сервер Berowser через файл PAC.

или когда ISP для Server-A не работает по какой-либо причине

Для этого нужно совсем другое решение - использовать маршрутизацию (либо в iptables, либо через iproute2).

VPN на самом деле не обязательный - но если вы хотите запустить удаленный HTTP-прокси и не использовать его всеми внутренними мошенниками, которые могут его найти (*), тогда вы ДОЛЖЕН есть метод ограничения доступа клиентов к сервису - VPN - хороший способ добиться этого.

*) Теперь я вижу больше попыток найти открытые веб-прокси, чем открытые SMTP-реле на ящиках, за которыми я ухаживаю