Обновить
32K+
55
Игорь@PrincePerciaread⁠-⁠only

Пользователь

26
Подписчики
Отправить сообщение

Gemini «не доступен в вашем регионе»? Полный гайд по обходу блокировок нейронки в 2026 году: DNS, IPv6

Время на прочтение2 мин
Охват и читатели133K

Google Gemini окончательно перестала заводиться через «просто VPN». Ты можешь поднять VLESS с самым чистым IP в Нидерландах, но нейронка всё равно выдаст заглушку.

Я собрал все советы которые смог выяснить, которая оживляет Gemini даже на самых проблемных провайдерах

Читать далее

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

Время на прочтение3 мин
Охват и читатели13K

Вы подняли свой прокси-сервер, настроили навороченный 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 секунд:

Читать далее

Ядро Linux: Реально ли это просто программа?

Время на прочтение3 мин
Охват и читатели29K

Привет всем!

В большинстве книг по Linux, ядро — это такая священная корова или, как говорят, "черный ящик". Мы работаем в командной строке, юзаем утилиты, а где-то там, за занавесом, этот ящик творит чудеса, чтобы всё работало.

Я решил сам разобраться и доказать: ядро Linux — это просто исполняемый файл. Никакой магии. Его можно взять, скомпилировать (или просто скопировать) и запустить, как любой другой бинарник.

Сейчас мы проделаем пару простых но крутых экспериментов. Цель не столько повторить их, сколько построить в голове четкую картину, как вообще Linux устроен и как его компоненты общаются.

Но сперва — а что это вообще за ядро?

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фронтенд разработчик
SQL
Английский язык
Базы данных
PHP