Anonym-tsk / nfqws-keenetic

MIT License
639 stars 50 forks source link

[BUG] Со временем ломается подключение к голосовому каналу в discord / шаринг экрана в discord #94

Closed SijyKijy closed 1 month ago

SijyKijy commented 1 month ago

Опишите проблему Через неопределённое количество времени, при повторном подключении к голосовому каналу в discord, либо старте шаринга экрана они могут не заработать.

В случае с шарингом - бесконечная загрузка В случае с подключением к голосовому каналу - rtc connecting + no route

Помогает:

  1. Перезапуск сервиса через /opt/etc/init.d/S51nfqws restart
  2. Отключить или включить игнорирование DNS в админке маршрутизатора

Пробовал разные конфигурации, настраивал использование различных DoT/DoH, игнорировал DNS провайдера - проблема всё равно возвращается.

Модель маршрутизатора Keenetic Ultra (KN-1811) | KeeneticOS: 4.1.7 (stable)

Провайдер Skynet | Ethernet

Выполните команды и приложите их вывод opkg info nfqws-keenetic

Package: nfqws-keenetic
Version: 2.4.2
Depends: iptables, busybox
Conflicts: tpws-keenetic
Status: install user installed
Section: net
Architecture: all
Size: 726253
Filename: nfqws-keenetic_2.4.2_all_entware.ipk
Conffiles:
 /opt/etc/nfqws/nfqws.conf d126da253590e1f78b1222c2a4d7887f6db88361e7a053044423018b7960eb0f
 /opt/etc/nfqws/user.list 45dc2adaa172b86d73369c6ed12a8a0e648b851b66293b11514c3b1d4bd3fce6
 /opt/etc/nfqws/auto.list e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
 /opt/etc/nfqws/exclude.list 31fbbe06a06e48f9047db40300750b7f11c203a7434fb1a3151f33518ccd9805
Description: NFQWS service
Installed-Time: 1728894309

/opt/etc/init.d/S51nfqws restart

Stopping NFQWS service...
we have 3 user defined desync profile(s) and default low priority profile 0
Loading hostlist /opt/etc/nfqws/auto.list
loading plain text list
Loaded 6 hosts from /opt/etc/nfqws/auto.list
Loading hostlist /opt/etc/nfqws/user.list
loading plain text list
Loaded 58 hosts from /opt/etc/nfqws/user.list
Loading hostlist /opt/etc/nfqws/auto.list
loading plain text list
Loaded 6 hosts from /opt/etc/nfqws/auto.list
Loading hostlist /opt/etc/nfqws/user.list
loading plain text list
Loaded 58 hosts from /opt/etc/nfqws/user.list
Loading hostlist /opt/etc/nfqws/exclude.list
loading plain text list
Loaded 42 hosts from /opt/etc/nfqws/exclude.list
Loading hostlist /opt/etc/nfqws/exclude.list
loading plain text list
Loaded 42 hosts from /opt/etc/nfqws/exclude.list
Started NFQWS service

cat /opt/etc/nfqws/nfqws.conf

# Provider network interface, e.g. eth3
# You can specify multiple interfaces separated by space, e.g. ISP_INTERFACE="eth3"
ISP_INTERFACE="eth3"

# All arguments here: https://github.com/bol-van/zapret (search for `nfqws` on the page)
# HTTP(S) strategy
#NFQWS_ARGS="--filter-udp=50000-65535 --dpi-desync=fake,tamper --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-repeats=6 --new --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-split-pos=1 --dpi-desync-fooling=md5sig,badseq --dpi-desync-fake-tls=/opt/etc/nfqws/tls_clienthello.bin"
#NFQWS_ARGS="--filter-udp=50000-65535 --dpi-desync=fake,tamper --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-repeats=20 --new --dpi-desync=fake,disorder2 --dpi-desync-ttl=3 --dpi-desync-split-pos=1 --dpi-desync-repeats=20 --dpi-desync-fooling=md5sig,badseq --dpi-desync-fake-tls=/opt/etc/nfqws/tls_clienthello.bin"
NFQWS_ARGS="--filter-udp=50000-65535 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-repeats=6 --dpi-desync-cutoff=d4 --new --dpi-desync=fake,split2 --dpi-desync-ttl=0 --dpi-desync-repeats=16 --dpi-desync-split-pos=1 --dpi-desync-fooling=md5sig,badseq --dpi-desync-cutoff=d4 --dpi-desync-fake-tls=/opt/etc/nfqws/tls_clienthello.bin"

# QUIC strategy
#NFQWS_ARGS_QUIC="--dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-cutoff=d4 --dpi-desync-fooling=badsum --dpi-desync-fake-quic=/opt/etc/nfqws/quic_initial.bin"
#NFQWS_ARGS_QUIC="--dpi-desync=fake --dpi-desync-repeats=20 --dpi-desync-cutoff=d4 --dpi-desync-fooling=badsum --dpi-desync-fake-quic=/opt/etc/nfqws/quic_initial.bin"
NFQWS_ARGS_QUIC="--dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badsum --dpi-desync-cutoff=d4 --dpi-desync-fake-quic=/opt/etc/nfqws/quic_initial.bin"

# auto - automatically detects blocked resources and adds them to the auto.list
NFQWS_EXTRA_ARGS="--hostlist=/opt/etc/nfqws/user.list --hostlist-auto=/opt/etc/nfqws/auto.list --hostlist-auto-debug=/opt/var/log/nfqws.log --hostlist-exclude=/opt/etc/nfqws/exclude.list"

# list - applies rules only to domains in the user.list
#NFQWS_EXTRA_ARGS="--hostlist=/opt/etc/nfqws/user.list"

# all  - applies rules to all traffic except domains from exclude.list
#NFQWS_EXTRA_ARGS="--hostlist-exclude=/opt/etc/nfqws/exclude.list"

# IPv6 support
IPV6_ENABLED=0

# HTTP support
HTTP_ENABLED=0

# QUIC support
QUIC_ENABLED=1
UDP_PORTS=443,50000:65535

# Syslog logging level (0 - silent, 1 - debug)
LOG_LEVEL=0

NFQUEUE_NUM=200
USER=nobody
CONFIG_VERSION=3

ps | grep nfqws

23650 nobody     616 S    /opt/usr/bin/nfqws --daemon --pidfile=/opt/var/run/nfqws.pid --user=nobody --qnum=200 --filt
23730 root      5976 S    grep nfqws

iptables-save | grep 200

-A INPUT -i eth3 -p tcp -m multiport --sports 80,443 -m connbytes --connbytes 1:1 --connbytes-mode packets --connbytes-dir reply -m set ! --match-set nozapret src -j NFQUEUE --queue-num 200 --queue-bypass
-A FORWARD -i eth3 -p tcp -m multiport --sports 80,443 -m connbytes --connbytes 1:1 --connbytes-mode packets --connbytes-dir reply -m set ! --match-set nozapret src -j NFQUEUE --queue-num 200 --queue-bypass
-A POSTROUTING -o eth3 -p tcp -m multiport --dports 80,443 -m connbytes --connbytes 1:6 --connbytes-mode packets --connbytes-dir original -m mark ! --mark 0x40000000/0x40000000 -m set ! --match-set nozapret dst -j NFQUEUE --queue-num 200 --queue-bypass
-A POSTROUTING -o eth3 -p udp -m multiport --dports 443,50000:65535 -m connbytes --connbytes 1:8 --connbytes-mode packets --connbytes-dir original -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass
-A POSTROUTING -o eth3 -p tcp -m tcp --dport 443 -m connbytes --connbytes 1:8 --connbytes-mode packets --connbytes-dir original -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass

sysctl net.netfilter.nf_conntrack_checksum

net.netfilter.nf_conntrack_checksum = 0
SijyKijy commented 1 month ago

Обновился до KeeneticOS: 4.2.1 (stable) Попробую с ним

SijyKijy commented 1 month ago

Проблема сохраняется. Сегодня утром так же получаю "rtc connecting + no route"

cratiy commented 1 month ago

Точно такая же проблема.

роутер keenetic giga (kn-1011) была прошивка 4.1.7, вчера обновлял до 4.2.1 по началу тоже пытался баловаться с настройками(еще на 4.1.7) но потом решил просто поставить сервис на перезагрузку через какое то время

поставил cron и прописал в crontab -e запись формата: */30 * * * * /opt/etc/init.d/S51nfqws restart

и дальше началась магия entware по другому я это назвать не могу когда доходил таймер до активации задачи cron`a случалось примерно следующее всё работает как работало, но если запрашивать статус S51nfqws, писалось что остановлено, при этом если писать команду на запуск система рапортавала что всё успешно запущено, загружены адреса и всё аботает. вбиваешь статус и видишь остановлено. при этом ютуб продолжал грузиться, правда дискорд через раз работал( т.е. если его убивать и перезапускать конектилось через раз) разумется никаких логов ентварь по этому поподу не создаёт. куда копать непонятно, поэтому я закончил с эксперементами в кроне, закоментировав(это было вчера).

С утра случилась неприятность и комп ушел в ребут по электричеству, роутер у меня на ибп вместе с NAS`ом они не перезагружались. когда это происходило у меня была мини конференция в дискорде. после перезагрузки дискорд запустился но в голос я зайти не смог пока руками не перезапустил сервис на роутере.

пока я это пишу решил проверить работоспособность ( с утреннего рестарта сервиса никаких манипуляций с роутером не происходило) в голосовые уже не конектиться

Попробую по новой ентвэрь накатить. может решит хоть что то =)

SijyKijy commented 1 month ago

@cratiy

Попробую по новой ентвэрь накатить. может решит хоть что то =)

Буду ждать ответа

cratiy commented 1 month ago

Ну что ж прошли почти сутки. я не поленился отформатировал свежую флешку в ext4. поставил энтварь накатил сверху nfqws-keenetic и syslog-ng первый с настройками из коробки загрузил только user.list во втором настроил запись логов на этот же носитель всё работало безупречно, без глюков, логи чистые. ушел спать (домашние тем временем пользовались всем великолепием весь вечер и пол ночи, без проишествий)

Утром у меня опять случилась "миниконференция" в дискорде. всё работало ничего не нужно было перезапускать. Прошло пол дня и после обеда решил посмотреть что с дискордом. текстовая часть работает и работала без проблем (весь день), как и всякие ютубы.При попытке подключится к голосовым надпись "Подключение к RTC" после которой идёт "не установлен маршрут". Перезапуск дискорда ничего не даёт пока не перезапустишь сервис на роутере. так что свежая установка ентвари ничего не фиксит по большому счёту справедливости ради у меня на роутере включены всякое барахло в виде -Аппаратный сетевой ускоритель -IntelliQoS До недавнего времени еще работал "Файл подкачки в сжатом RAM-диске" но при его использовании у меня после перезагрузок не монтировался usb. вылазили ошибки. пока не вытащишь/вставишь флешку. После отключения проблема ушла тыкну "Аппаратный сетевой ускоритель" в состояние выключено. может что изменится. продолжаю вести наблюдение :3

SijyKijy commented 1 month ago

@cratiy, спасибо за тест! Печально, что ничего не ясно почему именно голос и шаринг в дискорде или вообще весь udp-трафик проблемный

SijyKijy commented 1 month ago

По возможности призываю @Anonym-tsk

SijyKijy commented 1 month ago

@Anonym-tsk спасибо!

cratiy commented 1 month ago

@Anonym-tsk спасибо ! :3