Alexa-API - Problème de connexion - Recv failure: Connection reset by peer

Bonjour Je rencontre actuellement un souci avec le plugin

Voici le log d’erreur

Echec de la requête HTTP : http://10.0.0.20:3456/routine?routine=&device=G0913L0592420GN8 cURL error : Recv failure: Connection reset by peer

Je pense à un soucis de routage réseau. Mais je souhaites avoir un autre avis.

Voici ma configuration

Jeedom en conteneur Docker sous WSL2 en mode natif (Sans Docker for desktop)

Auparavant, j’était sous Docker / WSL avec Docker for Desktop. Cette configuration fonctionnait parfaitement. D’où mes soupçons sur les soucis de réseau (Hyper-V)

NodeJs est Ok - Le daemon est bon
La config Réseau Jeedom est Ok
Reset du cookies - Cookie Ok
Routage hyper sur le port 3456 Ok
Les appareils sont ok

netsh interface portproxy add v4tov4 listenport=3456 listenaddress=0.0.0.0 connectport=3456 connectaddress=172.31.207.34 (Adresse de la VM Hyper-V servant d'hôte à Docker)

netsh interface portproxy show all
Écouter sur ipv4 :             Connecter à ipv4 :

Adresse         Port        Adresse         Port
--------------- ----------  --------------- ----------
0.0.0.0         3456        172.31.207.34   3456

Test avec telnet 10.0.0.20 3456 OK

Du coup je me demande si nodejs a besoin d’un autre port de mappage a configurer.

Merci beaucoup.

Bonjour,

Alors le plug-in se connecte à ton ip interne (celle que tu as configuré dans la config jeedom) ensuite niveau port c’est en effet celui la pour le demon, donc jeedom → demon mais aussi demon → jeedom qui utilise le port configuré aussi dans l’ip interne.

Ensuite il y a aussi le proxy qui est lancé pour capturer le cookie et puis stoppé. Toujours sur l’iP interne et Sur 3457 de mémoire et lui redirige vers internet. Je ne pense pas que ce proxy communique → jeedom de mémoire. Mais ton browser doit y accéder par contre.

Super,

Merci pour l’info, mon 3457 n’est pas routé. Je vais tester le routage.
:slight_smile:

Echec de la tentative
Port Ouvert, routage ok, telnet Ok. Erreur de connexion

Mais merci en tout cas :slight_smile:
Je continue les investigations

P.S : La trace du curl

== Info: Expire in 0 ms for 6 (transfer 0x561478774f50)
== Info:   Trying 10.0.0.20...
== Info: TCP_NODELAY set
== Info: Expire in 200 ms for 4 (transfer 0x561478774f50)
== Info: Connected to 10.0.0.20 (10.0.0.20) port 3456 (#0)
=> Send header, 103 bytes (0x67)
0000: GET /updateallalarms?truc=vide HTTP/1.1
0029: Host: 10.0.0.20:3456
003f: User-Agent: curl/7.64.0
0058: Accept: */*
0065:
== Info: Recv failure: Connection reset by peer
== Info: Closing connection 0

Oui il n’est pas ouvert en permanence comme je disais, uniquement quand tu fais la procédure de récupération du cookie dans la configuration du plugin

Tout a fait, Cependant je dois l’autoriser pour le transit via Hyper-V :slight_smile:

Par contre le 3457, si j’en crois tcpdump, il est utilisé à chaque commande lancée également, pas uniquement pour la récupération du cookie.

Mais je vois bien les reset à ce moment là

Windows Terminal

Le Start
01:29:29.690681 IP XXXX.mshome.net.56084 > e7bbec50453f.3457: **Flags [S]**, seq 461083169, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

Le Reset, immédiat
01:29:29.690697 IP e7bbec50453f.3457 > XXXX.mshome.net.56084: **Flags [R.]**, seq 0, ack 461083170, win 0, length 0

Mmm non, le serveur proxy est stoppé à la fin de la procédure cookie, fait un netstat -anob il est plus sensé être listen

1 « J'aime »

Eh ben, voilà…

Ton message m’a interpellé du coup !!! Et je m’aperçois qu’il faudrait que je fasse plus attention parfois
Problème dans la configuration de ma stack Docker

port :

  • 3456:3457
  • 3457:3457

Forcément si j’expose pas les ports comme il faut, ça marchera moins bien.
Du coup, je vois bien le comportement normal. le 3457 n’est pas sollicité au lancement de commande :slight_smile:
En tout cas, merci pour l’échange. Cela m’a permis de déceler mon erreur.

En te souhaitant une bonne soirée (ou plutôt une bonne nuit pour toi je suppose).

Donc, pour rappel. Pour ceux qui sont intéressé d’avoir une configuration Docker /WLS2 (Sans Docker CE for desktop car top lourd) ou autre alternatives (style podman), ne pas oublié de mapper les ports 3456 ET 3457 sous powershell

netsh interface portproxy add v4tov4 listenport=3457 listenaddress=0.0.0.0 connectport=3457 connectaddress=${AdresseHyperV}

netsh interface portproxy add v4tov4 listenport=3457 listenaddress=0.0.0.0 connectport=3457 connectaddress=${AdresseHyperV}

Verfication :

netsh interface portproxy show all
Écouter sur ipv4 :             Connecter à ipv4 :

Adresse         Port        Adresse         Port
--------------- ----------  --------------- ----------
0.0.0.0         3456        AdresseHyperV   3456
0.0.0.0         3457        AdresseHyperV   3457

Ne pas oublier de l’adresse Hyper-V change a chaque démarrage de Windows, donc un petit script PS avec les droits élevé s’impose :slight_smile:

A noter, si vous débuter dans Docker (Sans Docker CE Edge) et autre logiciel de conteneurisation sous WLS2, il vous faudra mapper les ports 80, 443, et ceux des services dont vous avez besoin.

Pour tout conseils, n’hésitez pas à me contacter

Merci pour tes conseils.

Attention que de plus en plus de plugins requièrent docker d’être en mode host pour pouvoir faire du broadcast et/ou multicast ! (Ou mode macvlan probablement)

Tout a fait. Je suis en train de regarder cela pour palier au problème.

Pour ma part, j’utilise pas trop d’appareil nécessitant du Broadcast/Multicast. Mais au boulot j’ai initié un débat sur le multicast over docker. On va réfléchir à cela. Je suis dans un société de conseil en DevOps avec des experts certifiés Docker, Kubernetes etc… Pour ma part je suis certifié GCP, donc voir je regarde si, par le biais de IOT core, on peux pas arrivé a quelque chose. A plusieurs on devrait trouver quelque chose je pense xD).

D’ailleurs si des personnes cherchent des Conseils sur GCP, pas de soucis. Contactez moi.
Pour ma part, je gère mes sauvegardes (automatiquement) sur un Bucket GCP (5Go par mois gratuit en « Always Free Tier », je peux garder 1 mois de backup gratuit, et suppression automatique des > 30 jours) ainsi que d’autres données liées à la domotique et jeedom.
Actuellement je suis sur IOPT Core <==> Mqtt (et je regarde justement pour le multicast via ces services)

1 « J'aime »