Доброго времени. Есть внешний сервер с IP 78.40..... Также есть второй сервер с внутренним IP 192.168.... Между ними проброшен VPN-канал. На внешнем сервере лежит script.php с cURL запросом, который опрашивает второй сервер на предмет некоторых данных. Так вот, из VNC внешнего сервера все отправляется и получается ответ нормально (пишется ответ терминала в файлик на сервере). Но при запуске скрипта из браузера ответа не получаю. Я так понимаю, что браузер считает, что 192.168..... лежит в моей локальной сети. Мне нужно отправить запрос и получить ответ в браузер. Как можно решить такую проблему и можно ли вообще?
А можно поподробней? Знаю проброс портов и трафика на роутерах, но как увязать это скриптом - понятия не имею.
я три раза перечитал топик и все еще нифига не понял. если серверы друг друга видят через впн-линк то на том где пхп+курл нужно курлом сделать запрос к айпишнику второго сервера. нарисуй диаграму сетевой топологии и подробнее опиши оба сервера и клиент.
Разрисовал как мог. Еще раз уточню - через VNC выполняю скрипт Код (PHP): # php -f /script.php > /output.txt (с записью ответа в output.txt). Все нормально, запрос отправляет, ответ правильный присылает. Код скрипта: Код (PHP): <?php $url = "http://192.168...../Proxy/AlsecoSvc/PaymentsService?wsdl"; $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/'> <soap:Body> <GetPenaltyInfo xmlns='http://www.alseco.kz/TaxPaymentsService/'> <bankCode>string</bankCode> <Iin>string</Iin> <RegistrationNumber>string</RegistrationNumber> </GetPenaltyInfo> </soap:Body> </soap:Envelope>"; if( $curl = curl_init() ) { curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_POST,true); curl_setopt($curl,CURLOPT_POSTFIELDS,$query); $out = curl_exec($curl); echo $out; curl_close($curl); } ?> Но, учитывая, что данные запроса будут меняться и нужно будет строить форму, чтоб эти данные вводить, нужно выполнять запрос и получать ответ из браузера. Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
machetero, тоннель настроен между серверами, но не факт что соответствующие роуты прописаны на клиентах изолированных сетей. vnc может работать и через nat если что.
Я имею в виду - нет никакого доступа к конфигурации сервера + доступа извне. Сервер банковский, закрыли все что можно. VPN настраивали без меня, мне выделили только bind-адрес для soap запроса с конкретного сервера.
Те по сути скрипт на сервере А отрабатывает как надо из консоли, но не работает при вызове из браузера с твоей машины ? Не знаю, ну попробуй вызвать из браузера только сервера А(тыж vnc используешь). Не знаю правда что это даст.
Всем спасибо. Решили проблему разрешением интернет-соединения внутри сети Код (PHP): setsebool -P httpd_can_network_connect 1