Добавить новость
103news.com
Все новости
Январь
2026
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
22
23
24
25
26
27
28
29
30
31

VPN на Go засыпает вместе со смартфоном: дебажим таймеры, Android и CLOCK_BOOTTIME

0

Вы подняли свой прокси-сервер, настроили навороченный sing-box на Android, всё летает, 4K видео грузится мгновенно. Но стоит положить телефон в карман на пять минут и магия исчезает. Соединение залипает, SSH-сессии рвутся, а WhatsApp-звонки превращаются в тишину

Как только вы включаете экран сеть оживает. Казалось бы, типичный агрессивный энергосберегатор Android, но всё гораздо глубже. Я обнаружил там проблему на стыке рантайма Go, логики ядра Linux

Улика №1: conntrack и чистка сети

Первое, что бросается в глаза при анализе логов это странное поведение системы при событиях Pause и Wake. В Android-клиенте sing-box при выключении экрана срабатывает механизм приостановки

DEBUG inbound/hysteria2[hy2-in]: connection failed: timeout: no recent network activity
panic: runtime error: index out of range [0] with length 0
goroutine 615 [running]:
github.com/sagernet/sing/common/bufio.(*SyscallVectorisedWriter).WriteVectorised(...)


В современных сборках sing-box включен флаг with_conntrack. Когда Android сообщает приложению, что пора уходить в спячку (Pause), срабатывает метод ResetNetwork(). Внутри он вызывает conntrack.Close()

Разработчики хотели как лучше: очистить таблицу состояний, чтобы при смене сети (например, переход с Wi-Fi на LTE) не оставалось мертвых записей.
К чему это приводит? На мобилке это буквально рубит все активные TCP-сессии при каждом засыпании экрана. Если ваше приложение не умеет мгновенно переподнимать сессию, вы получаете обрыв

Улика №2: Проблема замершего времени

Почему WireGuard в официальном приложении работает стабильно, а в Go-клиентах (вроде sing-box или других форков) постоянно отваливается?

Всё дело в том, как Go считает время. По умолчанию рантайм Go для всех таймеров и time.Sleep использует системные часы CLOCK_MONOTONIC

В режиме глубокого сна на Android часы CLOCK_MONOTONIC останавливаются

Если вы настроили WireGuard на отправку keepalive каждые 20 секунд:

Читать далее






Губернаторы России





Губернаторы России

103news.net – это самые свежие новости из регионов и со всего мира в прямом эфире 24 часа в сутки 7 дней в неделю на всех языках мира без цензуры и предвзятости редактора. Не новости делают нас, а мы – делаем новости. Наши новости опубликованы живыми людьми в формате онлайн. Вы всегда можете добавить свои новости сиюминутно – здесь и прочитать их тут же и – сейчас в России, в Украине и в мире по темам в режиме 24/7 ежесекундно. А теперь ещё - регионы, Крым, Москва и Россия.

Moscow.media


103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости




Спорт в России и мире



Новости Крыма на Sevpoisk.ru




Частные объявления в Вашем городе, в Вашем регионе и в России