Исходящее соединение с определенным портом блокируется?

#php #node.js #curl

#php #node.js #curl

Вопрос:

Я купил сервер Linux у Godaddy. Я протестировал подключение и получение ответа от удаленного сервера, но он говорит, что CURL не удался. Кроме того, он также не работает в приложении узла.

Вот код PHP :

 <?php 
$url = 'http://dev.api/pay';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, "<xml>here</xml>" );

curl_setopt($ch, CURLOPT_PORT, '9085');

$result = curl_exec($ch);
$output = curl_getinfo($ch);

echo "<pre>";
var_dump($output);
echo "</pre>";

curl_close($ch);

var_dump($result);

  

. На самом деле этот код работает на localhost , но он не работает при доступе с сервера. Если исходящее соединение блокируется брандмауэром сервера, который я арендовал, как я могу отключить его или разрешить использовать только тот порт, который я намеревался использовать?

Комментарии:

1. Вы пытаетесь подключиться к нему через порт 8075, попробуйте использовать порт 80.

2. Нет, вы не поняли. Удаленный сервер — это API, который обслуживается на порту 8075

3. я думаю, вам следует спросить у unix.stackexchange.com вместо этого — но что вы получаете от sudo iptables -S этого ? (кстати, iirc, в отличие от их серий веб-хостинга, выделенные серверы godaddy переоценены, но это не мое дело)

Ответ №1:

У вас есть root-доступ? если это так, используйте iptables для удаления блокировки исходящего соединения.

Если у вас нет доступа root, ваш хост просто не разрешает исходящие соединения, и вы ничего не можете с этим поделать.

Комментарии:

1. Да, вы правы . Поскольку это общий хостинг, это невозможно сделать, поскольку для этого требуется root-доступ . Спасибо!