Пакеты для установки tpws
на маршрутизаторы с поддержкой opkg
.
Данный материал подготовлен в научно-технических целях. Использование предоставленных материалов в целях отличных от ознакомления может являться нарушением действующего законодательства. Автор не несет ответственности за неправомерное использование данного материала.
Вы пользуетесь этой инструкцией на свой страх и риск!
Автор не несёт ответственности за порчу оборудования и программного обеспечения, проблемы с доступом и потенцией. Подразумевается, что вы понимаете, что вы делаете.
Изначально написано для роутеров Keenetic с установленным entware. Однако, работоспособность также была проверена на прошивках Padavan и OpenWRT (читайте ниже).
Списки проверенного оборудования собираем в отдельной теме.
Поделиться опытом можно в разделе Discussions или в чате.
Если вы не уверены, что вам нужен именно tpws, лучше сначала попробуйте nfqws.
tpws
- утилита для модификации TCP пакетов на уровне потока, работает как TCP transparent proxy.
tpws
не работает с UDP и не обрабатывает QUIC.
Почитать подробнее можно на странице авторов (ищите по ключевому слову tpws
).
Прочитайте инструкцию полностью, прежде, чем начать что-то делать!
Рекомендуется игнорировать предложенные провайдером адреса DNS-серверов. Для этого в интерфейсе роутера отметьте пункты "игнорировать DNS от провайдера" в настройках IPv4 и IPv6.
Вместе с этим рекомендуется настроить использование DoT/DoH.
Установить entware на маршрутизатор по инструкции на встроенную память роутера или на USB-накопитель.
Через web-интерфейс Keenetic установить пакеты Протокол IPv6 (Network functions > IPv6) и Модули ядра подсистемы Netfilter (OPKG > Kernel modules for Netfilter - не путать с "Netflow"). Обратите внимание, что второй компонент отобразится в списке пакетов только после того, как вы отметите к установке первый.
В разделе "Интернет-фильтры" отключить все сторонние фильтры (NextDNS, SkyDNS, Яндекс DNS и другие).
Все дальнейшие команды выполняются не в cli роутера, а в среде entware. Подключиться в неё можно несколькими способами:
telnet 192.168.1.1
, а потом exec sh
.root
, пароль по умолчанию - keenetic
, порт - 222 или 22). Для этого в терминале написать ssh 192.168.1.1 -l root -p 222
.Миграция с версии 1.x.x на 2.x.x:
Для определения версии выполните команду
opkg info tpws-keenetic
- она работает только на версиях 2.x.x и возвращает информацию о пакете. Если ничего не вернула – у вас установлена старая версия.Никакой специальной миграции не требуется, просто переустановите новую версию по инструкции ниже.
Установите необходимые зависимости
opkg update
opkg install ca-certificates wget-ssl
opkg remove wget-nossl
Установите opkg-репозиторий в систему
mkdir -p /opt/etc/opkg
echo "src/gz tpws-keenetic https://anonym-tsk.github.io/tpws-keenetic/all" > /opt/etc/opkg/tpws-keenetic.conf
Репозиторий универсальный, поддерживаемые архитектуры: mipsel
, mips
, aarch64
, armv7
, x86
, x86_64
.
Установите пакет
opkg update
opkg install tpws-keenetic
opkg update
opkg upgrade tpws-keenetic
opkg remove tpws-keenetic
opkg info tpws-keenetic
Пакет работает только с iptables
.
Если в вашей системе используется nftables
, придется удалить nftables
и firewall4
, и установить firewall3
и iptables
.
Проверить, что ваша система использует nftables
:
ls -la /sbin/fw4
which nft
Установите необходимые зависимости
opkg update
opkg install ca-certificates wget-ssl
opkg remove wget-nossl
Установите публичный ключ репозитория
wget -O "/tmp/tpws-keenetic.pub" "https://anonym-tsk.github.io/tpws-keenetic/openwrt/tpws-keenetic.pub"
opkg-key add /tmp/tpws-keenetic.pub
Установите opkg-репозиторий в систему
echo "src/gz tpws-keenetic https://anonym-tsk.github.io/tpws-keenetic/openwrt" > /etc/opkg/tpws-keenetic.conf
Репозиторий универсальный, поддерживаемые архитектуры: mipsel
, mips
, aarch64
, armv7
, x86
, x86_64
.
Для добавления поддержки новых устройств, создайте Feature Request
Установите пакет
opkg update
opkg install tpws-keenetic
NB: Все пути файлов, описанные в этой инструкции, начинающиеся с
/opt
, на OpenWRT будут начинаться с корня/
. Например конфиг расположен в/etc/tpws/tpws.conf
Для запуска/остановки используйте команду
service tpws-keenetic {start|stop|restart|reload|status}
Файл настроек расположен по пути /opt/etc/tpws/tpws.conf
. Для редактирования можно воспользоваться встроенным редактором vi
или установить nano
.
# Интерфейс локальной сети. Обычно `br0`, на OpenWRT - `br-lan`
# Заполняется автоматически при установке
# Можно ввести несколько интерфейсов, например LOCAL_INTERFACE="br0 nwg0"
LOCAL_INTERFACE="br0"
# Стратегия обработки трафика
TPWS_ARGS="--bind-wait-ip=10 --disorder --tlsrec=sni --split-http-req=method --split-pos=2"
Режим работы (auto, list, all)
TPWS_EXTRA_ARGS="--hostlist=/opt/etc/tpws/user.list --hostlist-auto=/opt/etc/tpws/auto.list --hostlist-auto-debug=/opt/var/log/tpws.log --hostlist-exclude=/opt/etc/tpws/exclude.list"
# Обрабатывать ли IPv6 соединения
IPV6_ENABLED=1
# Обрабатывать ли HTTP
HTTP_ENABLED=0
# Логирование в Syslog (0 - silent, 1 - default, 2 - debug)
LOG_LEVEL=0
/opt/etc/tpws/tpws.conf
/opt/etc/init.d/S51tpws {start|stop|restart|reload|status}
/opt/etc/tpws/user.list
(один домен на строке, поддомены учитываются автоматически)/opt/etc/tpws/auto.list
/opt/var/log/tpws.log
/opt/etc/tpws/exclude.list
(один домен на строке, поддомены учитываются автоматически)iptables-save | grep "to-ports 999$"
Вы должны увидеть похожие строки
-A PREROUTING -i br0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 999
iptables -I FORWARD -i br0 -p udp --dport 443 -j DROP
Нравится проект? Поддержи автора! Купи ему немного :beers: или :coffee:!