Изменения май-июнь 2019
Проект был существенно доработан.
Сделана максимально упрощенная установка для пользователей основных дистрибутивов linux и openwrt через скрипт install_easy.sh.
Вариант по умолчанию ставит сплиттер http запросов + Host => HOST
Переписаны скрипты для debian и openwrt.
Убрана вся каша с провайдерами, потому что все равно не буду следить за актуальностью что на каком провайдере.
Теперь все более логично. Вы выбираете что использовать : tpws или nfqws, их параметры.
Можно легко самому добавлять в скрипты запуск дополнительных демонов или их копий с разными параметрами.
Добавление правил firewall вынесено в отдельные процедуры, которые можно использовать при модификации скрипта.
Добавление правил firewall под openwrt вынесено в отдельный firewall include /etc/firewall.zapret, чтобы /etc/firewall.user использовать для своих целей и не смешивать команды.
Настройки вынесены из init скриптов в отдельный файл “config”.
Все выглядит проще и лаконичней imho
Листы РКН разрослись до мегабайтов. Теперь они хранятся в сжатом виде, что уменьшает в разы требования свободного места на роутере.
Новая программа ip2net позволяет в 2-3 раза уменьшить ipset-ы, объединяя ip в подсети.
Многопоточный ресолвер mdig делает снова реальным самостоятельный ресолвинг реестра через get_reestr.sh.
Добавлены бинарики для arm64, mips64, ppc.
Бинарики для всех архитектур, кроме mips64, запакованы в upx. Это уменьшает их размер в 2 раза.
Сделан автоматический распознаватель архитектуры и установщик бинариков - install_bin.sh
install_easy.sh в случае необнаружения подходящих бинариков может сам их собрать при условии наличия gcc,make и необходимых -dev пакетов
Можно запустить install_easy с параметром “make”, чтобы форсировать сборку.
Сделана поддержка ipv6. Она и раньше была в tpws, nfqws, но сейчас она пронесена через все компоненты.
tpws получил дополнительные функции для привязки к определенным IP и возможности по ожиданию готовности интерфейсов,
возможность чтения hostlist-ов в формате gzip
Логика управления соединениями в tpws переписана на использование неблокирующих сокетов, устранены многочисленные потенциальные проблемы кода, унаследованного у взятого где-то в сети примера не лучшего качества
nfqws больше не требует рута для работы, ограничиваясь сбросом capabilities до CAP_NET_ADMIN.
В tpws и nfqws кроме --user добавлена возможность установки uid:gid через параметр --uid. Это полезно на android, поскольку там нет /etc/passwd.
Написана документация по настройке policy based routing на примере wireguard.
Описан метод модификации wireguard для противостояния возможным попыткам заблокировать VPN протоколы на DPI (суверенный рунет).