Am un plugin personalizat „client” wordpress care efectuează un apel cURL către o aplicație Node pe un server Ubuntu.
Apelul funcționează perfect de la fiecare instalare WP, cu excepția uneia în care totul a funcționat bine până ieri, apoi următorul apel cURL a început brusc să returneze un
Nu s-a putut conecta la portul x.x.x.x 3344 după 1040 ms: Conexiunea a fost refuzată.
$curl = curl_init();
curl_setopt_array($curl, matrice(
CURLOPT_URL => 'http://x.x.x.x/wpdata/get',
CURLOPT_PORT => 3344,
CURLOPT_RETURNTRANSFER => adevărat,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => adevărat,
CURLOPT_CUSTOMREQUEST => „POSTARE”,
CURLOPT_POSTFIELDS =>'{
"message" : "Câteva date SCURTE postări"
}',
CURLOPT_HTTPHEADER => matrice(
„Tip de conținut: aplicație/json”
),
));
if(! $rezultate = curl_exec($curl) ) {
die( curl_error($curl) );
}
Aplicația Node folosește Express, este gestionată de PM2 și rulează fără nginx sau Apache, clienții se conectează direct folosind apeluri IP:PORT.
Serverul care găzduiește aplicația Node este un server Ubuntu 18 pe o VM cu fail2ban 0.10, dar toate regulile sunt de fapt dezactivate (chiar dezactivarea fail2ban în sine nu rezolvă problema).
De asemenea, iptables -L -n nu arată nicio regulă care ar putea arăta ca o interdicție pentru IP-ul serverului eșuat și nici pentru portul de ascultare (la urma urmei, același plugin pe un client diferit dă rezultate corecte).
Atât /etc/hosts.deny, cât și /etc/hosts.allow sunt de asemenea goale.
Ne-am supărat după aceea, știe cineva unde aș putea să caut pentru a afla de ce acel singur client primește un răspuns Conexiune refuzată?