[Postmortem de resolución de problemas] Un anidamiento de proxy me dejó confundido: la máquina de nodo hacía solicitudes raras continuamente y en mi máquina casi ningún nodo se conectaba

Esta vez fue realmente muy insólito: básicamente desperdicié toda una noche, y al final descubrí que el problema no estaba en el nodo en sí, sino en que el proxy local estaba “anidado”.

El síntoma al principio era muy raro:

  • El dueño de la máquina del nodo vino a preguntarme qué estaba pasando, diciendo que en el backend había estado recibiendo solicitudes extrañas continuas.
  • De mi lado, mi máquina local casi no podía conectarse a ningún nodo.
  • Lo más extraño es que, por más que cambiara la configuración de mi proxy local, en la máquina del nodo seguían viendo ese tipo de solicitudes continuas.

Al principio sospeché de muchas direcciones, por ejemplo:

  • El nodo en sí se rompió
  • El contenido de la suscripción tenía problemas
  • Las reglas estaban mal escritas
  • DNS o el proxy del sistema no se limpió del todo
  • Algún programa estaba reintentando locamente en segundo plano

Pero al final, tras ir descartando, el problema central en realidad era bucle de proxy / proxy anidado.

Más concretamente: en ese momento, en mi máquina no solo había un mihomo ejecutándose, sino dos a la vez:

  • Uno era el mihomo que Sparkle levantaba normalmente
  • El otro era un proceso huérfano antiguo residual

Así que la ruta del tráfico empezó a volverse muy extraña, como un “cortocircuito”, dando vueltas localmente una y otra vez:

  • Cambiabas la configuración local, pero quien realmente tomaba el control del tráfico no necesariamente era el core que tú creías
  • Algunas solicitudes se reenviaban repetidamente, se volvían a “acertar” repetidas veces, y al final en la máquina del nodo parecía una serie continua de solicitudes extrañas
  • En cambio, la propia máquina local se comportaba como si una gran cantidad de nodos no estuvieran disponibles, casi ninguno conectaba

Después caí en la cuenta: esto no era simplemente “el nodo está roto”, sino un proxy local sobre otro proxy local / un core residual apilado en una capa adicional.

Tras limpiar el proceso residual antiguo y volver a abrir Sparkle, el sistema volvió a quedar como:

  • Un proceso principal de Sparkle
  • Un proceso hijo mihomo levantado por él

Ahí ya funcionó con normalidad.

La lección de esta vez es muy directa:

  1. Cuando veas “en el lado del nodo hay solicitudes extrañas continuas + en local casi ningún nodo funciona”, no sospeches solo del remoto.
  2. Primero revisa cuántos core de proxy están corriendo en local, especialmente si algo como mihomo dejó procesos huérfanos residuales.
  3. Una vez que ocurre anidamiento o bucle, los síntomas se parecen mucho a “magia negra”; en realidad es que la ruta del tráfico local ya se desordenó.

Si en el futuro vuelvo a encontrar algo similar, creo que la primera reacción debería ser comprobar primero:

  • Cuántos mihomo están corriendo
  • Quién es el proceso padre y quién es el proceso huérfano
  • Qué instancia está realmente escuchando 7890/7891/7892
  • Si el proxy del sistema volvió a apuntar a sí mismo

Absurdo, pero al menos sirve para aprender.