v1.37.0
detour v1.37.0
Добавлено
- Проверка «доходит ли порт до роутера из интернета». У каждого включённого проброса появилась кнопка «Проверить снаружи». Обычный port-checker на этот вопрос отвечает неверно: если внешний порт перехватывает оборудование провайдера, оно само завершает TCP-рукопожатие, и чекер рапортует «открыт», хотя до роутера не доходит ничего.
- Поэтому проверка сверяет два сигнала: ответ внешних узлов и прирост счётчика пакетов на нашем же правиле файрвола (nft на OpenWrt/fw4, iptables на fw3 и Keenetic) вокруг пробы. Счётчик дёрнулся — отвечали мы; не дёрнулся — отвечал кто-то другой.
- Вердикты:
reachable,hijacked(перехват выше роутера — с советом сменить порт на нестандартный),blocked,open_unverified,unknown. - CLI:
detour-portmap check-external <id>; CGI:portmap_check_external.
- Обычный
checkдополнительно отдаётwan_packets— сколько пакетов из интернета видело правило проброса с последней перезагрузки файрвола.
Изменено
- Матричный фон стал спокойнее, а колонки — разноскоростными. Скорость задавалась в строках за кадр, то есть зависела от герцовки: на 120 Гц фон летел вдвое быстрее, чем на 60. Теперь она в строках в секунду и умножается на реальный
dt— 3.8–14 стр/с вместо прежних ≈21–66, примерно впятеро медленнее. Скорость колонки выбирается лог-равномерно, поэтому медленные капли и быстрые росчерки встречаются одинаково часто. - Попутно исправлено то, что вылезает именно на медленной скорости: голова капли привязана к сетке строк и берёт новый глиф только при переходе на строку вниз (раньше перевыбирала символ каждый кадр — дрожание на месте), а затухающая заливка тратит альфу порциями вместо микро-альфы каждый кадр (слишком малая альфа не меняет 8-битные пиксели, и хвосты не дочищались до фона). Побочно — ~17 вызовов
fillTextна кадр вместо ~160. ⚠️ Проверка проброса обращается к стороннему сервису (check-host.net) — единственное такое место в проекте. Наружу уходят только WAN-IP и номер порта, оба и без того публичны. Запускается только по кнопке, никогда сама.
Исправлено
- Проверка доступности устройства в LAN врала на любом веб-сервисе.
target_reachableиспользовалnc, а BusyBox nc возвращает ошибку, если собеседник ничего не прислал первым — то есть каждый HTTP-сервер, вежливо ожидающий запрос, показывался как «устройство не отвечает». Теперь признак —%{time_connect}у curl.
Кросс-платформенность
check-externalиwan_packetsсделаны сразу для обеих платформ. ⚠ Ветка Keenetic по-прежнему не проверялась на живом железе — как и весь «Проброс сервисов» с 1.35.0.- Правка матричного фона живёт целиком в
index.htmlи исполняется в браузере — приезжает в оба пакета одинаково.
Packages
detour_1.37.0_all.ipk— панель для OpenWrt/GL.iNet (BE9300, Flint). При первой установке сама прописывает фид и подтягивает sing-box + tpws-zapret.detour-keenetic_1.37.0_all.ipk— Keenetic/Entware (mipsel), бинарники из нашего mipsel-фида.
Рядом с каждым пакетом лежит .ipk.sig (usign).
Install
Обновление панели: кнопкой в самой панели, загрузкой .ipk в её модал, или по SSH:
opkg install /tmp/detour_1.37.0_all.ipk