Essaye ça
iptables -A INPUT -i eth0 -p tcp --dport 3000
A personnaliser si ton interface réseau n'est pas eth0
Bonjour tout le monde,
ça fait un moment que je travaille sur un site web pour un client et ma dernière mission était d'implementer une fonctionnalité realtime donc j'ai fait appel à NodeJS/Socket.IO.
En locale tout fonctionne à merveille, les clients se connectent et communiquent avec le serveur. Sur le serveur de production c'est different, le client est incappable de contacter le serveur.
Pour tester la connection j'ai créer un simple serveur socket:
Et sur ma page web j'ai inclut Socket.io et et j'utilise ça pour tester la connection:
Mais, bien évidemment ça ne fonctionne pas -> Je dois ouvrir les ports de mon serveur;
En utilisant iptables j'ai essayer d'ouvrir le port 3000 mais rien n'y fais, il reste fermer. (J'ai essayer avec d'autre ports, par exemple 2424 mais le problème persiste)
Voici le resultat de iptables -L --line-numbers (voir INPUT ligne 5 et OUTPUT ligne 1)
En utilisant un client en locale (sur la machine de prod); la socket se connecte sans soucis.
Je ne comprends pas comment faire j'espère que vous pourrez m'aider et merci d'avance.
PS: Le site est en HTTPS (les ports 80,443 et sont donc déjà utilisé par apache)
PS2: J'ai fait un coup de /etc/init.d/networking restart sans succès
Essaye ça
iptables -A INPUT -i eth0 -p tcp --dport 3000
A personnaliser si ton interface réseau n'est pas eth0
J'ai du mal à determiner l'interface de mon reseau; j'utilise google cloud. J'ai finalement reglé mon problème en créeant un second "Compute Engine" (+- un vps) et l'associé a un sous-domaine. Sur ce Compute Engine j'ai lancé le serveur socket sur le port 80. Le problème est reglé =)
Merci beaucoup pour ton aide jeanMat !
sous un distrib de type debian, un simple "ifconfig" te permetra de connaître le nom de ton interface réseau