Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Автор, дай бог тебе здоровья. Я уже устал искать нормальный способ, чтобы можно было просто вбить сайт и всё. Настроил, всё работает, спасибо!

  • Ответов 293
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано (изменено)

Помогите советом), пытаюсь настроить следующую цепочку:

устройства -> роутер -> выход в интернет с обходом заблокированных сайтов.

  • Белый IP есть;
  • Локальный доступ сделать получилось, есть доступ к админке;
  • «ipset-dns для выборочного роутинга» уже успешно работает на роутере.

Но не выходит сделать выход в интернет. Делал всё как в статье «Доступ в Интернет через WireGuard-туннель», однако после команды

interface Wireguard0 security-level private

перестает работать обход заблокированных сайтов. 

А после того как я меняю приоритет подключений как в инструкции

вовсе пропадает интернет везде. Тут я предполагаю я не верно настраиваю маршрутизацию, хотя делал как в инструкции

Изменено пользователем Сергей Грищенко
решил, нужно было прописать Wireguard2
  • 2 недели спустя...
Опубликовано

Прошу помощи. Просто перестало работать... Несколько дней твиттер и инста просто плохо грузили картинки. Приходилось обновлять несколько раз, прежде чем прогружалось. Фейсбук перестал открываться вообще. Решил перезагрузить роутер, теперь не открывается тупо ничего кроме рутрекера. Причём он работает так, будто блокировка снята) Пробовал прописывать вместо 8.8.8.8 1.1.1.1, как тут советовали ранее - не помогает. Куда копать?

Опубликовано
В 20.02.2024 в 22:43, soldout5918 . сказал:

Прошу помощи. Просто перестало работать... Несколько дней твиттер и инста просто плохо грузили картинки. Приходилось обновлять несколько раз, прежде чем прогружалось. Фейсбук перестал открываться вообще. Решил перезагрузить роутер, теперь не открывается тупо ничего кроме рутрекера. Причём он работает так, будто блокировка снята) Пробовал прописывать вместо 8.8.8.8 1.1.1.1, как тут советовали ранее - не помогает. Куда копать?

Тоже столкнулся с этим, простая проверка через трассировку показывает следующее:

Цитата

  9     *       71 ms     *     10.73.249.66
 10    71 ms    71 ms    71 ms  fra-fr5-sbb1-nc5.de.eu [91.121.215.116]
 11    90 ms    90 ms    90 ms  be103.waw-wa2-sbb1-nc5.pl.eu [213.251.128.114]
 12    90 ms    90 ms    90 ms  10.200.0.83
 13   122 ms   134 ms   128 ms  msk-ix.ertelecom.ru [195.208.209.132]
 14   149 ms   143 ms   134 ms  188x186x145x2.static.cc-perm.ertelecom.ru [188.186.145.2]
 15   140 ms   138 ms   140 ms  188x186x145x1.static.cc-perm.ertelecom.ru [188.186.145.1]

думал может днс как то перехватывают, подключение dot и doh не помогло. Странно что не работает именно на роутере, напрямую подключение телефона и сервера через wg всё ок.

Опубликовано (изменено)

С сегодняшнего дня у меня начали перехватывать DNS (информация выше) и перестал работать VPN. Если вы столкнулись с этим, проверить можно очень легко, добавляем в обход 2ip.ru и смотрим, если его обойти удалось, а остальные сайт нет, значит вероятнее всего вы столкнулись с этим тоже или сделайте трассеровку, как я постом выше.

Как обойти перехват DNS для данного решения, чтобы VPN вновь работал:

1. Устанавливаем и настраиваем по инструкции DOH и DOT. Список доступных DOH и DOT тут.

2. Заходим в консоль порт 222, смотрим под какими портами у нас DOH и DOT, вводим команду

~ # cat /tmp/ndnproxymain.stat

Total incoming requests: 19
Proxy requests sent:     19
Cache hits ratio:        0.000 (0)
Memory usage:            20.75K

DNS Servers

                      Ip   Port  R.Sent  A.Rcvd  NX.Rcvd  Med.Resp  Avg.Resp  Rank  
             192.168.1.1   5354       0       0        0       0ms       0ms     2  
             192.168.1.1   5353       0       0        0       0ms       0ms     4  
               127.0.0.1  40500       0       0        0       0ms       0ms     5  
               127.0.0.1  40501       1       1        0      78ms      78ms     4  
               127.0.0.1  40502       0       0        0       0ms       0ms     3  
               127.0.0.1  40503       0       0        0       0ms       0ms     2  
               127.0.0.1  40508       0       0        0       0ms       0ms     3  
               127.0.0.1  40509      18      18        0      10ms      20ms    10  

Всё что с портами 40500-405++ как раз doh или dot. Запоминаем любой порт.

3. Меняем DNS в ipset-dns

~ # nano /opt/etc/bypass.conf

DNS=127.0.0.1:40509

Перезагружаем роутер и проверяем, у меня всё вновь работает. 

Дополнительно, как выбрать наиболее быстрый DOH и DOT. Меняем только порт, проверяем какой будет быстрее.

while true; do dig google.com @127.0.0.1 -p 40509 | grep time; sleep 1; done

P.S. DOH и DOT можно настроить на весь трафик, я так делать не стал, сделал только для обхода. Смотрите скрин.

chrome_XlBISLsyi0.png

Изменено пользователем Сергей Грищенко
Опубликовано
4 минуты назад, keenet07 сказал:

А кто у вас его перехватывает? ДНС запросы ведь по умолчанию в этом решение идут внутри ВПН.

Запрос ДНС идёт в ipset-dns. DNS прописан в /opt/etc/bypass.conf. Если делать обычный прямой конфиг wireguard клиент телефон -> wireguard сервер, то тогда да, ДНС будет внутри VPN. В случае с решением от ТС это так не работает, иначе роутеру не будут видны адреса и он не будет понимать какие нужно гнать под ВПН, а какие нет.

 

Опубликовано (изменено)
53 минуты назад, Сергей Грищенко сказал:

Запрос ДНС идёт в ipset-dns. DNS прописан в /opt/etc/bypass.conf. Если делать обычный прямой конфиг wireguard клиент телефон -> wireguard сервер, то тогда да, ДНС будет внутри VPN. В случае с решением от ТС это так не работает, иначе роутеру не будут видны адреса и он не будет понимать какие нужно гнать под ВПН, а какие нет.

 

Домены для резолва прописаны в прошивочном окружении/интерфейсе. IPSET-DNS резолвит их прописанным в своем конфиге DNS. Который при подключенном VPN также маршрутизируется через него. Т.е. утечки быть не должно. Если только он не резолвит их ещё и тогда когда не поднят VPN (временно отключен или недоступен), т.е. через провайдера. Вот тогда в таблицу могут попасть не верные/перехваченные значения ip адресов для некоторых доменов. И соответственно ресурс открываться будет либо через раз, либо совсем не будет, в зависимости от количества этих адресов на одном домене.

Изменено пользователем keenet07
Опубликовано
28 минут назад, keenet07 сказал:

Домены для резолва прописаны в прошивочном окружении/интерфейсе. IPSET-DNS резолвит их прописанным в своем конфиге DNS. Который при подключенном VPN также маршрутизируется через него. Т.е. утечки быть не должно. Если только он не резолвит их ещё и тогда когда не поднят VPN (временно отключен или недоступен), т.е. через провайдера. Вот тогда в таблицу могут попасть не верные/перехваченные значения ip адресов для некоторых доменов. И соответственно ресурс открываться будет либо через раз, либо совсем не будет, в зависимости от количества этих адресов на одном домене.

Видимо да, во всяком случае могу точно подтвердить, что мой метод сработал и помог решить проблему.

Опубликовано (изменено)
1 час назад, Сергей Грищенко сказал:

Видимо да, во всяком случае могу точно подтвердить, что мой метод сработал и помог решить проблему.

Либо, вы просто отчистили таблицу ip адресов, перезагрузив устройства и она собралась обратно со включенным VPN. Поэтому проблемы пока не наблюдается.

В любом случае с вашей модификацией неправильные Ip попадать в неё уже не должны.

Изменено пользователем keenet07
  • 2 недели спустя...
Опубликовано

@Александр Рыжов можете подсказать по двум моментам почему так. 

1. После перезагрузки роутера служба иногда не стартует, приходится запускать ее вручную через /opt/etc/init.d/S52ipset-dns start. Причем такое чаще бывает именно при установке на OPKG установленный во внутреннюю память. Походу какой-то race condition, не могу понять.

2. При попытке использовать прошивочный DoT/DOH резолвер в логах спамятся ошибки:

При использовании DoT (127.0.0.1:40500 -> CloudFlare 1.1.1.1):

Мар 11 19:21:20 stubby
Could not get qname from query: A helper function for dicts had a name argument that for a name that is not in the dict.

При использовании DoH (127.0.0.1:40508 -> CloudFlare https://cloudflare-dns.com/dns-query)

Мар 11 19:05:21 https-dns-proxy
0000: 0000: 49 6e 76 61 6c 69 64 20 71 75 65 72 79 2e Invalid query.

При этом вроде все работает, странно. 

Опубликовано (изменено)
1 час назад, Александр Рыжов сказал:

1. Ровно так же. Пока не отловил причину.

Пока решил диким костылем.

S52ipset-dns:

#!/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/bypass.conf

if [ "$1" = "start" ]; then
    ipset create $SET_NAME hash:ip
    ip rule add fwmark 1001 table 1001
    ipset-dns $SET_NAME $SET_NAME 0.0.0.0:5353 $DNS
    sleep 30s
    ipset-dns $SET_NAME $SET_NAME 0.0.0.0:5353 $DNS
fi

 

1 час назад, Александр Рыжов сказал:

2. Не могу сказать, не использую.

Не хотите попробовать? :) Все-таки работа через локальный (прошивочный) резолвер мне показалась гораздо быстрее, чем если гнать DNS через туннель. Плюс он вроде как должен кешировать. ipset-dns походу всегда стучит в upstream на каждый запрос (что логично), из-за этого первичное открытие сайта прям сильно долгое. Последующие, когда браузер уже закешировался по DNS лучше, но до перезагрузки браузера или ttl. А интеграция Bosch Home Connect (с недавнего времени их API не работает в РФ) в Home Assistant вообще не может подключится если DNS через туннель и выпадает с ошибкой таймаута.

 

 

Изменено пользователем Drafted
Опубликовано
13 часа назад, Drafted сказал:

2. При попытке использовать прошивочный DoT/DOH резолвер в логах спамятся ошибки:

При использовании DoT (127.0.0.1:40500 -> CloudFlare 1.1.1.1):

Мар 11 19:21:20 stubby
Could not get qname from query: A helper function for dicts had a name argument that for a name that is not in the dict.

При использовании DoH (127.0.0.1:40508 -> CloudFlare https://cloudflare-dns.com/dns-query)

Мар 11 19:05:21 https-dns-proxy
0000: 0000: 49 6e 76 61 6c 69 64 20 71 75 65 72 79 2e Invalid query.

При этом вроде все работает, странно. 

Да, у меня в логах точно так же.

Опубликовано
12 часа назад, Drafted сказал:

Пока решил диким костылем.

Надо проверить логику работы прошивки. После монтирования накопителей должны вызываться хук-скрипты согласно очереди накопленных на внутренней шине событий. Не знаю, есть ли различия при работе с внутренним разделом UBIFS.

12 часа назад, Drafted сказал:

 ipset-dns походу всегда стучит в upstream на каждый запрос (что логично), из-за этого первичное открытие сайта прям сильно долгое.

Все современные браузеры кэшируют DNS-запросы, поэтому я бы искал причину тормозов в чём-то другом. Начал бы с согласования MSS c MTU внутри туннеля.

12 часа назад, Drafted сказал:

Все-таки работа через локальный (прошивочный) резолвер мне показалась гораздо быстрее, чем если гнать DNS через туннель. Плюс он вроде как должен кешировать.

Загляните в /tmp/ndnproxymain.conf. Прелесть в том, что прошивочная служба (со своим кэшем) обращается в ipset-dns. Т.е. для клиента за роутером любой кэшированный DNS-ответ исходит от прошивки, а не от ipset-dns.

  • 4 недели спустя...
Опубликовано

@Александр Рыжов здравствуйте! Подскажите пожалуйста, как можно сделать, что бы можно было указывать диапазон IP адресов?

Я предположил, что раз не выходит в штатный-интернет фильтр, то нужно создать свой txt файл, с указанием диапазонов IP адресов, а дальше добавлять проверку в 

[ "$type" == "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ip link list | grep $VPN_NAME)" ] && exit
[ -z "$(ipset --quiet list bypass)" ] && exit

Верно ли я мыслю? 

Если подскажете как доработать, буду очень благодарен)

P.S. нужно для приложений, которые редко используют домены и чаще IP адреса, например тот же телеграм

Опубликовано (изменено)

Короче заменил ipset-dns на dnsmasq и все полетело, не висит на резолвинге и нормально работает с локальным DoT/DoH. И стартует всегда без проблем при перезапуске :)

Dnsmasq тоже может добавлять все зарезолвенные адреса в ipset:

ipset=/#/bypass

В остальном все тоже самое.

Изменено пользователем Drafted
Опубликовано (изменено)
В 05.04.2024 в 08:39, Сергей Грищенко сказал:

здравствуйте! Подскажите пожалуйста, как можно сделать, что бы можно было указывать диапазон IP адресов?

Кстати, диапазон или конкретный IP для роутинга в нужный интерфейс можно указать в UI, через панель Статические маршруты. Вот например 111.111.111.X

image.thumb.png.bf6c020242c1a8b333a28f260f1b1c11.png

Изменено пользователем Drafted
Опубликовано
10 часов назад, Drafted сказал:

Кстати, диапазон или конкретный IP для роутинга в нужный интерфейс можно указать в UI, через панель Статические маршруты. Вот например 111.111.111.X

Не выходит :(, по какой логике добавлять?

chrome_qklj8geqNm.png

chrome_v2cIzWpql1.png

Опубликовано (изменено)

А зачем вы всякую ерунду туда вводите?

Статический маршрут до сети позволяет настроить правило маршрутизации трафика для диапазона IP адресов заданных маской подсети через выбранный интерфейс. Как вам выше показали. С DNS это не связано. К примеру вы нашли где-то/выяснили на каких IP адресах хостится определенный сайт или несколько и хотите чтобы трафик на них шёл через выбранный VPN. 

Не нужно никакой адрес шлюза указывать. Достаточно интерфейса.

Это будет работать когда ваш VPN подключен.

Изменено пользователем keenet07
Опубликовано
1 час назад, keenet07 сказал:

А зачем вы всякую ерунду туда вводите?

Статический маршрут до сети позволяет настроить правило маршрутизации трафика для диапазона IP адресов заданных маской подсети через выбранный интерфейс. Как вам выше показали. С DNS это не связано. К примеру вы нашли где-то/выяснили на каких IP адресах хостится определенный сайт или несколько и хотите чтобы трафик на них шёл через выбранный VPN. 

Не нужно никакой адрес шлюза указывать. Достаточно интерфейса.

Это будет работать когда ваш VPN подключен.

Спасибо! 

Если кто будет тупить так же как и я, то вот пример рабочих настроек

image.thumb.png.8aa4f6a0f96b0f6e37f73343b9bf3a09.png

Опубликовано
В 08.04.2024 в 21:14, Drafted сказал:
vi /etc/ndm/netfilter.d/010-bypass-table.sh

Тут вот ошибка мелкая, нужно /opt/etc/ndm/netfilter.d/010-bypass-table.sh

А так огромное вам спасибо, ошибок в журнале больше нет, установил тоже на внутрянку памяти. По скорости работы разницы не заметил, возможно потому что роутер другой. Но однозначно рекомендую ваше решение 👍

Опубликовано
19 часов назад, Сергей Грищенко сказал:

Тут вот ошибка мелкая, нужно /opt/etc/ndm/netfilter.d/010-bypass-table.sh

А так огромное вам спасибо, ошибок в журнале больше нет, установил тоже на внутрянку памяти. По скорости работы разницы не заметил, возможно потому что роутер другой. Но однозначно рекомендую ваше решение 👍

Спасибо👍Исправил.

  • 2 недели спустя...
Опубликовано
В 08.04.2024 в 21:14, Drafted сказал:

Если @Александр Рыжов сделает из этого пакет, то будет вообще сказка)

Повторюсь это решение работает намного стабильнее и быстрее чем при использовании ipset-dns.

Погонял на KN-2710, при старте роутера так же race condition где-то остался. Как и ранее, помогает рестарт dnsmasq.

Опубликовано (изменено)
6 часов назад, Александр Рыжов сказал:

Погонял на KN-2710, при старте роутера так же race condition где-то остался. Как и ранее, помогает рестарт dnsmasq.

В /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh строчку внизу на рестарт dnsmasq не забыли добавить?

#!/bin/sh

. /opt/etc/bypass.conf

[ "$1" == "hook" ] || exit 0
[ "$system_name" == "$VPN_NAME" ] || exit 0
[ ! -z "$(ipset --quiet list bypass)" ] || exit 0
[ "${connected}-${link}-${up}" == "yes-up-up" ] || exit 0

if [ -z "$(ip route list table 1001)" ]; then
    ip route add default dev $system_name table 1001
fi

. /opt/etc/init.d/S56dnsmasq restart
Изменено пользователем Drafted
Опубликовано
19 часов назад, Drafted сказал:

В /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh строчку внизу на рестарт dnsmasq не забыли добавить?

Не то, чтобы забыл, не делал. 

Зачем перезапускать dnsmasq, если его работоспособность зависит только от наличия ipset'а, создаваемого при старте роутера?

Опубликовано (изменено)
43 минуты назад, Александр Рыжов сказал:

Зачем перезапускать dnsmasq, если его работоспособность зависит только от наличия ipset'а, создаваемого при старте роутера?

Есть подозрение что сначала нужно указать роут таблицы через нужный интерфейс, и только потом работать с ipset. По правде говоря я в этом не спец, может не прав. Но в любом случае перезапуск dnsmasq после поднятия интерфейса и добавления роута помогает всегда. Из 10 рестартов устройства все 10 успешные.

Изменено пользователем Drafted
Опубликовано
В 16.12.2023 в 10:38, Сергей Грищенко сказал:

вот скрипты для второго подключения, если вдруг кому нужно, всё точно так же, только порт для сайтов теперь 
192.168.1.1:5354

ipset-dns-keenetic.rar 1.71 \u041a\u0431 · 27 downloads

Подскажите, пожалуйста, алгоритм действий. Куда нужно поместить эти файлы, нужно ли их распаковывать и как запустить Makefile. 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   1 пользователь онлайн


×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.