DennoN Posted April 9, 2022 Author Share Posted April 9, 2022 Обновление! 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 - обрати внимание, должно сработать Если шлюз динамический, то есть возможность вставлять его скриптами, но в гит это класть не хочу, если кому это нужно - пишите в эту тему, создам скрипт, расскажу куда его класть и как с ним работать 4 1 Quote Link to comment Share on other sites More sharing options...
withjonjon Posted April 13, 2022 Share Posted April 13, 2022 Прекрасно работает, но ни в какую не хочет пропускать через VPN трафик мобильного приложения Twitter. Есть какое-то решение? Quote Link to comment Share on other sites More sharing options...
Daniil413 Posted April 14, 2022 Share Posted April 14, 2022 (edited) 18 часов назад, Рома Степанов сказал: Прекрасно работает, но ни в какую не хочет пропускать через VPN трафик мобильного приложения Twitter. Есть какое-то решение? Не все айпишники доменов, на которые отправляет запросы мобильный Твиттер, есть в выгрузке Antifilter. В частности, трафик пытается напрямую идти к этим трём доменам из 10+ при запуске приложения: na.albtls.t.co na.glbtls.t.co api.twitter.com ---- Подозреваю, что основная проблема в последнем домене, но лучше отправить через VPN все 3. Внесите эти домены в Bird4Static/lists/user-vpn.list, запустите скрипт обновления Bird4Static/scripts/add-bird4_routes.sh и будет вам счастье. А если есть время и желание помочь многим, то можете связаться с разработчиками Antifilter, попросив добавить в выгрузку отсутствующие айпишники доменов для моб.приложения Твиттера. Edited April 14, 2022 by Daniil413 2 Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 14, 2022 Share Posted April 14, 2022 (edited) Подскажите пожалуйста. После установки скрипта - не отработала эта его часть: # Organizing scripts into folders ln -sf $SCRIPTS/bird-table.sh /opt/etc/init.d/S02bird-table Пытался вручную создать s02bird-table - не вышло. Что можно предпринять? UPD. Все-таки удалось принудительно создать ярлык S02bird-table с /opt/root/Bird4Static/scripts/bird-table.sh. Странно, что и без него все работало. Вообще в чем необходимость в /opt/etc/init.d/S02bird-table ? Edited April 14, 2022 by drfischer Quote Link to comment Share on other sites More sharing options...
Daniil413 Posted April 14, 2022 Share Posted April 14, 2022 4 часа назад, drfischer сказал: Подскажите пожалуйста. После установки скрипта - не отработала эта его часть: # Organizing scripts into folders ln -sf $SCRIPTS/bird-table.sh /opt/etc/init.d/S02bird-table Пытался вручную создать s02bird-table - не вышло. Что можно предпринять? UPD. Все-таки удалось принудительно создать ярлык S02bird-table с /opt/root/Bird4Static/scripts/bird-table.sh. Странно, что и без него все работало. Вообще в чем необходимость в /opt/etc/init.d/S02bird-table ? При перезагрузке Keenetic исполняются скрипты, которые лежат в init.d. В данном случае скрипт bird-table.sh, который проверяет наличие правил маршрутизации для таблиц 1000, 1001..2, т.е. тех, который как раз и заполняет айпишниками bird. Если правил нет, то он их создаёт, а при выключении роутера -- удаляет. В итоге у вас всегда есть правила для таблиц маршрутизации и включённая пользовательская маршрутизация -- за этим активно следит этот скрипт. Уточните, а какую ошибку вы получали при установке, когда install.sh пытался создать символическую ссылку на bird-table.sh? И как вы её пофиксили? Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 14, 2022 Share Posted April 14, 2022 4 часа назад, Daniil413 сказал: Уточните, а какую ошибку вы получали при установке, когда install.sh пытался создать символическую ссылку на bird-table.sh? И как вы её пофиксили? Ошибок не получал. Просто обратил внимание,что раз в час файл antifilter.list никак не изменяется, т.е. ничего не обновляется,если принудительно скрипт add-bird4_routes.sh не запустить. Начал изучать папки - что где должно создаваться и увидел,что в init.d нет файла S02bird-table (точнее, это ярлык же на файл bird-table.sh, который у меня лежит по пути: /opt/root/Bird4Static/scripts. Через WinScp сделал ярлык принудительно. Хотя не знаю помогло ли. ) Как не обновлялся antifilter.list сам - так и не обновляется похоже (сужу по размеру и времени создания файла). Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 14, 2022 Author Share Posted April 14, 2022 (edited) @drfischer выполни еще команду ln -sf /opt/root/Bird4Static/scripts/add-bird4_routes.sh /opt/etc/cron.hourly/ и проверь что в папке /opt/etc/cron.hourly/ появился файл add-bird4_routes.sh + команда /opt/etc/init.d/S10cron check должна вывести что сервис alive Edited April 14, 2022 by DennoN Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 14, 2022 Share Posted April 14, 2022 (edited) 13 часа назад, DennoN сказал: должна вывести что сервис alive Так и есть. Alive! А в cron.hourly ярлык тот лежит. Он при установке скрипта еще появился. но обновляться никак не хочет,почему-то. Edited April 15, 2022 by drfischer Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 15, 2022 Share Posted April 15, 2022 Может у меня cron не работает нормально? Запустил команду "cron" и получил это: cron: can't lock /opt/var/run/cron.pid, otherpid may be 697: Resource temporarily unavailable Quote Link to comment Share on other sites More sharing options...
Za1batsu Posted April 15, 2022 Share Posted April 15, 2022 @DennoN Добрый день! Настроил всё согласно мануалу на гитхабе. Большинство сайтов открываются без проблем, но при внесении в user-vpn.list, например speedtest.net выдаёт мо айпи от провадера, netflix всё равно показывает что регион RU, хотя впн через сша. ip route list table 1000 показывает резолвед адреса, так как в файле писал fqdn Вчера вообще себя странно вёл, когда я вписал в файл адрес в формате www.speedtest.net - ip определялся впн'а, а скорость измерялась как будто в обход впн, ну то есть на kn-1101 нельзя получить 500mbit/s по openvpn. Почему так может быть? Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 15, 2022 Author Share Posted April 15, 2022 (edited) @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/ и смотрел что выводится. У меня была похожа проблема, когда я накосячил в скриптах и у меня из консоли все выполнялось хорошо, а из крона нет, так как там были переменные, которые наполнялись значениями только если запускать в ручную. А в кроне они оставались пустыми и ничего не происходило. Но это было давно и я это поправил Edited April 15, 2022 by DennoN Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 15, 2022 Share Posted April 15, 2022 1 час назад, DennoN сказал: журнал выводится У меня в журнале кинетика только такие всплыли пункты относительно Cron: Апр 15 19:04:29 cron[990] (CRON) STARTUP (V5.0) Апр 15 19:04:29 cron[990] (*system*) BAD FILE MODE (/opt/etc/crontab) и все. Файлик, как вы сказали - положил, но не реагирует на него Крон ( Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 15, 2022 Author Share Posted April 15, 2022 (edited) 6 минут назад, drfischer сказал: (*system*) BAD FILE MODE (/opt/etc/crontab) cat /opt/etc/crontab что выводит? Edited April 15, 2022 by DennoN Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 15, 2022 Share Posted April 15, 2022 11 минуту назад, DennoN сказал: что выводит? ~ # cat /opt/etc/crontab 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 #* 08 * * * root /opt/bin/unblock_ipset.sh Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 15, 2022 Author Share Posted April 15, 2022 (edited) а че это у тебя все закоментировано?😀 и ипсет откуда-то появился? 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 Edited April 15, 2022 by DennoN Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 15, 2022 Share Posted April 15, 2022 (edited) 17 минут назад, DennoN сказал: внеси изменения и перезапусти cron Исправил. Теперь так выглядит так /opt/etc/crontab 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. Но чет не помогло. Ту же ошибку выдает: Апр 15 19:53:31 cron[898] (CRON) STARTUP (V5.0) Апр 15 19:53:31 cron[898] (*system*) BAD FILE MODE (/opt/etc/crontab) Edited April 15, 2022 by drfischer Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 15, 2022 Author Share Posted April 15, 2022 (edited) теперь ls -l /opt/etc/crontab ls -l /opt/etc/cron.* Edited April 15, 2022 by DennoN Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 15, 2022 Share Posted April 15, 2022 10 минут назад, DennoN сказал: теперь ls -l /opt/etc/crontab ls -l /opt/etc/cron.* ~ # ls -l /opt/etc/crontab -rwx-w--w- 1 root root 529 Apr 15 20:21 /opt/etc/crontab ~ # ls -l /opt/etc/cron.* /opt/etc/cron.1min: lrwxrwxrwx 1 root root 49 Apr 15 19:50 add-bird4_routes.sh -> /opt/root/Bird4Static/scripts/add-bird4_routes.sh /opt/etc/cron.5mins: /opt/etc/cron.d: /opt/etc/cron.daily: /opt/etc/cron.hourly: lrwxrwxrwx 1 root root 49 Apr 15 15:34 add-bird4_routes.sh -> /opt/root/Bird4Static/scripts/add-bird4_routes.sh /opt/etc/cron.monthly: -rwxrwxrwx 1 root root 232 Apr 14 01:09 S02bird-table /opt/etc/cron.weekly: ~ # Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 15, 2022 Author Share Posted April 15, 2022 (edited) да уж. кто-то хорошо поломал весь крон rm /opt/etc/cron.monthly/S02bird-table chmod 0600 /opt/etc/crontab - возможно не обязательно. когда увидишь, что все заработает - не забудь удалить файл /opt/etc/cron.1min/add-bird4_routes.sh - 1 минута слишком часто, скрипт может выполнятся дольше + там идет нагрузка на цпу, когда он выполняется из-за того, что 1 - ищет различия между новыми файлами и старыми 2 - bird перечитывает таблицы. Возможно где-то еще ошибки всплывут, так как реально тут много того, чего не должно быть Edited April 15, 2022 by DennoN Quote Link to comment Share on other sites More sharing options...
drfischer Posted April 15, 2022 Share Posted April 15, 2022 11 минуту назад, DennoN сказал: rm /opt/etc/cron.monthly/S02bird-table chmod 0600 /opt/etc/crontab Урааа!!!! Заработалооо!!! Спасибо огромное! И за помощь оперативную и вообще за саму идею!!!!! Quote Link to comment Share on other sites More sharing options...
withjonjon Posted April 19, 2022 Share Posted April 19, 2022 (edited) Мучаюсь 2 дня, не могу понять куда копать. Работает отлично только какое-то время после перезапуска роутера или переустановки скрипта, потом ориентировочно через час перестает открывать некоторые заблокированные ресурсы. Например rutracker стабильно работает, 2ip.ru всегда стабильно показывает активное подключение к VPN (установлен вариант с 2 VPN), но instagram, tjournal открываться перестают. Так же не очень понял логику работы с 2 VPN. Второй VPN не работает (yoip всегда показывает ip первого VPN). Если первый отключаем, оставляем только второй, то заблокированные ресурсы открываться перестают. ВПН подлючен по протоколу IKEv2, до этого пробовал с WG, тоже самое. Пробовал удалиять папку /opt/root/Bird4Static/ а так же файл /opt/etc/cron.hourly/add-bird4_routes.sh и ставить начисто, эффект тот же. В файл Bird4Static/lists/user-isp.list ip адреса впн вводил, шлюз провайдера в add-bird4_routes.sh тоже прописывал вместо eth3. Edited April 19, 2022 by Рома Степанов Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 19, 2022 Author Share Posted April 19, 2022 работать с двумя впн должно так: 1) списки с антифильтра направляются через первый впн. если первый выключен, то через второй. 2) есть возможность задавать в ручную какие адреса направлять на тот или иной впн. если направление идет через конкретный впн, а он не досутпен, то пойдет через провайдера. 3) Если же указано без привязки к конкретному впну, то пойдет по логике как в первом пункте нужно смотреть: ip route list table 1000 - туда подгружаются ручные перенаправляения через определнный впн и провайдера ip route list table 1001 - туда подгружаются список с антифильтра + свои перенаправление через впн без привязки к конкретному впн. траффик из этой таблицы идет через первый впн. если он отключен, то таблица должна быть пустой ip route list table 1002 - тут так же как и в 1001, только траффик идет через второй впн (у нее приоритет меньше, поэтому срабатывает, только когда 1001 таблица пустая) 1 Quote Link to comment Share on other sites More sharing options...
VladimirM Posted April 21, 2022 Share Posted April 21, 2022 (edited) Вроде все просто. Схема с одним vpn, провайдер - статический IP (eth3), vpn - поднят через openvpn (ovpn_br0). DNS указан - яндекс 78.88.8.8. А работает как-то криво. Вот таблица: ~ # ip route list table 1000 45.154.73.71 dev ovpn_br0 scope link 88.198.177.100 dev eth3 scope link 104.16.154.36 dev ovpn_br0 scope link 104.16.155.36 dev ovpn_br0 scope link 104.18.216.232 dev ovpn_br0 scope link 104.18.217.232 dev ovpn_br0 scope link 167.233.6.242 dev eth3 scope link 167.233.7.36 dev eth3 scope link 213.167.39.27 dev ovpn_br0 scope link ~ # nslookup rutracker.org Server: 127.0.0.1 Address 1: 127.0.0.1 localhost Name: rutracker.org Address 1: 213.167.39.27 ~ # nslookup whatismyipaddress.com Server: 127.0.0.1 Address 1: 127.0.0.1 localhost Name: whatismyipaddress.com Address 1: 104.16.154.36 Address 2: 104.16.155.36 ~ # оба сайта есть в файле Bird4Static/lists/user-vpn.list, при этом whatismyipadress корректно показывает, что он находится в европе, а вот rutracker вообще не открывается. Оба по идее должны идти через ovpn_br0, судя по таблице. Никакие заблокированные ресурсы кстати тоже не открываются (например facebook, instagram, meduza - я подозреваю, что они должны быть в таблице 1001 - там куча записей). Но мне было бы достаточно вручную указать список нужных мне ресурсов. Где ошибка ? Edited April 21, 2022 by VladimirM Quote Link to comment Share on other sites More sharing options...
Tiko Posted April 24, 2022 Share Posted April 24, 2022 (edited) Всем доброго! @DennoN Спасибо большое за скрипт, все работает! Есть пару моментов, я использовал список ip c antifilter.download ipresolve.lst + subnet.lst В файл add-bird4_routes.sh внес изменения: URL0=https://antifilter.download/list/ipresolve.lst URL1=https://antifilter.download/list/subnet.lst и curl -sk $URL0 $URL1 | sort | diff -u $BLACKLIST - | patch $BLACKLIST - И крон поставил раз в сутки обновлять. Насколько это правильно? Список ip адресов внушительный, 240 тыс. строк, первые несколько минут роутер был загружен на 50-60%, видать сканировал потом стало как обычно 1-6%. В конце выдал: Скрытый текст Апр 25 01:54:20 bird4 I/O loop cycle took 517336 ms for 4 events Апр 25 01:54:20 bird4 Kernel dropped some netlink messages, will resync on next scan. Вроде все работает. Но хотел узнать, насколько целесообразно использовать полный список заблокированных ip адресов, будут ли какие-то задержки при открытии сайтов в браузере? Еще заметил, в antifilter.list лежит полный список ip из ipresolve.lst + subnet.lst а это 370 тыс. строк, а в bird4-base-vpn1.list всего 240 тыс. строк, получается остальные 130 тыс. строк не просканировались? Edited April 24, 2022 by Tiko Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 25, 2022 Author Share Posted April 25, 2022 (edited) 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, переваривает все адреса. Задержка открытия по идее не должна быть сильно больше, там поиск шустрый, но если заметишь, что что-то начинает тупить, то это первый кандидат на проверку) Edited April 25, 2022 by DennoN 1 Quote Link to comment Share on other sites More sharing options...
Tiko Posted April 25, 2022 Share Posted April 25, 2022 7 часов назад, DennoN сказал: сравнил файлы. смысл в том, что адреса из antifilter.list грузятся не напрямую, а их обрабатывает утилита iprange, которая если видит, что 2 адреса стоят рядом - объединяет их в один с более большой маской. Например: Спасибо за информацию, так даже лучше. 7 часов назад, DennoN сказал: ну скрипт может такое обрабатывать. я в свое время пытался использовать такую же схему, но мне не понравилось, что если остановить и запустить bird он висит минут 5, переваривает все адреса. Задержка открытия по идее не должна быть сильно больше, там поиск шустрый, но если заметишь, что что-то начинает тупить, то это первый кандидат на проверку) Если в первый раз сканирование адресов заняло 8 минут, то при ручном запуске командой ./Bird4Static/scripts/add-bird4_routes.sh сканирование заняло 1 час 35 минут, странные дела) Ну пока все работает, трогать не буду, только крон поставлю раз в неделю. Quote Link to comment Share on other sites More sharing options...
patriot2101 Posted April 27, 2022 Share Posted April 27, 2022 Подскажите пожалуйста откуда Вы скачиваете antifilter.list ? Не смог найти... Quote Link to comment Share on other sites More sharing options...
Daniil413 Posted April 27, 2022 Share Posted April 27, 2022 30 минут назад, patriot2101 сказал: Подскажите пожалуйста откуда Вы скачиваете antifilter.list ? Не смог найти... https://antifilter.download/list/allyouneed.lst Этот адрес прописан в скрипте Bird4Static/scripts/add-bird4_routes.sh, в переменной URL0 Quote Link to comment Share on other sites More sharing options...
patriot2101 Posted April 27, 2022 Share Posted April 27, 2022 В 25.04.2022 в 04:07, Tiko сказал: Еще заметил, в antifilter.list лежит полный список ip из ipresolve.lst + subnet.lst а это 370 тыс. строк, а в bird4-base-vpn1.list всего 240 тыс. строк я про другой спрашивал именно antifilter.list Quote Link to comment Share on other sites More sharing options...
Daniil413 Posted April 27, 2022 Share Posted April 27, 2022 16 минут назад, patriot2101 сказал: я про другой спрашивал именно antifilter.list antifilter.list заполняется содержимым листа https://antifilter.download/list/allyouneed.lst, перед этим айпишники сортируются и прогоняются через утилиту iprange. На текущий момент что в исходном списке allyouneed.lst, что в конечном antifilter.list 9919 строк. Вы можете убедиться в этом сами, выполнив команду cat antifilter.list | wc -l Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.