За последние 24 часа нас посетили 16693 программиста и 1693 робота. Сейчас ищет 781 программист ...

Получить ответ от сервера, находящегося за VPN

Тема в разделе "PHP для новичков", создана пользователем nikola_blin, 27 янв 2016.

  1. nikola_blin

    nikola_blin Новичок

    С нами с:
    15 май 2014
    Сообщения:
    13
    Симпатии:
    0
    Доброго времени.
    Есть внешний сервер с IP 78.40.....
    Также есть второй сервер с внутренним IP 192.168....
    Между ними проброшен VPN-канал.
    На внешнем сервере лежит script.php с cURL запросом, который опрашивает второй сервер на предмет некоторых данных.
    Так вот, из VNC внешнего сервера все отправляется и получается ответ нормально (пишется ответ терминала в файлик на сервере). Но при запуске скрипта из браузера ответа не получаю. Я так понимаю, что браузер считает, что 192.168..... лежит в моей локальной сети.

    Мне нужно отправить запрос и получить ответ в браузер.
    Как можно решить такую проблему и можно ли вообще?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    пробросить трафик?
     
  3. nikola_blin

    nikola_blin Новичок

    С нами с:
    15 май 2014
    Сообщения:
    13
    Симпатии:
    0
    А можно поподробней? Знаю проброс портов и трафика на роутерах, но как увязать это скриптом - понятия не имею.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я три раза перечитал топик и все еще нифига не понял. если серверы друг друга видят через впн-линк то на том где пхп+курл нужно курлом сделать запрос к айпишнику второго сервера. нарисуй диаграму сетевой топологии и подробнее опиши оба сервера и клиент.
     
  5. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    если туннель есть, то оба вроде должны принадлежать одной подсети 192.168...
     
  6. nikola_blin

    nikola_blin Новичок

    С нами с:
    15 май 2014
    Сообщения:
    13
    Симпатии:
    0
    Разрисовал как мог.
    [​IMG]
    Еще раз уточню - через VNC выполняю скрипт
    Код (PHP):
    1. # php -f /script.php > /output.txt 
    (с записью ответа в output.txt). Все нормально, запрос отправляет, ответ правильный присылает.

    Код скрипта:
    Код (PHP):
    1. <?php
    2. $url = "http://192.168...../Proxy/AlsecoSvc/PaymentsService?wsdl";
    3. $query = "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>
    4.             <soap:Body>
    5.                 <GetPenaltyInfo xmlns='http://www.alseco.kz/TaxPaymentsService/'>
    6.                     <bankCode>string</bankCode>
    7.                     <Iin>string</Iin>
    8.                     <RegistrationNumber>string</RegistrationNumber>
    9.                 </GetPenaltyInfo>
    10.             </soap:Body>
    11.         </soap:Envelope>";
    12.  
    13. if( $curl = curl_init() ) {
    14.     curl_setopt($curl,CURLOPT_URL,$url);
    15.     curl_setopt($curl,CURLOPT_POST,true);
    16.     curl_setopt($curl,CURLOPT_POSTFIELDS,$query);
    17.     $out = curl_exec($curl);
    18.     echo $out;
    19.     curl_close($curl); 
    20. }
    21. ?>
    Но, учитывая, что данные запроса будут меняться и нужно будет строить форму, чтоб эти данные вводить, нужно выполнять запрос и получать ответ из браузера.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  7. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Туннель настроен, а доступа нет. Чудеса.
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    machetero, тоннель настроен между серверами, но не факт что соответствующие роуты прописаны на клиентах изолированных сетей. vnc может работать и через nat если что.
     
  9. nikola_blin

    nikola_blin Новичок

    С нами с:
    15 май 2014
    Сообщения:
    13
    Симпатии:
    0
    Я имею в виду - нет никакого доступа к конфигурации сервера + доступа извне. Сервер банковский, закрыли все что можно.
    VPN настраивали без меня, мне выделили только bind-адрес для soap запроса с конкретного сервера.
     
  10. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Те по сути скрипт на сервере А отрабатывает как надо из консоли, но не работает при вызове из браузера с твоей машины ? Не знаю, ну попробуй вызвать из браузера только сервера А(тыж vnc используешь). Не знаю правда что это даст.
     
  11. nikola_blin

    nikola_blin Новичок

    С нами с:
    15 май 2014
    Сообщения:
    13
    Симпатии:
    0
    Всем спасибо. Решили проблему разрешением интернет-соединения внутри сети
    Код (PHP):
    1. setsebool -P httpd_can_network_connect 1