Repository navigation
Releases: NooBiToo/TrustTunnelOpenWrt
Release list
v1.0.14
Список, убранный из выбора, перестаёт идти через туннель сразу после «Сохранить и применить». Раньше подсети такого списка оставались в маршрутизации до полного перезапуска службы: убрать Telegram из списков значило ничего не изменить.
Подсети из списков теперь лежат в отдельных наборах и загружаются заново при каждом применении настроек в той же транзакции nft, что и пересоздание таблицы, поэтому окна, в котором трафик уходит мимо туннеля, нет. Переносятся только адреса, которые накопил dnsmasq.
Исходящие соединения демона Telegram из отдельного проекта tgws-openwrt помечены 0x7467 и не уходят в туннель при включённом «Трафик роутера через VPN».
Обновление пакета и клиента:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"v1.0.13
На странице диагностики появился тест скорости: пинг, загрузка и отдача напрямую и через туннель, как в speedtest.net — живая шкала в Мбит/с и вывод, насколько туннель урезает прямой канал (4 потока, около 40 секунд).
Замер передаёт столько данных, сколько канал пропускает за это время, — на быстром соединении около полугигабайта, так что на лимитном трафике запускайте осознанно. Пинг — время ответа на HTTPS-запрос, а не ICMP: через туннель ICMP не проходит.
Обновление пакета и клиента:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"v1.0.12
Установщик теперь ставит последний релиз клиента TrustTunnel — сейчас это 1.1.7 от 24 сентября. Раньше он запускал скрипт вендора без номера версии и получал зашитый туда 1.1.5: страница состояния предлагала обновить клиента, а повторный запуск install.sh ставил тот же 1.1.5. В 1.1.6 и 1.1.7 исправлены падения клиента, в том числе на роутерах без IPv6 (TrustTunnelClient#92).
Сам пакет не менялся. Закрепить версию клиента можно переменной TT_CLIENT_VERSION=1.1.5 перед командой установки.
Повторный запуск установщика обновляет и пакет, и клиент:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"v1.0.11
Пакет теперь сверяет с релизами не только себя, но и клиент TrustTunnel: клиент 1.1.5 вышел 2 сентября, и страница состояния об этом скажет. Настройки клиента 1.1.5 (чтение SNI до соединения, сканируемые порты, preresolve, буферы TCP) и поля сервера custom_sni и client_random вынесены во вкладки «Сеть» и «Сервер»; импорт конфигурации сервера забирает все его поля, включая client_random, без которого сервер с защитой от сканеров клиента не пускает.
Клиент старше 1.1.5 новые настройки молча игнорирует, диагностика об этом предупреждает. При include_router_traffic=1 список «не обходить» не работает для адресов из набора обхода, подробности в SETTINGS.ru.md.
Повторный запуск установщика обновляет и пакет, и клиент:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"v1.0.10
v1.0.9
Сохранение настроек больше не отправляет трафик мимо туннеля.
Наборы адресов обхода наполняет dnsmasq по ответам DNS: домен из списка
резолвится — его адрес попадает в набор, и трафик к этому адресу помечается для
туннеля. Применение любой настройки пересоздавало nft-таблицу, а вместе с ней
обнуляло наборы. Устройства при этом продолжают ходить на адреса из собственного
кэша, где запись живёт минутами: метки на таком трафике больше не было, и он
уходил напрямую к провайдеру — мимо туннеля и мимо killswitch, который к
непомеченному трафику отношения не имеет. Теперь накопленные адреса переносятся
в той же транзакции, что пересоздаёт таблицу, поэтому окна без маркировки не
остаётся.
Проверено на живом роутере: до правки внешний адрес сразу после «Сохранить и
применить» менялся с адреса сервера на адрес провайдера, после правки остаётся
адресом сервера.
Что осталось как есть. Смена номера таблицы маршрутизации или отметки firewall
по-прежнему разбирает маршрутизацию полностью — там меняется сама отметка, по
которой трафик попадает в туннель, и переносить набор бессмысленно.
Обновление:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"
v1.0.8
Резолвер DoH теперь можно сделать DNS всей сети, а не только доменов из списков.
Прежде адрес из «DNS для доменов из списков» обслуживал ровно списочные домены:
для каждого выдавалась строка server=, а весь остальной DNS сети шёл туда, куда
его направил штатный https-dns-proxy — обычно в Cloudflare. Со стороны это
выглядело как незаработавшая настройка: любая проверялка в списках обхода не
лежит и показывает чужой резолвер. Новая галочка «Применять этот резолвер ко всей
сети» закрывает разрыв: пока служба работает, она переводит на ваш URL все
экземпляры штатного https-dns-proxy, а при остановке возвращает его настройки.
Что требует внимания. При старте и остановке службы перезапускается dnsmasq, и
сеть на долю секунды остаётся без DNS. Если резолвер перестанет отвечать, без DNS
останется вся сеть, а не только домены из списков, — у dnsmasq в этом режиме нет
других upstream. По умолчанию галочка снята, и обновление её не включает.
Заодно исправлено: локальный DoH-прокси больше не поднимается в режиме «всё через
VPN», где обслуживать ему некого.
Обновление:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"
v1.0.7
v1.0.6
Списки подсетей: одна строка на сервис вместо четырёх.
Каталог дублировал выбор дважды. Репозиторий списков держит часть файлов
подсетей в двух экземплярах, отличающихся только регистром имени:
Subnets/IPv4/Meta.lst и Subnets/IPv4/meta.lst байт в байт одинаковы, то же
с Twitter и Discord, и в обоих семействах адресов. Интерфейс показывал их как
разные списки, отмечались оба, и роутер скачивал один файл дважды. Плюс сами
семейства адресов лежат в отдельных каталогах, хотя решение о них одно: после
нормализации регистра в IPv4 одиннадцать имён, в IPv6 десять, и расходится
ровно roblox.
Теперь Subnets — одна группа со строкой на сервис: галочка выбирает файлы
обоих семейств, размер показывается суммой, а сервис без второй половины
помечен «только IPv4». Вместо 25 чекбоксов 11.
Уже сохранённый выбор чинится при обновлении пакета: регистровый дубль
схлопывается, когда в наборе есть оба варианта — их присутствие само
доказывает, что оба файла существуют. Одинокий путь с заглавной буквы не
переписывается: сочинённый meta.lst там, где в репозитории остался только
Meta.lst, заставил бы обновление списков печатать по нему fail. На живом
роутере миграция превратила 12 записей в 8, а набор обхода совпал по
контрольной сумме — состав того, что идёт в туннель, не меняется, поэтому
служба не перезапускается.
Обновление:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"
v1.0.5
Instagram больше не теряется — и вместе с ним первые домены каждого списка.
Файлы списков приходят без завершающего перевода строки, и сборка склеивала
последний домен одного файла с первым доменом следующего: оба исчезали, а
вместо них в набор обхода уходил мусор вида hdrezka.appinstagram.com. Так
пропадал instagram.com — первая строка списка Meta, — а с ним hdrezka.ag,
cdn-telegram.org, byteoversea.com, ads-twitter.com, googleplay.com,
xvideos.com, deepmind.com и первые строки остальных выбранных списков.
Молча: склейка считалась за домен, поэтому сводка показывала полное их число.
Диагностика больше не советует выключать штатный сервис https-dns-proxy.
Совет из 1.0.4 оставлял сеть в худшем положении, чем находил: вместе с его
записями из конфига уходит noresolv, dnsmasq откатывается на DNS
провайдера, а тот подменяет ответы — instagram.com приходил как
188.186.154.88 вместо адреса Meta. Картина «работают только сайты из
списков» при этом не уходила, потому что наш экземпляр прокси отвечает ровно
за домены списков, а всё остальное доставалось провайдеру.
Теперь проверка спрашивает каждый прописанный им резолвер и жалуется только
на тот, который молчит; живой резолвер показывается зелёной строкой с
адресом — видно, кто вообще резолвит DNS этой сети. Отдельная строка
предупреждает, когда домены вне списков резолвит провайдер. README исправлен
там же: вместо команд отключения — как проверить резолверы и как убрать
неотвечающий экземпляр.
Обновление:
sh -c "$(wget -O - https://raw.githubusercontent.com/NooBiToo/TrustTunnelOpenWrt/main/install.sh)"