Доступ к Инстаграму: как доработать конфиг, чтобы он не пропадал?

Доброго дня всем!

Столкнулся с занятной ситуацией: имею роутер Keenetic Giga (KN-1012), на него поставил самую свежую версию Запрета. Также настроен DoT от Гугла. Суть в том, что как только я перезапускаю Запрет, у меня на какое-то небольшое время становится доступен Инстаграм и ФБ, причем на максимальной скорости, как будто никаких блокировок нет. Но затем минут через 20-30 доступ постепенно пропадает: сначала скорость постепенно падает, а затем вообще пакеты не доходят. НО: это ровно до перезапуска Запрета командой /opt/zapret/init.d/sysv/zapret restart, после чего Инста снова оказывается доступна, но так же минут на 20-30. Что можно поправить в конфиге, чтобы доступ к Инсте не терялся со временем? Провайдер Дом.ру

Конфиги такие:

TPWS_OPT="
--filter-tcp=80  --methodeol  --hostlist=/opt/zapret/user_hostlist.txt --new
--filter-tcp=443 --split-tls=sni  --disorder --tlsrec-pos=2 --hostlist=/opt/zapret/user_hostlist.txt
"

NFQWS_OPT="
--filter-tcp=80 --hostlist=/opt/zapret/user_hostlist.txt --dpi-desync=discorder  --dpi-desync-fooling=md5sig --new
--filter-tcp=443 --hostlist=/opt/zapret/user_hostlist.txt --dpi-desync=fake,discorder --dpi-desync-split-pos=2 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_googlle_com.bin --dpi-desync-repeats=10
--filter-udp=443 --hostlist=/opt/zapret/user_hostlist.txt --dpi-desync=fake,split --dpi-desync-any-protocol --dpi-desync-split-pos=2 --dpi-desync-fooling=md5sig --dpi-desync-fake-quic=opt/zapret/files/fake/quic_initial_www_google_com.bin --dpi-desync-repeats=20
--filter-udp=50000-65535 --dpi-desync=fake --dpi-desync-any-protocol  --dpi-desync-fake-quic=opt/zapret/files/fake/quic_initial_www_google_com.bin --dpi-desync-repeats=10 --new
"

На роутерах я запрет не настраивал, но вижу у тебя целый ряд проблем в конфиге.
Во-первых, опечатки в слове disorder:

--dpi-desync=discorder
--dpi-desync=fake,discorder

Во-вторых, тебе точно нужны повторы на tcp 443? Попробуй убрать.

--filter-tcp=443 ... --dpi-desync-repeats=10

В-третьих, строка для udp. Split не работает для udp в принципе, выкидывай его и --dpi-desync-split-pos=2. Также выкидывай --dpi-desync-any-protocol, в нем нет смысла тут, т.к. ты дуришь известные протоколы. Md5sig вроде тоже только для tcp.

--filter-udp=443 --hostlist=/opt/zapret/user_hostlist.txt --dpi-desync=fake,split --dpi-desync-any-protocol --dpi-desync-split-pos=2 --dpi-desync-fooling=md5sig --dpi-desync-fake-quic=opt/zapret/files/fake/quic_initial_www_google_com.bin --dpi-desync-repeats=20

Строка дискорда. Порты поставь 50000-50099, дальше нет нужды. Голос в дискорде вроде не по quic идет, лучше используй --dpi-desync-fake-unknown-udp вместо --dpi-desync-fake-quic. В качестве фейка вроде хватает одного нулевого байта без повторов (обычно, но лучше протести у себя). Также нужен ограничитель в виде cutoff=d2, иначе у тебя будет бесконечное засирание канала. Ну и я не уверен нужен ли --new на последней строчке?

--filter-udp=50000-65535 --dpi-desync=fake --dpi-desync-any-protocol  --dpi-desync-fake-quic=opt/zapret/files/fake/quic_initial_www_google_com.bin --dpi-desync-repeats=10 --new

Итог после правок:

NFQWS_OPT="
--filter-tcp=80 --hostlist=/opt/zapret/user_hostlist.txt --dpi-desync=disorder --dpi-desync-fooling=md5sig --new
--filter-tcp=443 --hostlist=/opt/zapret/user_hostlist.txt --dpi-desync=fake,disorder --dpi-desync-split-pos=2 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_googlle_com.bin
--filter-udp=443 --hostlist=/opt/zapret/user_hostlist.txt --dpi-desync=fake --dpi-desync-fake-quic=opt/zapret/files/fake/quic_initial_www_google_com.bin --dpi-desync-repeats=20
--filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-cutoff=d2 --dpi-desync-fake-unknown-udp=0x00
"

Это из тех проблем что я вижу в конфиге. Как написал выше, сам я на роутерах запрет не поднимал.

Огромное спасибо! Не столько с точки зрения увеличения работоспособности (инста так и продолжает сначала работать, потом отваливается), сколько с точки зрения понимания работы скрипта, все перечисленное действительно упустил при чтении мануала. Ну и ошибка в disorder - это, конечно, эпик фейл:D

Думаю проблему доступности инсты решать костыльно: смотрю, как завести cron на Кинетике и пусть он рестартует Zapret каждые 45 минут

Инста по айпи заблочена на многих провайдерах, кстати. Возможно у вас сначала в незаблоченнные айпи тычется и всё работает, а потом перестает, хз.

Можете попробовать сами прописать альтернативные айпи в etc/hosts или в самом роутере если там есть возможность:

157.240.225.174 instagram.com www.instagram.com

У инсты айпишников очень много.

Работает подбор стратегии после ручного добавления в hosts. Как найти дополнительные не блокированные ip и куда их добавить для zapret?

sudo vim /etc/hosts
157.240.9.174 instagram.com www.instagram.com

Насчет поиска айпи, я себе для этих целей скрипт писал. Это под виндоусовский cmd. На линуксе хз. Можно руками через сайт гугл.днс в крайнем случае. Просто рандомные subnet вставляете.

Второй вопрос я не понял. Какое отношение запрет к файлу хостс имеет?

Запись в Хостс позволяет достучаться до ip инстаграма, zapret позволяет обойти блокировку.

Ну это и так очевидно. Я не понял вот этот вопрос:

и куда их добавить для zapret?

Куда вы их добавить хотите ещё? Ну кроме хостс.

Главное как выявить рабочие ip для добавления. Которые будут пинговаться.

Как правило, doh от комсс https://dns.comss.one/dns-query выдает рабочие айпи. Там у них хитрый механизм какой-то. Можно просто в браузере поставить и всё.

На openwrt нужно сделать такой финт. Пока руками только 1 ip в hosts

Ну так поищите руками, тем же курлом.

curl -so /dev/null -m 2 -w "%{remote_ip}%{onerror}%{errormsg}" --doh-url https://dns.comss.one/dns-query https://instagram.com

Или дигом:
dig +https @dns.comss.one instagram.com +short

Для keenetic, требуется dig
Ложим в папку /opt/root/
Даем права chmod +x dnstest.sh
Запускаем ./dnstest.sh
Можно запускать с указанием домена
./dnstest.sh ntc.party
А можно добавить свои домены внутри.
Возможно использование и на других линукс системах, только нужно прописать свои днс.
Если используете много доменов используйье grep для фильтра
./dnstest.sh ntc.party | grep yes
Будет показывать только ip на которых прошел пинг.
dnstest.sh (1,9 КБ)

Не лучше ли tcping будет вместо обычного ping’а? Ну и я может слепой, но где там курл используется?

tcping нет в entware или я не нашел.
А так я понимаю можно пингануть 80,443,853 порты и понять что доступно что нет?

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


От нефиг делать за пару часиков накатал прогу для поиска айпи. Нужны днс с поддержкой subnet.
Работает через командную строку, справка вызывается флагом -? Результат выводится в лог и консоль. Финальный результат, с выкинутыми дубликатами и отсортированный - в самом конце после разделителя -------
Пример строки запуска:

ipfinder -u instagram.com -d https://dns.google/dns-query

IPfinder_win.zip (6,3 МБ)

Также попробовал скомпилить для линукса, но я без малейшего понятия работоспособно оно или нет.
IPfinder_linux(maybe).zip (6,2 МБ)

Версия супер сырая, допиливать хз буду или нет.

Это он с doh работает?

~ # ./dnstest.sh ntc.party | grep yes
dig: Couldn't parse port number
dig: Couldn't parse port number

У вас keenetic?
Doh добавлены?
Если нет doh можно через cli прописать одной командой

dns-proxy https upstream https://cloudflare-dns.com/dns-query
dns-proxy https upstream https://dns.google/dns-query
dns-proxy https upstream https://dns.quad9.net/dns-query
dns-proxy https upstream https://common.dot.dns.yandex.net/dns-query
dns-proxy https upstream https://dns.adguard-dns.com/dns-query
dns-proxy https upstream https://dns.controld.com/comss
dns-proxy https upstream https://dns.nextdns.io
dns-proxy https upstream https://dns.alidns.com/dns-query

Да. Keenetic. Добавил DOH google, но в отличии от Ipfinder выдает только один нерабочий ip.

~ # ./dnstest.sh instagram.com
127.0.0.1:40508 instagram.com 31.13.72.174 no

instagram.txt (1,0 КБ)