[Разбор устранения неполадок] Вложенный прокси меня окончательно запутал: на узловой машине — непрерывные странные запросы, а у меня почти ни один узел не подключается

На этот раз всё было очень странно: по сути я впустую потратил целую ночь, и только под конец выяснилось, что проблема вообще не в самих узлах, а в том, что локальный прокси «вложился сам в себя».

Симптомы поначалу были очень чудные:

  • Владелец серверного узла пришёл спросить, что вообще происходит, потому что на бэкенде постоянно идут непрерывные странные запросы.
  • У меня на машине почти не подключался ни один узел.
  • Ещё более странно то, что как бы я ни менял локальную конфигурацию прокси, на стороне узла всё равно продолжали видеть такие непрерывные запросы.

Сначала я подозревал кучу направлений, например:

  • сам узел «умер»
  • проблема в содержимом подписки
  • неправильно написаны правила
  • DNS или системный прокси переключились не до конца
  • какая-то программа в фоне бешено ретраит

В итоге после разборов выяснилось, что ключевая проблема — это прокси-луп / вложенный прокси.

Если чуть конкретнее: на локальной машине в тот момент работал не один mihomo, а сразу два:

  • один — текущий mihomo, нормально поднятый Sparkle
  • второй — старый оставшийся «сиротский» процесс

Из-за этого путь трафика стал очень странным, как будто «короткое замыкание» — он начинал крутиться локально туда-сюда:

  • локальную конфигурацию ты поменял, но трафик перехватывает не обязательно тот core, который ты думаешь
  • некоторые запросы начинают повторно форвардиться, повторно матчиться, и в итоге на стороне узла это выглядит как непрерывные странные запросы
  • а сама машина при этом проявляет себя как «массово недоступные узлы», почти ничего не коннектится

Только потом до меня дошло: это не просто «узел сломался», а локальный прокси поверх локального прокси / остаточный core добавил ещё один слой.

После того как я почистил старый остаточный процесс и заново открыл Sparkle, в системе вернулось к норме:

  • один главный процесс Sparkle
  • один дочерний процесс mihomo, поднятый им

И всё стало нормально.

Урок из этого прямой:

  1. Когда видишь «на стороне узла странные непрерывные запросы + на локальной машине почти все узлы не работают», не стоит подозревать только удалённую сторону.
  2. Сначала проверь, сколько proxy core реально запущено на локальной машине, особенно для mihomo — нет ли остаточных сиротских процессов.
  3. Как только возникает вложенность или луп, симптомы будут очень «магическими», а на деле это просто локальный путь трафика уже развалился.

Если в будущем снова встречу похожее, думаю, первой реакцией должно быть — сначала проверить:

  • сколько mihomo запущено
  • кто родительский процесс, а кто сирота
  • какой экземпляр реально слушает 7890/7891/7892
  • не указывает ли системный прокси снова на самого себя

Дико, но зато запомнил надолго.