AXIS VPN AXISVPN
Русский
Скачать
Главная → Блог

Что нового и как это устроено

Записи о выпусках и разборы технических решений: почему российские сайты ломаются под VPN и зачем Kill Switch оставляет одну дырку в брандмауэре.

Версия 2.2.0

Исправлено: sing-box не поднимал туннель без wintun.dll. Задержка меряется TCP-подключением вместо ICMP. Убрана вторая рамка окна, добавлен значок в трее. Kill Switch и журнал движка.

Про wintun.dll. Это была самая неприятная ошибка выпуска: движок запускался, писал в журнал, что всё хорошо, и молча не создавал сетевой адаптер. В отличие от wireguard.exe, который держит драйвер внутри себя, sing-box рассчитывает найти библиотеку рядом. Теперь она входит в установщик.

Про пинг. Раньше задержка мерялась по ICMP, и на большинстве VLESS-серверов колонка показывала «нет ответа» — хотя серверы работали. ICMP на них отключён намеренно. Теперь меряется время установки TCP-соединения с портом сервера, а прочерк показывается только когда не отвечает и он.

Почему под VPN перестают работать Госуслуги — и что с этим делать

Российские сервисы отказывают не потому, что «видят VPN», а потому что видят зарубежный адрес. Решение — не пускать через него тот трафик, которому туда не надо.

Госуслуги, банки, маркетплейсы и большинство государственных порталов проверяют географию адреса. Как только весь трафик уходит в туннель, сайт видит адрес нидерландского дата-центра и закрывается — независимо от того, какой протокол вы используете.

Раздельная маршрутизация. Клиент держит локальные списки geosite-ru и geoip-ru: первый — перечень российских доменов, второй — диапазоны адресов. Трафик, попадающий под эти списки, идёт напрямую через провайдера, всё остальное — через туннель. Сайт видит обычный российский адрес и работает как всегда.

Одного списка адресов мало. Домены приходится разбирать отдельно, потому что решение о маршруте нужно принять до того, как соединение установлено. И DNS для российских доменов резолвится локально: иначе запрос ушёл бы через туннель, вернул адрес ближайшего к серверу CDN, и сайт отказал бы уже по нему.

Почему списки лежат в установщике. Их можно было бы скачивать при подключении, но тогда при недоступном источнике туннель просто не поднялся бы — ровно в тот момент, когда он нужнее всего. Списки обновляются вместе с приложением.

Kill Switch: зачем он оставляет одну дырку в брандмауэре

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

Туннель может оборваться незаметно: сменилась сеть, уснул ноутбук, сервер перезагрузился. Приложение это заметит через несколько секунд, а браузер отправит запрос в первую же миллисекунду — напрямую, с настоящим адресом.

Как сделано. Kill Switch — это правила брандмауэра Windows: запрет всего исходящего трафика плюс одно разрешающее правило для процесса движка. Без этого исключения машина после обрыва осталась бы без сети совсем: переподключиться было бы нечем, и чинить пришлось бы вручную.

Когда правила снимаются. При отключении по вашей команде, при выходе из приложения, при остановке службы и при её удалении. Ситуации «удалил приложение — остался без интернета» быть не должно.