Repository navigation
troubleshooting.ru
Warning
Машинный перевод, не проверенный носителем языка. Основным является английский текст.
Сначала запустите встроенную проверку окружения - она ловит большинство проблем:
lightspeed --checkОна проверяет: доступность перехватчика, инструменты фильтрации пакетов, разрешение профиля игры и связь с прокси.
CLI: В вашей ОС нет нужных инструментов фильтрации пакетов или вам не хватает прав.
| ОС | Требуется | Как исправить |
|---|---|---|
| Linux | nftables или iptables + root | sudo lightspeed ... |
| macOS | pfctl (встроен) + root | sudo lightspeed ... |
| Windows | драйвер WinDivert + Администратор | Правый щелчок → Запуск от имени администратора |
Проверьте так:
lightspeed --checkCLI: Перехватчик не может найти игровые пакеты в ожидаемом диапазоне портов.
- Убедитесь, что ваша игра подключена к серверу (не только в главном меню или лобби)
- Проверьте игру через
--scan-processes:lightspeed --scan-processes
- Попробуйте другой профиль игры или ручной режим сервера
GUI (Windows): Подождите 15 секунд. Если появился янтарный баннер "⚠ No game traffic seen":
- Откройте PowerShell с повышенными правами:
Get-NetUDPEndpoint -OwningProcess (Get-Process RustClient).Id | Where-Object LocalPort -gt 1024 | Select-Object LocalPort
- Используйте показанный порт в Advanced → set server manually
Детектор не увидел 3 пакета в один и тот же адрес в пределах 1.5 секунд.
- Убедитесь, что подключены к игровому серверу (подвигайте персонажем, чтобы создать трафик)
- Если пакеты все еще не определяются через 15 секунд, ваш сервер на нестандартном порту - используйте ручной режим сервера
- Остановите и перезапустите перехватчик после подключения к серверу
Пакеты доходят до прокси, но ответы не доходят до игры. Обычно это проблема файрвола.
Linux:
sudo iptables -I INPUT -p udp --sport 4434 -j ACCEPTmacOS:
sudo pfctl -d # Временно отключить pf для проверкиWindows:
# Проверить, существует ли правило файрвола
netsh advfirewall firewall show rule name="LightSpeed WinDivert Tunnel"
# Добавить его вручную, если его нет
netsh advfirewall firewall add rule name="LightSpeed" protocol=UDP dir=in action=allow program="C:\path\to\lightspeed-gui.exe"# Проверить связь
curl http://YOUR_PROXY_IP:8080/health
# Ожидаемый ответ:
# {"status":"ok","node_id":"relay-1","uptime_secs":86400,...}Если недоступен:
- Проверьте, что прокси запущен:
systemctl status lightspeed-proxy - Проверьте, что файрвол разрешает UDP 4434 и TCP 8080
- Проверьте журналы прокси:
journalctl -u lightspeed-proxy --tail 50
Перехватчик забирает пакеты прежде, чем игра успевает получить ответы, и путь инъекции не срабатывает.
Windows:
- Убедитесь, что
WinDivert64.sysиWinDivert.dllлежат рядом с.exe - Отключите вторичные сетевые адаптеры (виртуальные адаптеры Docker, VMware, Hamachi)
- Подключитесь к игровому серверу до запуска перехватчика
Linux:
- Проверьте правила nftables:
sudo nft list ruleset | grep lightspeed - Если правила устарели:
sudo lightspeed --checkдля диагностики
WinDivert регистрирует WFP-callout/фильтр для каждого открытого дескриптора. Если дескриптор никогда не закрывается, это состояние фильтра остается, и следующий WinDivertOpen падает с FWP_E_IN_USE (0x8032000A), даже если ни один процесс явно не использует WinDivert.
Свежие сборки LightSpeed закрывают оба дескриптора, захвата и инъекции, на каждом штатном пути завершения, включая Ctrl+C в --watch и --start-interceptor и Quit в GUI, а цикл приема разблокируется через WinDivertShutdown перед закрытием, так что завершение детерминировано. Жесткое убийство (taskkill /f, падение или закрытие окна консоли) все еще может оставить драйвер WinDivert 2.2.x с устаревшим состоянием; это ограничение драйвера на стороне вышестоящего проекта (basil00/WinDivert#294, #406), которое пользовательский код не может очистить после исчезновения процесса.
Если вы все еще с ним столкнулись:
- Завершите аккуратно и подождите немного: используйте Ctrl+C в CLI или Quit в GUI, затем дайте дескрипторам секунду-другую на закрытие, прежде чем запускать заново.
-
Остановите службу WinDivert (в некоторых случаях избавляет от перезагрузки; учтите, драйвер общий с любым другим приложением на базе WinDivert на машине):
sc stop windivert
- Полное выключение, а не перезагрузка: "Перезагрузка" в Windows может переиспользовать сессию ядра, которая держит устаревшее состояние; полное Выключение → включение питания его очищает.
Совет: На v1.2.2 и более ранних отдельный баг (аутентификация плоскости данных отклоняла все пакеты, issue #59) замораживал соединение и заставлял пользователей раз за разом убивать клиент, что и вызывало большинство сообщений о
FWP_E_IN_USE. Этот баг аутентификации исправлен в v1.2.3.
Это относится к приложению lightspeed-gui в Windows.
В версиях до v1.4.2 выбор Quit в меню трея мог оставить процесс работать в фоне (зомби), так что окно закрывалось, но движок продолжал работать, и следующий запуск вел себя странно. v1.4.2 это исправляет: теперь Quit завершает процесс аккуратно.
Если у вас старая сборка и процесс завис, завершите его вручную:
Get-Process lightspeed-gui -ErrorAction SilentlyContinue | Stop-ProcessЗатем обновитесь до v1.4.2 или новее.
В версиях до v1.4.2 двойной запуск GUI открывал второе окно и второй движок. Теперь GUI держит защиту от второго экземпляра: повторный запуск показывает короткое уведомление "LightSpeed is already running" и завершается вместо старта еще одного движка. Чтобы все же принудительно открыть второй экземпляр (для диагностики), передайте --force или задайте LIGHTSPEED_GUI_FORCE=1.
GUI находит общественные релеи через подписанный реестр. Если список релеев остается пустым:
- Убедитесь, что у вас есть доступ в интернет и что файрвол или VPN не блокирует исходящий HTTPS к реестру.
- Проверьте журнал GUI (см. ниже) на ошибку загрузки реестра или проверки подписи.
- В сборке CLI выполните
lightspeed-client --probe-proxies, чтобы увидеть отчет об обнаружении и прощупывании напрямую. Если CLI тоже ничего не находит, проблема на стороне сети, а не в GUI. - Перезапустите GUI после исправления связи; обнаружение выполняется при запуске.
GUI пишет журнал трассировки в:
%LOCALAPPDATA%\Lightspeed\gui-trace.log
Вставьте этот путь в адресную строку Проводника, чтобы открыть папку, затем откройте gui-trace.log в любом текстовом редакторе. Приложите его к отчету об ошибке.
Строка вида Heartbeat 0 in означает, что движок отправил ноль keepalive-сердцебиений в текущем окне. На практике она появляется, когда клиент еще не установил рабочее соединение с плоскостью управления, так что сердцебиения не уходили. Частые причины:
- Клиент еще не зарегистрировался на релее (проверьте строку регистрации в окне статуса).
- Выбранный релей недоступен.
- Перехватчик не запущен, так что активной сессии нет.
Как только регистрация пройдет и сердцебиения начнут идти, счетчик растет. Если он остается на 0, хотя релей показывает здоровый статус, выполните lightspeed-client --test-control, чтобы выяснить, доступна ли плоскость управления.
Запустите с отладочным журналированием, чтобы собрать подробную диагностику:
# CLI
RUST_LOG=debug lightspeed --start-interceptor --game rust --proxy YOUR_PROXY:4434 2>&1 | tee lightspeed.log
# Windows GUI
cd C:\path\to\lightspeed
lightspeed-gui.exe 2>&1 | tee lightspeed-log.txtПриложите файл журнала к вашему issue на GitHub.
- Частые вопросы - популярные вопросы
- GitHub Issues - поиск по существующим сообщениям
- Откройте новое issue с вашей ОС, игрой и выводом журнала