Cette fois, c’était vraiment étrange : j’ai pratiquement perdu une nuit entière, et au final j’ai découvert que le problème n’était pas du tout le nœud en lui-même, mais que le proxy local était « imbriqué ».
Le phénomène était très bizarre au début :
- Le propriétaire de la machine du nœud est venu me demander ce qui se passait, en disant que le backend recevait en continu des requêtes étranges.
- De mon côté, ma machine locale n’arrivait presque à se connecter à aucun nœud.
- Plus inquiétant encore : peu importe comment je modifiais la configuration de mon proxy local, la machine du nœud continuait à voir ce genre de requêtes continues.
Au départ, j’ai soupçonné beaucoup de pistes, par exemple :
- Le nœud lui-même a explosé
- Le contenu de l’abonnement a un problème
- Les règles sont mal écrites
- Le DNS ou le proxy système n’a pas été complètement désactivé
- Un programme en arrière-plan réessaie frénétiquement
Résultat, après avoir tout écarté, le problème central était en réalité une boucle de proxy / proxy imbriqué.
Plus précisément, à ce moment-là, il n’y avait pas qu’un seul mihomo qui tournait sur ma machine : il y en avait deux en même temps :
- L’un était le
mihomolancé normalement par Sparkle - L’autre était un ancien processus orphelin résiduel
Du coup, le chemin du trafic est devenu extrêmement étrange, comme un « court-circuit » qui tournait en rond en local :
- J’ai modifié la configuration locale, mais l’instance du core qui prenait réellement le contrôle du trafic n’était pas forcément celle que je croyais
- Certaines requêtes étaient relayées plusieurs fois, retombaient plusieurs fois, et au final, côté machine du nœud, ça ressemblait à des requêtes continues bizarres
- Ma machine locale, au contraire, se comportait comme si un grand nombre de nœuds étaient indisponibles, quasiment impossible de se connecter à la plupart
Ce n’est qu’après que j’ai eu un déclic : ce n’était pas simplement « le nœud est mort », mais un proxy local par-dessus un proxy local / un core résiduel empilé en plus.
Après avoir supprimé l’ancien processus résiduel, puis relancé Sparkle, le système est revenu à :
- un processus principal Sparkle
- un sous-processus
mihomolancé par celui-ci
Et là, c’était redevenu normal.
La leçon est très directe :
- Quand vous voyez « côté nœud des requêtes continues étranges + en local presque tous les nœuds ne passent pas », ne suspectez pas uniquement le distant.
- Vérifiez d’abord combien de core proxy tournent en local, surtout pour
mihomo: y a-t-il des processus orphelins résiduels ? - Dès qu’il y a imbrication ou boucle, les symptômes ressemblent fortement à de la “magie noire”, alors qu’en réalité le chemin du trafic local est déjà en vrac.
Si je retombe sur un cas similaire à l’avenir, je pense que mon premier réflexe devra être de vérifier :
- Combien de
mihomotournent - Qui est le processus parent, qui est le processus orphelin
- Quelle instance écoute réellement
7890/7891/7892 - Si le proxy système ne pointe pas à nouveau vers lui-même
Absurde, mais au moins ça m’a servi de leçon.