Jump to content

ankar84

Forum Members
  • Content Count

    402
  • Joined

  • Last visited

  • Days Won

    3

ankar84 last won the day on January 24

ankar84 had the most liked content!

Community Reputation

122 Excellent

1 Follower

About ankar84

  • Rank
    DNSCrypt fan

Converted

  • Location
    Новосибирск

Equipment

  • Keenetic
    Keenetic Giga (KN-1010) 3.3.9

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Для удобства пользователей прошу создать шаблон Instant View для Telegram для статей базы знаний и других статичных информационных страниц.
  2. Моих знаний сети и Linux уже тоже явно не хватает для решения вашей проблемы. Нужно звать @avn или еще кого-то из гуру.
  3. Добавить данный функционал в базовую прошивку было бы очень здорово и решило бы приличное количество проблем. Но пока этого нет, рекомендую данный способ (необходимо Entware)
  4. В настройках пира туннеля Wireguard должна быть вот такая разрешенная сеть 0.0.0.0/0 (весть интернет)
  5. Тогда давайте посмотрим traceroute до узла в списке. Как я писал выше, для проверки я добавил 2ip.ua в список обхода. Вот что получается у меня: ~ # traceroute 2ip.ua traceroute to 2ip.ua (77.123.139.189), 30 hops max, 38 byte packets 1 172.16.82.5 (172.16.82.5) 173.835 ms 173.622 ms 173.751 ms 2 внешний адрес туннеля То есть сразу же первым хопом мы должны получить второй конец тоннеля (в вашем случае это кажется будет 10.0.0.1) а у меня настроено по инструкциям из базы знаний сервер 172.16.82.1 и пир 172.16.82.5
  6. Адрес роутера на интерфейсе VPN. Видимо да, 10.0.0.4 Тут я смотрел в журнале роутера когда дергал тумблер своего wireguard подключения. Что в логах написано, то и нужно в этот скрипт записать. В моем случае без нуля (имя брал из журнала Диагностики роутера). У вас, возможно и с нулем, посмотрите как определяется в логах. Обновление: сейчас у себя в логах глянул, у меня тоже с нулем - а именно вот так Wireguard0 называется это подключение. Но точно было с маленькой буквы и без нуля ранее. А вот на 3.3.10 вот так. Пойду проверю работу схемы. Обновление 2: да, у меня и в диагностике Wireguard0 и в скрипте Wireguard0 и все работает. Вот как выглядит мой скрипт: ~ # cat /opt/etc/ndm/ifstatechanged.d/100-add_unblock_route.sh #!/bin/sh [ "$1" == "hook" ] || exit 0 [ "$change" == "link" ] || exit 0 [ "$id" == "Wireguard0" ] || exit 0 case ${id}-${change}-${connected}-${link}-${up} in Wireguard0-link-no-down-down) ip route flush table 1000 ip rule del from all table 1000 priority 1777 ;; Wireguard0-link-yes-up-up) ip rule add from all table 1000 priority 1777 /opt/bin/unblock_vpn.sh & ;; esac exit 0
  7. Правило есть, это очень хорошо. Осталось разобраться с заполнением таблицы. Я выше описал как это сделать.
  8. Давайте по порядку. Выполнили необходимые переименования имен интерфейсов под свой VPN туннель? В том же файле /opt/etc/ndm/ifstatechanged.d/100-add_unblock_route.sh нужно сделать замены в следующих строках вместо wireguard имя своего интерфейса [ "$id" == "wireguard" ] || exit 0 wireguard-link-no-down-down) wireguard-link-yes-up-up) А в строках 10 и 13 предлагаю использовать более универсальную команду, чтобы из всех источников пакеты отправлялись в туннель, если адрес назначения из таблицы 1000 ip rule add from all table 1000 priority 1776 Скорее всего нужный вам интерфейс носит название VPNL2TPServer и тогда скрипт должен выглядеть вот так: #!/bin/sh [ "$1" == "hook" ] || exit 0 [ "$change" == "link" ] || exit 0 [ "$id" == "VPNL2TPServer" ] || exit 0 case ${id}-${change}-${connected}-${link}-${up} in VPNL2TPServer-link-no-down-down) ip route flush table 1000 ip rule del from all table 1000 priority 1776 2>/dev/null ;; VPNL2TPServer-link-yes-up-up) ip rule add from all table 1000 priority 1776 2>/dev/null /opt/bin/unblock_vpn.sh & ;; esac exit 0 Но тут я могу и ошибаться, пробуйте. Нужно понять, заполняется ли вообще таблица. Что дает выполнение команды /opt/bin/unblock_vpn.sh ? Есть ли у вас файл /opt/etc/unblock-vpn.txt ? Есть ли в нем нужные вам данные? В файле /opt/bin/unblock_vpn.sh, так же нужно провести несколько замен под свои данные: ip route add table 1000 $cidr via 10.64.0.1 dev nwg1 2>/dev/null ip route add table 1000 $addr via 10.64.0.1 dev nwg1 2>/dev/null awk '{system("ip route add table 1000 "$1" via 10.64.0.1 dev nwg1 2>/dev/null")}' Здесь нужно заменить 10.64.0.1 на IP адрес роутера интерфейса вашего L2TP туннеля, и nwg1 нужно заменить на имя вашего интерфейса L2TP туннеля. Посмотреть имена всех интерфейсов можно командой ifconfig Затем пробуем сначала успешно забить таблицу адресами и сетями и проверяем ее заполненность командой ip route show table 1000 И если таблица заполнена нужными нам данными можно приступать к следующим шагам в диагностике запустить скрипт /opt/etc/ndm/ifstatechanged.d/100-add_unblock_route.sh и проверить таблицу маршрутизации ip rule list Там должно быть правило 1776, которое направляет все пакеты на адреса и сети из таблицы 1000 в нужный туннель. Если такое правило есть то можно приступать к последней стадии диагностики - проверять работу хука на остановку и поднятие туннеля. В веб интерфейсе выключить тумблер туннеля. Подождать, проверить таблицу 1000 и список маршрутизации -там должно быть чисто. Затем снова включить тумблер туннеля и немного подождать. Затем снова проверить таблицу 1000 и список маршрутизации - таблица должна быть заполнена и на нее должен быть маршрут.
  9. Возможно большинству именно это подойдет как более простое и полное решение. Спасибо!
  10. Подскажите, а эта команда добавит маршрутизацию только для таблицы 1000 но на всех интерфейсах роутера?
  11. и это я понимаю. Не хотелось городить что-либо стороннее для разрешения имен, так как в прошивку добавили мощные шифрованные DNS
  12. Да, трассировка на роутере у меня тоже показывает что запросы идут прямым путем, а не через VPN. Но тут или просить помощи у @avn или может кто из других знатоков поможем. У меня выводит (скрин прикладывал к посту) добавил в самом конце скрипта unblock_vpn.sh после done
  13. Нужное нам правило добавлено. Осталось понять, откуда проверяете? Если с компьютера в домашней сети, который ходит в интернет через интерфейс br0 роутера, то должно работать. Если еще из какого-то сегмента сети, который сейчас ходит в интернет через какой-то другой интерфейс, то нужно его так же прописать, как я это делал в примере для l2tp ip rule add iif l2tp0 table 1000 priority 1778
  14. Что покажет ip rule list ? И ppp0 это интерфейс для вашего туннеля и 10.10.10.1 это адрес роутера на интерфейсе ppp0 ?
  15. Это понятно и с этим я полностью согласен. И сам ранее очень активно использовал DNScrypt-proxy2 для этого. Но когда DoT и DoH появились "ис каропки" очень захотелось использовать именно их и вообще максимально штатными средствами.
×
×
  • Create New...