Am o aplicație PHP care încearcă să deschidă o conexiune socket la o imprimantă prin routerul meu.
Câteva lucruri de remarcat - abilitățile mele de rețea lipsesc, așa că s-ar putea să-mi lipsească ceva evident sau acest lucru s-ar putea să nu fie posibil chiar așa cum vreau să fie. Acestea fiind spuse, am căutat o mulțime de probleme și nu pot găsi pe nimeni cu această problemă exactă (doar o mulțime de oameni care încearcă să facă SSH de la distanță). De asemenea, știu că dispozitivul la care încerc să mă conectez funcționează conform intenției, deoarece am o aplicație nodejs mică care deschide cu succes o conexiune la el în rețeaua locală. Și, în sfârșit, folosesc Docker pentru a rula aplicația PHP la nivel local, ceea ce poate fi relevant pentru problema mea (deși știu că conexiunea ajunge la router din cauza jurnalelor).
Codul este simplu:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_TCP, SO_DEBUG, 1);
$server_connect = socket_connect($socket, "router_public_ip", 9100);
În routerul meu am configurat acel port pentru a fi redirecționat:
Când încerc să conectez PHP aruncă socket_connect(): imposibil de conectat [111]: Conexiune refuzată
iar jurnalele routerului arată că o conexiune a eșuat.
Am observat în jurnalele routerului că portul de pornire este aleatoriu și am încercat să-mi schimb configurația de redirecționare a portului la:
Acest lucru îmi dă același rezultat și routerul meu nu îmi oferă prea multe informații pentru a continua (de ce a eșuat conexiunea, a fost blocată?). Acesta este tot ce este afișat în jurnalele:
Editați | ×:
Meniul utilitarului de configurare a imprimantei nu pare să menționeze nimic despre un firewall sau conexiuni la distanță.