Time-out sur ping négatif

bonjour,
Merci pour ce plugin qui m’a toujours permis de faire ce que je voulais.

J’ai fais une commande info de sshmanager avec le code possiblement moisi suivant (je débute en ssh bash) :

gw="$(ip route show default | awk '/default/ {print $3}')";
if [ -n "$gw" ]; then 
ping -c 1 -W 1 "$gw" >/dev/null 2>&1 && echo 1 || echo 0
else echo Pas de passerelle;
fi

Le cas « pas de passerelle » est ok.

0012|[2025-11-15 12:17:10] DEBUG  : [Ssh-Routeur] >>>> Creating SSH2 client (pid: 1411774) for eqLogic 404 to 192.168.1.254
0013|[2025-11-15 12:17:13] DEBUG  : [Ssh-Routeur] >>>> SSH2 :: Connected and authenticated
0024|[2025-11-15 12:17:14] DEBUG  : [Ssh-Routeur] TEST ping tel-ap :: gw="$(ip route show default | awk '/default/ {print $3}')"; if [ -n "$gw" ]; then  ping -c 1 -W 1 "$gw" >/dev/null 2>&1 && echo 1||echo 0 else echo Pas de passerelle; fi
0025|[2025-11-15 12:17:14] DEBUG  : [Ssh-Routeur] TEST ping tel-ap Result :: Pas de passerelle

ainsi que le ping ok.

0048|[2025-11-15 12:20:04] DEBUG  : [Ssh-Routeur] >>>> Creating SSH2 client (pid: 1427513) for eqLogic 404 to 192.168.1.254
0072|[2025-11-15 12:20:08] DEBUG  : [Ssh-Routeur] >>>> SSH2 :: Connected and authenticated
0083|[2025-11-15 12:20:09] DEBUG  : [Ssh-Routeur] TEST ping tel-ap :: gw="$(ip route show default | awk '/default/ {print $3}')"; if [ -n "$gw" ]; then  ping -c 1 -W 1 "$gw" >/dev/null 2>&1 && echo 1||echo 0 else echo Pas de passerelle; fi
0084|[2025-11-15 12:20:09] DEBUG  : [Ssh-Routeur] TEST ping tel-ap Result :: 1

Edit : Ajout des logs du routeur concerné si ok

2025-11-15 16:17:08 dropbear[30077]: Child connection from 192.168.1.7:40296
2025-11-15 16:17:11 dropbear[30077]: Password auth succeeded for 'xxx' from 192.168.1.7:40296
2025-11-15 16:17:12 dropbear[30077]: User xxx executing 'gw="$(ip route show default | awk '/default/ {print $3}')"; if [ -n "$gw" ]; then  ping -c 1 -W 1 "$gw" >/dev/null 2>&1 && echo 1||echo 0 else echo Pas de passerelle; fi'
2025-11-15 16:17:12 dropbear[30077]: Exit (xxx): Disconnect received

Si le ping donne 0 le plugin se met en time-out.

0099|[2025-11-15 12:21:34] DEBUG  : [Ssh-Routeur] >>>> Creating SSH2 client (pid: 1316137) for eqLogic 404 to 192.168.1.254
0100|[2025-11-15 12:22:04] ERROR  : [Ssh-Routeur] SSH2 Login Exception :: Connection closed due to timeout
0101|[2025-11-15 12:22:05] ERROR  : [Ssh-Routeur][RefreshAllInfo] SSH Connection :: KO

Edit : Ajout des logs du routeur concerné si KO

2025-11-15 16:18:13 dropbear[31725]: Child connection from 192.168.1.7:36774
2025-11-15 16:18:43 dropbear[31725]: Exit before auth: Exited normally

Edit : Apparemment, il n’arrive rien sur le routeur.

Je n’ai pas réussi à trouver tout seul si le problème vient de mon code ou du plugin.
Pour contourner le souci, j’ai fait faire le même ping par le plugin script de Jeedom et cela marche.

Cordialement

sshmanager : Version stable 1.1.0
Jeedom Version : 4.4.20 Source : default Branche : master Système : Atlas

C’est quoi le besoin et le but ?

Pas convaincu que le okuhin soit fait pr ca

C’est pour récupérer l’adresse dynamique de mon téléphone qui sert de passerelle de secours vers Internet et pouvoir faire un ping dessus.
Cela donne des pages de ce genre là :
Routes, passerelles, interfaces de l’Atlas, Routeur et NAS

De ce que j’ai compris, le plugin fait du SSH et jusqu’à présent, j’ai à peu près pu faire ce que je voulais.

J’imagine que je pourrais faire la même chose avec SNMP, mais je connais moins.

Y a peut etre plus simple à faire…

Au lieu de récupérer un ip privée dynamique c’est de faire une reservation dhcp pour le tel qui aura toujours la meme ip sur ton réseau…

Oui, mais non… :slightly_smiling_face:

L’IP privée de mon tel est bien distribuée par DHCP avec réservation MAC par un routeur.

L’IP que je récupère est celle qu’Android affecte arbitrairement lors d’un partage de connexion (Point d’accès mobile wifi ou Ethernet). Dans les versions d’avant Android 12, l’IP était fixe (192.168.43.1),mais maintenant, Android utilise une adresse dynamique aléatoire qui change à chaque reboot du téléphone. C’est le téléphone qui fait passerelle vers Internet.

WAN ↔ Tel en modem Ethernet ↔ Routeur de secours ↔ LAN ↔ Jeedom

SshManager me permet aussi de piloter mon routeur.

Bonsoir,

J’avoue ne pas avoir tout compris sur le but de tout cela :confused: et notamment le lien entre le plugin SSH-Manager et le plugin script ? :

Dans le plugin sshmanager : la session SSH est ouverte vers quel équipement ??? (routeur de secours ?)
Dans le plugin script : comment faites vous pour ouvrir une session SSH distante ?

Il faudrait expliquer où vous cherchez à vous connecter (session ssh), car là dans les logs, fournies, on voit juste que le plugin tente de se connecter quelque part (ouvrir une session), mais que cela échoue : ce n’est pas la commande qui rentre en timeout, c’est la connexion SSH en elle-même.

TiTidom.

1 « J'aime »

Bonjour
Edit 16/11 16h51 :
Problème résolu. Ce n’est ni mon code, ni le plugin sshmanager mais mon routeur Asus DSL AC52U qui dans les deux cas ok, répond en 2s, et qui met 34s quand son interface WAN est up mais que le téléphone ne répond pas!

Solution : passer de 30s par défaut à 40s le time-out de sshmanager.
Fin d’Edit

Merci pour votre réactivité.

Pas de lien direct en production normale.
Je me suis servi du plugin script pour faire le ping qui ne marchait pas avec le plugin sshmanager vers le routeur de secours (192.168.1.254). Au début, j’ai pensé à une erreur de codage de ma part. Mon code qui ping tourne bien via le plugin script.

Avec sshmanager, j’arrive à tout récupérer (passerelle 192.168.65.84, sous réseau 192.168.65.0/24, interface routeur secours 192.168.65.82), j’ajoute sur l’Atlas la route vers 192.168.65.0/24 via 192.168.1.254 et je ping avec le plugin script.

C’est une solution qui « marche » au prix d’un « ip route add & remove » sur jeedom.
Ce serait mieux de faire le ping avec sshmanager directement sur le routeur de secours (192.168.1.254).

Oui. 192.168.1.254 sur le sous-réseau principal LAN.

Je n’en ouvre pas.
Je ping directement depuis l’Atlas Jeedom.
Cette partie fonctionne.

sshmanager connecté sur le routeur de secours 192.168.1.254.

J’en étais arrivé à la même conclusion sans en être sûr. Les logs du routeur et de sshmanager le confirment bien.

Reste donc la question : Pourquoi la connexion SSH rentre en time-out lorsque la commande retournera 0? et que pour 1 et Pas de passerelle, tout est ok? Un souci avec mon code?

Le commande qui marche avec le plugin script avec réponse 1 ou 0 :

ping -c 1 -W 1 #[Réseau][Ssh-Routeur][Ip Tel-ap]# >/dev/null 2>&1 && echo 1 || echo 0

Le commande qui empêche la connexion SSH si réponse 0 sur plugin sshmanager.

gw="$(ip route show default | awk '/default/ {print $3}')";
if [ -n "$gw" ]; then 
ping -c 1 -W 1 "$gw" >/dev/null 2>&1 && echo 1||echo 0
else echo Pas de passerelle;
fi

Pour mes premiers essais, j’avais tenté une commande

ping -c 1 -W 1 #[Réseau][Ssh-Routeur][Ip Tel-ap]# >/dev/null 2>&1 && echo 1||echo 0

mais le plugin ne résolvait pas #[Réseau][Ssh-Routeur][Ip Tel-ap]#.

Merci à vous
Steph

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.