Jump to content

DennoN

Forum Members
  • Posts

    221
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by DennoN

  1. первое правило обхода блокировок - не использовать днсы провайдера или даже какие-либо российские днсы. они просто не дают узнать какой адрес отдает сайт instagram.com, поэтому у тебя скрипт валится при попытке узнать ip адрес для добавления.

    Ну а так, когда кто-то пытается открыть какой-то сайт, то сначала идет обращение к днс серверу, который вместо instagram.com отдаст 31.13.72.174 например. В этом участке обход блокировок не работает. А потом уже устанавливается соединение с 31.13.72.174, и если этот адрес есть в листах обхода на кинетике, то это соединение идет через туннель, а не через провайдера.

    А на мобилках работает скорее всего, что часто им плевать на днсы, которые они получают от роутера, используют свои. В браузере, например в Фаерфоксе на компе тоже можно настроить, что бы он обращался за адресами не к роутеру, а к другим серверам. Думаю в любом другом современном браузере это тоже можно сделать.

    Но лучше на роутере настроить DOT/DOH сервера, благо кинетик умеет из коробки в вэб морде все это настраивать

    • Thanks 1
  2. 6 часов назад, Dmitriy Terentev сказал:

    какой интерфейс надо указать в скрипте

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

    А команда opkg dns-override отключает только встроенный днс в кинетике, на маршрутизацию никак не влияет

  3. @Dmitriy Terentev думаю надо копать в сторону фаерволла и nat на роутере. По факту получается, что на роутере все работает, а в локальной сети - нет. Скрипты тут ни при чем, отрабатывают как и должны, просто сам впн не донастроен. Из вэб морды роутер сам все это делает, а тут надо руками прописывать

    вот тут что-то есть

     

  4. 12 часа назад, Tiko сказал:

    Еще заметил, в antifilter.list лежит полный список ip из ipresolve.lst + subnet.lst а это 370 тыс. строк, а в bird4-base-vpn1.list всего 240 тыс. строк, получается остальные 130 тыс. строк не просканировались?

    сравнил файлы. смысл в том, что адреса из antifilter.list грузятся не напрямую, а их обрабатывает утилита iprange, которая если видит, что 2 адреса стоят рядом - объединяет их в один с более большой маской. Например:

    Скрытый текст

    было:

    1.32.249.30/32
    1.32.249.31/32
    
    103.224.212.202/32
    103.224.212.203/32
    103.224.212.204/32
    103.224.212.205/32
    103.224.212.206/32
    103.224.212.207/32

    стало:

    1.32.249.30/31
    
    103.224.212.202/31
    103.224.212.204/30

     

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

    Насколько это правильно?

    ну скрипт может такое обрабатывать. я в свое время пытался использовать такую же схему, но мне не понравилось, что если остановить и запустить bird он висит минут 5, переваривает все адреса. Задержка открытия по идее не должна быть сильно больше, там поиск шустрый, но если заметишь, что что-то начинает тупить, то это первый кандидат на проверку)

     

    • Thanks 1
  5. работать с двумя впн должно так:

    1) списки с антифильтра направляются через первый впн. если первый выключен, то через второй.

    2) есть возможность задавать в ручную какие адреса направлять на тот или иной впн. если направление идет через конкретный впн, а он не досутпен, то пойдет через провайдера.

    3) Если же указано без привязки к конкретному впну, то пойдет по логике как в первом пункте

    нужно смотреть:

    ip route list table 1000 - туда подгружаются ручные перенаправляения через определнный впн и провайдера

    ip route list table 1001 - туда подгружаются список с антифильтра + свои перенаправление через впн без привязки к конкретному впн. траффик из этой таблицы идет через первый впн. если он отключен, то таблица должна быть пустой

    ip route list table 1002 - тут так же как и в 1001, только траффик идет через второй впн (у нее приоритет меньше, поэтому срабатывает, только когда 1001 таблица пустая)

    • Thanks 1
  6. да уж. кто-то хорошо поломал весь крон

    rm /opt/etc/cron.monthly/S02bird-table

    chmod 0600 /opt/etc/crontab - возможно не обязательно.

    когда увидишь, что все заработает - не забудь удалить файл /opt/etc/cron.1min/add-bird4_routes.sh - 1 минута слишком часто, скрипт может выполнятся дольше + там идет нагрузка на цпу, когда он выполняется из-за того, что 1 - ищет различия между новыми файлами и старыми 2 - bird перечитывает таблицы.

    Возможно где-то еще ошибки всплывут, так как реально тут много того, чего не должно быть

  7. а че это у тебя все закоментировано?😀 и ипсет откуда-то появился?

    SHELL=/bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin
    MAILTO=""
    HOME=/
    # ---------- ---------- Default is Empty ---------- ---------- #
    */1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min
    */5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins
    01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly
    02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily
    22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly
    42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthly

    вот как стандартный файл должен выглядеть до того, как его поломают)

    внеси изменения и перезапусти cron

  8. @Za1batsu по поводу изменения скоростей на спидтесте - смысл в том, что если заполнять файл user-vpn.list в виде

    speedtest.net
    www.speedtest.net

    то траффик через впн будет идти только к этим сайтам. но если посмотреть куда сайт обращается при запуске теста (жмем в браузере кнопку F12 и смотрим сеть), то видно, что сами файлы для теста он скачивает с адресов https://speedtest.camstream.ru.prod.hosts.ooklaserver.net:8080/download?... например, могут быть и другие в зависимости от сервера, с которого идет проверка. И тут становится сразу понятно, что через впн идет только сайт спидтеста, а все остальное идет через провайдера. Так что это не баг и не странность, это особенность работы.

    С некфликсом - так же. нужно искать в интернете сети, которые им принадлежат и прописывать их в файл. Надееться на то, что все заработает если указать просто www.netflix.com - не стоит, так как это покрывается только небольшую часть их громандой инфраструктуры. Там еще и cdn скорее всего есть.

    @drfischer то что команда cron не выполняется это нормально. тут копать надо. логи крона вроде в морду кинетика в диганостика - журнал выводится. Я бы для теста положил файлик еще в  /opt/etc/cron.5mins/ и смотрел что выводится. У меня была похожа проблема, когда я накосячил в скриптах и у меня из консоли все выполнялось хорошо, а из крона нет, так как там были переменные, которые наполнялись значениями только если запускать в ручную. А в кроне они оставались пустыми и ничего не происходило. Но это было давно и я это поправил

  9. @Mr.Weegley

    мне тут @_villi_ показал конфиг, который нормально работает, если указать ifname

    Скрытый текст
    .......
    protocol kernel kernel_routes {
        learn;
        scan time 60;
        import none;
        export all;
        kernel table 1000; # kernel routing table number
        device routes yes;
    }
    .......
    protocol bgp antifilter {
        import filter {
            if martians() then reject;
            ifname = "nwg0";
            accept;
        };
        export all;
        local as 64999; # local default as-number
        neighbor 45.154.73.71 as 65432;
        multihop;
        hold time 240;
        preference 250;
    }

     

    изменения только в protocol kernel kernel_routes ну и в bgp antifilter указать ifname. остальное не менять. тогда и ругани нет в логах и все работает

    ключевая строка, которая позволяет всему этому делу работать - device routes yes

    • Thanks 1
    • Upvote 2
  10. Обновление!

    v3.2

    https://github.com/DennoN-RUS/Bird4Static

    Добавлена возможность указыать в переменных не имя интерфейса, а шлюз.
    Если у вас при заполнении файла user-isp.list перестают открываться ресурсы указанные в нем, то надо изменить переменную в скрипте add-bird4_routes.sh с ISP=eht3 (где eth3 - это интерфейс провайдера) на ISP=10.0.0.1 (где 10.0.0.1 - это шлюз провайдера).
    Узнать шлюз можно командой ip route | grep default
    ВНИМАНИЕ! Сам скрипт не отслеживает какой сейчас шлюз. Если вы указали один, а потом он изменился, то надо снова менять в файле значение переменной ISP и перезапускатть скрипт. Так что если у вас все работает и так, то ничего менять не надо!

    git clone -b v3.2 https://github.com/DennoN-RUS/Bird4Static.git

    Спасибо @Daniil413 за долгий и самостоятельный ресерч проблемы, теперь у тех, у кого были проблемы с перенаправлением ресурсов через провайдера должно все заработать. @mystique_man - обрати внимание, должно сработать

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

    • Thanks 4
    • Upvote 1
  11. 7 часов назад, Дмитрий Медведев сказал:

    правда эта команда не помогла

    если версия скрипта 3.* то команда такая ip route list table 1001 | grep ...

    так как в 1000 таблицу попадает только то, что указано в ручную. а в 1001 уже сам список с антифильтра

    а по поводу ошибки - кажется не может срезолвить адрес. может днс не успевает или еще что-то

    проверил командой

    iprange /opt/root/Bird4Static/Install/double_vpn/user-vpn.list
    45.154.73.71
    82.221.104.145
    104.21.41.93
    172.67.146.101

    а вот поменял rezka.ag на rezka.ag1 и получил такое

    iprange /opt/root/Bird4Static/Install/double_vpn/user-vpn.list
    iprange: DNS: 'rezka.ag1' failed permanently: Name or service not known
    45.154.73.71
    104.21.41.93
    172.67.146.101

    Можно так проверять любой список, просто выполнив команду iprange /путь_до_списка

    • Thanks 1
  12. 5 часов назад, Aftalik сказал:

    *.fbcdn.net - так нельзя?

    к сожалению нет:( по идее утилита сможет срезолвить адрес, но получится узнать адрес только fbcdn.net. а какое-нибудь test.fbcdn.net если висит на другом адресе, то в лист перенаправления не попадет

  13. Обновление!

    v3.1

    https://github.com/DennoN-RUS/Bird4Static/commit/6fa949c2b9d7b4fdd880bee4fb2b50d178be56cc

    алгоритмы добавления пользовательских адресов переделаны на утилиту iprange. удален теперь уже не нужный скрипт addip.sh, подчищены пробелы из файлов

    теперь можно заполнять файлы со своими доменами/адресами в таких вариантах:

    • комментарии начинаются с решётки (#) или точки с запятой (;);
    • один IP на строку (без маски);
    • CIDR на строку (A.A.A.A/B);
    • диапазон IP-адресов на строку (A.A.A.A - B.B.B.B);
    • диапазон CIDR на строку (A.A.A.A/B - C.C.C.C/D); диапазон рассчитывается как сетевой адрес A.A.A.A/B до широковещательного адреса C.C.C.C/D;
    • CIDR могут быть заданы либо в формате префикса, либо в формате сетевой маски во всех случаях (включая диапазоны);
    • одно имя хоста в строке, разрешаемое с помощью DNS (если IP-адрес разрешается в несколько IP-адресов, все они будут добавлены) имена хостов не могут быть указаны в виде диапазонов;
    • пробелы и пустые строки игнорируются.

    @avn спасибо за подсказку про iprange. удобная утилита)

    • Thanks 5
    • Upvote 2
  14. 12 часа назад, Toporbl сказал:

    upd: вся проблема из за https://antifilter.download/list/ip.lst, проблемы нет, вернул allyouneed как было всё стартует запускается)

    да, там скрипт нацелен на формат, что в этом листе адреса вида *.*.*.*/* а в ip.list формат *.*.*.* просто. в принципе что бы работало надо заменить строки в файле add-bird4_routes.sh

    cat $BLACKLIST | sed 's/^/route /' | sed 's/$/ via "'$VPN1'";/' | diff -u $ROUTE_BASE_VPN1 - | patch $ROUTE_BASE_VPN1 -
    cat $BLACKLIST | sed 's/^/route /' | sed 's/$/ via "'$VPN2'";/' | diff -u $ROUTE_BASE_VPN2 - | patch $ROUTE_BASE_VPN2 - 

    на

    cat $BLACKLIST | sed 's/^/route /' | sed 's/$/\/32 via "'$VPN1'";/' | diff -u $ROUTE_BASE_VPN1 - | patch $ROUTE_BASE_VPN1 -
    cat $BLACKLIST | sed 's/^/route /' | sed 's/$/\/32 via "'$VPN2'";/' | diff -u $ROUTE_BASE_VPN2 - | patch $ROUTE_BASE_VPN2 -

    то есть добавить \/32

    только когда я так пробовал у меня роутеру становилось плохо из-за количества маршрутов. слишком долго загружалась таблица.

  15. @mystique_man

    вывод команды ip route list

    и вывод команды ip route list table 1000 (если новая версия скриптов, то там будет только то, что в ручную направлено из конфигов)

    @Максим_

    скорее всего нужно в впн перенаправить все сети истаграма. надо их список в инете найти

  16. Обновление!

    v3.0

    https://github.com/DennoN-RUS/Bird4Static/

    1) Добавлена возможность работы с двумя впн

    2) Переделана логика маршрутизации, теперь в таблицу по более высокому приоритету попадают пользовательские маршруты, а во вторую таблицу маршруты с антифильтра

    3) Теперь сам bird следит за тем, поднят впн или нет, если впн отключен, то маршрты для этого интерфейса удаляются из таблиц. При включении они сами добавляются

    4) Переделано внесение изменений в файлы, теперь старые файлы с маршрутами не перезатираются, а просто изменяются до текущей версии (добавление/удаление строк происходит через патчи)

    5) Ну и запилена автоустановка, теперь возможно 2 варианта- для одного впн и для двух, о чем она будет спрашивать при установке

    Может еще что-то изменилось, мог забыть. С текущими скриптами в 2 впн я сижу уже полгода, проблем не возникает. Систему с один впн протестировали с @timur1337 (у него заработало)

    Если кто-то будет ставить поверх старой, то лучше ознакомьтесь с описанием https://github.com/DennoN-RUS/Bird4Static/releases/tag/v3.0

    @Максим_ тут уже не используются команды ndmc, так что можешь попробовать

     

     

     

    • Thanks 2
  17. 8 часов назад, timur1337 сказал:

    Как решить проблему?

    решили проблему. указали адрес без маски и все сработало

    21 час назад, Максим_ сказал:

    получаю -sh: ndmc: not found

    странно. у меня эта команда в entware на кинетике есть отрабатывает нормально

    23 часа назад, mystique_man сказал:

    Где-то закралась ошибка в скриптах у Вас)

    возможно все-таки не тот интерфейс для isp выбран. или как-то хитро работает. у меня провайдер выдает сразу внешний адрес без ppoe или каких-либо других туннелей. Просто указываю интерфейс для отправки через eth3 и все. остальные протоколы не тестил из-за их отсутствия. тут нужно смотреть таблицу роутинга по умолчанию и то, что скрипт внес в 1000 таблицу

  18. У меня работает стабильно. Проблемы могут быть:

    1) если антифильтер вообще ляжет, то не будет маршрутов через впн, кроме тех, что жестко прописаны в файле bird4-vpn.list. ничего не сломается, просто впн не будет задействован. А адреса он всегда выдавал правильные, и проблем ни разу не было

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

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

    Ну а рега нужна только для бгп. тут же просто скачиватеся файл, и все, авторизаций никаких не нужно.

    • Upvote 1
  19. Правильно понимаю, что если зайти в вэб интерфейс кинетика где настраиваются впны, то в статусе Вг подключения пир будет серым? то есть подключения не произошло?

    Вообще скрипт никак не влияет на работу впнов. он влияет только на маршрутизацию по умолчанию. Возможно просто адрес пира попал в листы которые надо пускать через впн и из-за этого происходит накладки?

    в консоли opkg выполнить

    ip route list table 1000 | grep  Тут указать ip адрес пира.
    если ничего не вывело, то удалить последние цифры и попробовать снова. пример:

    ip route list table 1000 | grep 31.13.71.36 - не находит
    ip route list table 1000 | grep 31.13.71.3 - не находит
    ip route list table 1000 | grep 31.13.71. - не находит
    ip route list table 1000 | grep 31.13.7 - находит 31.13.70.0/22 dev nwg0 scope link

    так как маска 22 , то она включает в себя сети 31.13.70.0/24 и 31.13.71.0/24

    если адрес пира действительно направлен в туннель, то надо добавить в исключения. это делается в файле Bird4Static/lists/bird4-isp.list

    ну и небольшое дополнение: маршруты работают только для Основного профиля
     

    Скрытый текст

    image.png.1dced387225d4639986ba50d9fcb0718.png

    любые другие профили будут игнорировать то, что сделал скрипт и отрабатывать как расставлены приоритеты

×
×
  • Create New...