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

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

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

Обновление!

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 - обрати внимание, должно сработать

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

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

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

Опубликовано (изменено)
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, попросив добавить в выгрузку отсутствующие айпишники доменов для моб.приложения Твиттера.

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

Подскажите пожалуйста. После установки скрипта - не отработала эта его часть:

# 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 ?

Изменено пользователем drfischer
Опубликовано
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? И как вы её пофиксили?

Опубликовано
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 сам - так и не обновляется похоже (сужу по размеру и времени создания файла).

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

@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

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

должна вывести что сервис alive

Так и есть. Alive! А в cron.hourly ярлык тот лежит. Он при установке скрипта еще появился.

но обновляться никак не хочет,почему-то.

Изменено пользователем drfischer
Опубликовано

Может у меня cron не работает нормально? Запустил команду "cron"  и получил это:

cron: can't lock /opt/var/run/cron.pid, otherpid may be 697: Resource temporarily unavailable                                                            

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

@DennoN

Добрый день!

Настроил всё согласно мануалу на гитхабе.

Большинство сайтов открываются без проблем, но при внесении в user-vpn.list, например speedtest.net выдаёт мо айпи от провадера, netflix всё равно показывает что регион RU, хотя впн через сша.

 ip route list table 1000 показывает резолвед адреса, так как в файле писал fqdn

Вчера вообще себя странно вёл, когда я вписал в файл адрес в формате www.speedtest.net - ip определялся впн'а, а скорость измерялась как будто в обход впн, ну то есть на kn-1101 нельзя получить 500mbit/s по openvpn.

Почему так может быть?

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

@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/ и смотрел что выводится. У меня была похожа проблема, когда я накосячил в скриптах и у меня из консоли все выполнялось хорошо, а из крона нет, так как там были переменные, которые наполнялись значениями только если запускать в ручную. А в кроне они оставались пустыми и ничего не происходило. Но это было давно и я это поправил

Изменено пользователем DennoN
Опубликовано
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)
 
и все. Файлик, как вы сказали - положил, но не реагирует на него Крон (
Опубликовано (изменено)
6 минут назад, drfischer сказал:

(*system*) BAD FILE MODE (/opt/etc/crontab)

cat /opt/etc/crontab

что выводит?

Изменено пользователем DennoN
Опубликовано
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

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

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

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

Изменено пользователем DennoN
Опубликовано (изменено)
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)
Изменено пользователем drfischer
Опубликовано
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:
~ #
 

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

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

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

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

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

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

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

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

chmod 0600 /opt/etc/crontab

Урааа!!!! Заработалооо!!! Спасибо огромное! И за помощь оперативную и вообще за саму идею!!!!!

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

Мучаюсь 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.

Изменено пользователем Рома Степанов
Опубликовано

работать с двумя впн должно так:

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

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

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

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

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

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

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

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

Вроде все просто. Схема с одним 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 - там куча записей). Но мне было бы достаточно вручную указать список нужных мне ресурсов. Где ошибка ?

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

Всем доброго!

@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 тыс. строк не просканировались?

Изменено пользователем Tiko
Опубликовано (изменено)
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, переваривает все адреса. Задержка открытия по идее не должна быть сильно больше, там поиск шустрый, но если заметишь, что что-то начинает тупить, то это первый кандидат на проверку)

 

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

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

Спасибо за информацию, так даже лучше.

 

7 часов назад, DennoN сказал:

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

 

Если в первый раз сканирование адресов заняло 8 минут, то при ручном запуске командой ./Bird4Static/scripts/add-bird4_routes.sh сканирование заняло 1 час 35 минут, странные дела)

Ну пока все работает, трогать не буду, только крон поставлю раз в неделю.

Опубликовано
30 минут назад, patriot2101 сказал:

Подскажите пожалуйста откуда Вы скачиваете antifilter.list ?

Не смог найти...

https://antifilter.download/list/allyouneed.lst

Этот адрес прописан в скрипте Bird4Static/scripts/add-bird4_routes.sh, в переменной URL0

Опубликовано
В 25.04.2022 в 04:07, Tiko сказал:

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

я про другой спрашивал именно antifilter.list

Опубликовано
16 минут назад, patriot2101 сказал:

я про другой спрашивал именно antifilter.list

antifilter.list заполняется содержимым листа https://antifilter.download/list/allyouneed.lst, перед этим айпишники сортируются и прогоняются через утилиту iprange.
На текущий момент что в исходном списке allyouneed.lst, что в конечном antifilter.list 9919 строк. Вы можете убедиться в этом сами, выполнив команду cat antifilter.list | wc -l

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

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

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

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

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

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

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

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

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

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

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

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