@accountnujen

Как выяснить, по какой причине curl соединение с сервером может длиться более 30 секунд?

Есть VPS сервер (ubuntu) и ip-камера с белым адресом. Сервер каждые 10 минут делает запросы на камеру на проверку новых видео. Одна проверка включает в себя 6 запросов (проверка доступности ip, получение токена, установка параметров, полученные данных, остановка токена, удаление токена).
curl запрос выглядит вот так:
curl_setopt_array($ch, [CURLOPT_USERPWD => 'admin:admin', 
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 500,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPAUTH=>CURLAUTH_ANY
]);

Сегодня по неизвестной мне причине причине начал получать ошибку Connection timed out after 10001 milliseconds. Ошибка возникает на любом из 6 этапов.
Для эксперимента запустил цикл со 100 такими запросами. 49 были с ошибкой.

Увеличил значение CONNECTTIMEOUT до 30, но это никак не повлияло положительно. Теперь я стал получать ошибки Connection timed out after 30001 milliseconds.

Тег linux, потому что я предполагаю, что проблема на стороне сервера, так как если выполнять эти же запросы с домашнего ПК, то на 100 запросов будет 0 ошибок. Камера не находится в одной локальной сети в ПК. ОДНАКО, если на домашнем ПК включить VPN с ip моего сервера, то будут те же самые ошибки. То есть явно что-то не так с сервером.

Ростелеком (провайдер камеры) говорит, что ни в чём не виноват и это проблема у меня.

Подскажите, как можно выяснить причину длительного соединения?

Вот что возвращает tcpdump
https://pastebin.com/QGsEJDLw

Я запустил 10 curl запросов на морду. Из них 2 были с ошибкой (более 10 секунд обрабатывались)
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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