[Troubleshooting Postmortem] Proxy nesting totally threw me off: the node machine kept sending weird requests, and my local machine could barely connect to any nodes

This time was really bizarre. I basically wasted an entire night, and only at the end did I realize the problem wasn’t with the node itself at all, but that my local proxy had become “nested.”

The symptoms were very strange at first:

  • The node owner came to ask me what was going on, saying the backend had been receiving continuous weird requests.
  • On my side, my machine could barely connect to any nodes.
  • Even stranger: no matter how I changed my local proxy configuration, the node machine could still continuously see those kinds of repeated requests.

At the beginning I suspected a lot of possibilities, such as:

  • The node itself crashed
  • The subscription content was wrong
  • The rules were written incorrectly
  • DNS or the system proxy hadn’t been fully switched/cleared
  • Some program was疯狂 retrying in the background

In the end, after narrowing it down, the core issue turned out to be proxy loopback / nested proxying.

More specifically, at that time my machine wasn’t running just one mihomo, but two at the same time:

  • One was the mihomo normally launched by the current Sparkle
  • The other was an old leftover orphan process

So the traffic path became extremely weird, like it was “short-circuiting” and looping locally:

  • I changed the local config, but the one actually taking over the traffic might not have been the core instance I thought it was
  • Some requests would get forwarded repeatedly and hit repeatedly, and in the end on the node machine it looked like continuous weird requests
  • Meanwhile my own machine would instead behave like tons of nodes were unavailable—almost none could be reached

Only later did it dawn on me: this wasn’t simply “the node is broken,” but a local proxy wrapped inside a local proxy / a leftover core adding an extra layer.

After clearing out the old leftover process and then reopening Sparkle, the system returned to:

  • One Sparkle main process
  • One mihomo child process launched by it

And then everything was normal.

The lesson this time is very straightforward:

  1. When you see “weird continuous requests on the node side + almost all nodes unreachable locally,” don’t only suspect the remote end.
  2. First check how many proxy cores are running locally—especially something like mihomo—and whether there are leftover orphan processes.
  3. Once nesting or loopback happens, the symptoms look especially “mystical,” but in reality your local traffic path is already messed up.

If I run into something similar again, I think my first reaction should be to check:

  • How many mihomo processes are running
  • Which one is the parent process and which one is the orphan
  • Which instance is actually listening on 7890/7891/7892
  • Whether the system proxy has pointed back to itself again

Absurd, but at least it’s a lesson learned.