Jump to content

Выборочный роутинг через VPN туннель


Recommended Posts

Обновленные версии скриптов

backup-UnblockVPN.tar.gz

+ Добавлена диагностика результата добавления маршрута с выводом в системный лог

919784742_.png.97f3068d76d7c326eb83b62b8de1cc3d.png

 

Edited by avn
  • Upvote 3
Link to comment
Share on other sites

  • 4 months later...

Предложение по улучшению скрипта. Сейчас разрешение доменных имен происходит так:

dig A +short $line @localhost -p 53

Т.е., если у вас не принято никаких дополнительных мер, адрес в конце концов будет определяться через днс провайдера, что нехорошо. У меня на роутере настроены DoT и DoH, и вроде все должно быть нормально. Но я обратил внимание, что если запустить скрипт несколько раз подряд, каждый раз количество адресов в списке разное. Вряд ли адреса сайтов меняются несколько раз в течение минуты, т.е. проблема именно в процессе разрешения имен. Обнаружил, что dig v9.17.13 из entware поддерживает dot,doh, и даже dnssec. В итоге изменил строку в скрипте на эту:

dig +short +https $line @8.8.8.8

Теперь скрипт работает стабильно + провайдер точно не вмешается. 

  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

В 13.08.2021 в 12:17, comono сказал:

Предложение по улучшению скрипта. Сейчас разрешение доменных имен происходит так:

dig A +short $line @localhost -p 53

Т.е., если у вас не принято никаких дополнительных мер, адрес в конце концов будет определяться через днс провайдера, что нехорошо. У меня на роутере настроены DoT и DoH, и вроде все должно быть нормально. Но я обратил внимание, что если запустить скрипт несколько раз подряд, каждый раз количество адресов в списке разное. Вряд ли адреса сайтов меняются несколько раз в течение минуты, т.е. проблема именно в процессе разрешения имен. Обнаружил, что dig v9.17.13 из entware поддерживает dot,doh, и даже dnssec. В итоге изменил строку в скрипте на эту:

dig +short +https $line @8.8.8.8

Теперь скрипт работает стабильно + провайдер точно не вмешается. 

Достаточно посмотреть файлик /tmp/ndnproxymain.stat (show dns-proxy) и поменять порт 53 на 40500-40507 для TLS и 40508-40515 для HTTPS

 

 

Edited by avn
Link to comment
Share on other sites

  • 3 weeks later...

Пытаюсь использовать последнюю версию скриптов от Ув. avn. Результат такой - из списка в 4 адреса добавляется 1 или 2 всего. Причём с этими добавленными заблоченные страницы открываются. Использую WG. Что я делаю не так? 

Link to comment
Share on other sites

9 часов назад, keva сказал:

Результат такой - из списка в 4 адреса добавляется 1 или 2 всего.

Если у вас используется dns-over-tls или dns-over-https, обратите внимание на предыдущий вашему пост

  • Thanks 1
Link to comment
Share on other sites

3 часа назад, comono сказал:

Если у вас используется dns-over-tls или dns-over-https, обратите внимание на предыдущий вашему пост

Спасибо большое,что так оперативно откликнулись. dns-over-tls или dns-over-https не использую. Попробовал Вашу корректировку. Стало по лучше в том смысле, что оригинальный скрипт подзависал на, порядка, 45 секунд при запуске на списке из ... аж 4-х адресов. После корректировки - пара секунд, не более. Но беда такая - в списке остаётся ТОЛЬКО последняя строчка. Просто для некоторых выводиться 2 - 3 IP-шника... Т. е. самую малость подисправить - да не знаю, как... Кстати - если в конце списка ввести пустую строку - список пустой. Т. е. точно сохраняет только последнюю. И ещё - не подскажите - как у Вас dns-over-tls или dns-over-https настроен?

Link to comment
Share on other sites

21 час назад, keva сказал:

Но беда такая - в списке остаётся ТОЛЬКО последняя строчка. Просто для некоторых выводиться 2 - 3 IP-шника... Т. е. самую малость подисправить - да не знаю, как... Кстати - если в конце списка ввести пустую строку - список пустой. Т. е. точно сохраняет только последнюю.

Итак, у вас есть файл со списком заблокированный сайтов. Вы запускаете скрипт, смотрите таблицу маршрутизации и видите только маршруты для последнего сайта из файла. Я правильно понял ситуацию? Посмотрел еще раз исходный скрипт. На мой дилетантский взгляд, должно все работать. Могу только предположить, что вы вносили и другие изменения в скрипт.  Например,  строчка

ip route flush table 1000

у вас точно вне цикла while? Если она вдруг оказалась внутри цикла, результат будет таким, как вы описали.

По поводу настроек dns-over-tls или dns-over-https, я не смогу рассказать лучше, чем в help Кинетика

  • Thanks 1
Link to comment
Share on other sites

5 часов назад, comono сказал:

Итак, у вас есть файл со списком заблокированный сайтов. Вы запускаете скрипт, смотрите таблицу маршрутизации и видите только маршруты для последнего сайта из файла. Я правильно понял ситуацию?

Да так и происходит.

5 часов назад, comono сказал:

Например,  строчка

ip route flush table 1000

у вас точно вне цикла while? Если она вдруг оказалась внутри цикла, результат будет таким, как вы описали.

В самом скрипте кроме IP и Вайгуардовского интерфейса вообще ничего не менял. А, ну да, Вашу правку из поста выше внёс. Но без неё вообще подзависал скрипт, как описывал. Скрипт, который на роутере прилагаю...

5 часов назад, comono сказал:

По поводу настроек dns-over-tls или dns-over-https

Хелп Кинетиковский читал, конечно. Просто Спросил про конкретную реализацию у Вас. Ну типа отдельный кэширующий сервер DNS на Кинетике, типа Unbound... , Pi-hole на VPS... Или ещё какие особенности...

unblock_vpn.rar

Edited by keva
Link to comment
Share on other sites

15 часов назад, keva сказал:

Ну типа отдельный кэширующий сервер DNS на Кинетике, типа Unbound... , Pi-hole на VPS... Или ещё какие особенности...

Нет, использую стандартные возможности кинетика, к чему плодить сущности?

По поводу вашего скрипта. С ним все нормально, я даже запустил его для уверенности (правда, не на роутере, а на линуксовой машине, но не суть). Даже не знаю, к чему еще прицепиться. Какие записи появляются в логе кинетика после запуска скрипта?  И еще, а файл со списком сайтов вы создавали в редакторе под Windows? Если да, то возможно в этом  причина вашей проблемы. Установите на роутер текстовый редактор, например, nano, и создайте файл в нем. Или используйте редактор под windows, который умеет текстовые файлы в unix-формате 

  • Thanks 2
Link to comment
Share on other sites

4 часа назад, comono сказал:

Нет, использую стандартные возможности кинетика, к чему плодить сущности?

По поводу вашего скрипта. С ним все нормально, я даже запустил его для уверенности (правда, не на роутере, а на линуксовой машине, но не суть). Даже не знаю, к чему еще прицепиться. Какие записи появляются в логе кинетика после запуска скрипта?  И еще, а файл со списком сайтов вы создавали в редакторе под Windows? Если да, то возможно в этом  причина вашей проблемы. Установите на роутер текстовый редактор, например, nano, и создайте файл в нем. Или используйте редактор под windows, который умеет текстовые файлы в unix-формате 

Да, дело оказалось именно в UNIX EOL. Это я жестоко протормозил. Спасибо Вам БОЛЬШОЕ, что так настойчиво наставили на путь истинный!

Link to comment
Share on other sites

  • 2 weeks later...

Приветствую.

Я бы хотел попросить оказать содействие в доработке скрипта - условно говоря настроить резервирование;

если сдох один wg, чтобы переключался на другой.

p.s. и вопрос на засыпку: keenetic же не сможет иметь 2 одинаковых ip адреса в wg туннелях? (wg серверы на однотипных vps)

Link to comment
Share on other sites

В 22.03.2021 в 01:22, avn сказал:

Обновленные версии скриптов

В вашем случае vpn клиенты роутера работают через данный обход? С древними версиями скриптов работало всё, после переустановки entware никак завести не могу.

Записи добавляются, трасировка на роутера идёт нормально. А вот впн клиенты по прежнему идут "по старинке". Исходя из предыдущих сообщений (забылось уже как эта поправка родилась) ставил:

ip rule add iif br0 table 1000 priority 1776

вместо 1777.

Не помогло(

 

Link to comment
Share on other sites

Всем привет!

Подскажите, пожалуйста, а есть ли подобное решение для ipv6-адресов? 

Т.е. вносим /opt/root/vpnsitelist.txt, скрипт резолвит его ipv6 адрес и создает маршрут до vpn.

 

 

Link to comment
Share on other sites

6 часов назад, Zeight сказал:

Всем привет!

Подскажите, пожалуйста, а есть ли подобное решение для ipv6-адресов? 

Т.е. вносим /opt/root/vpnsitelist.txt, скрипт резолвит его ipv6 адрес и создает маршрут до vpn.

 

 

Думаю, по аналогии можно сделать:

unblock_vpn.sh

Проверить не могу,- Wireguard не поддерживает ipv6. @Le ecureuil Когда уже будет поддерживать?

Edited by avn
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...