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

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

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

для bird4static добавил управление в ext-ui

после установки ext-ui добавить файл

/opt/share/www/ext-ui/addons/editlist.php 

со следующим содержимым:

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

 

<?php

// configuration
$url = 'http://ip.of.your.router:88/ext-ui/addons/editlist.php';
$uservpn = '/opt/root/Bird4Static/lists/user-vpn.list';
$uservpn1 = '/opt/root/Bird4Static/lists/user-vpn1.list';
$uservpn2 = '/opt/root/Bird4Static/lists/user-vpn2.list';
$userisp = '/opt/root/Bird4Static/lists/user-isp.list';

// check if form has been submitted
if (isset($_POST['vpn-text']))
{
    // save the text contents
    file_put_contents($uservpn, $_POST['vpn-text']);

    // redirect to form again
    header(sprintf('Location: %s', $url));
    printf('<a href="%s">Moved</a>.', htmlspecialchars($url));
    exit();
}

if (isset($_POST['vpn-text1']))
{
    // save the text contents
    file_put_contents($uservpn1, $_POST['vpn-text1']);

    // redirect to form again
    header(sprintf('Location: %s', $url));
    printf('<a href="%s">Moved</a>.', htmlspecialchars($url));
    exit();
}

if (isset($_POST['vpn-text2']))
{
    // save the text contents
    file_put_contents($uservpn2, $_POST['vpn-text2']);

    // redirect to form again
    header(sprintf('Location: %s', $url));
    printf('<a href="%s">Moved</a>.', htmlspecialchars($url));
    exit();
}


if (isset($_POST['isp-text']))
{
    // save the text contents
    file_put_contents($userisp, $_POST['isp-text']);

    // redirect to form again
    header(sprintf('Location: %s', $url));
    printf('<a href="%s">Moved</a>.', htmlspecialchars($url));
    exit();
}


// read the textfile
$text = file_get_contents($uservpn);
$text1 = file_get_contents($uservpn1);
$text2 = file_get_contents($uservpn2);
$textisp = file_get_contents($userisp);

?>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- HTML form0 -->
<form id="selector" action="" method="post">
<input type="button" id="vpn" name="vpn" onclick="document.getElementById('uservpn').style.display='block'; document.getElementById('uservpn1').style.display='none'; document.getElementById('uservpn2').style.display='none'; document.getElementById('userisp').style.display='none'; return false;" value="user-vpn.list"/>
<input type="button" id="vpn1" name="vpn1" onclick="document.getElementById('uservpn1').style.display='block'; document.getElementById('uservpn').style.display='none'; document.getElementById('uservpn2').style.display='none'; document.getElementById('userisp').style.display='none'; return false;" value="user-vpn1.list"/>
<input type="button" id="vpn2" name="vpn2" onclick="document.getElementById('uservpn2').style.display='block'; document.getElementById('uservpn').style.display='none'; document.getElementById('uservpn1').style.display='none'; document.getElementById('userisp').style.display='none'; return false;" value="user-vpn2.list"/>
<input type="button" id="second" name="second" onclick="document.getElementById('userisp').style.display='block'; document.getElementById('uservpn').style.display='none'; document.getElementById('uservpn1').style.display='none'; document.getElementById('uservpn2').style.display='none'; return false;" value="user-isp.list"/>
</form>

<!-- HTML form1 -->
<div id="uservpn" style="display:none;">
<form id="vpn" action="" method="post" onsubmit="document.getElementById('uservpn').style.display='none'; return true;">
<legend>VPN list</legend>
<textarea name="vpn-text" style="width:100%; height:30%;"><?php echo htmlspecialchars($text); ?></textarea>
<input type="submit" value="Save&close"/>
<input type="reset" value="Reset changes"/>
</form>
</div>
<!-- HTML form1 -->
<div id="uservpn1" style="display:none;">
<form id="vpn1" action="" method="post" onsubmit="document.getElementById('uservpn1').style.display='none'; return true;">
<legend>VPN1 list</legend>
<textarea name="vpn-text1" style="width:100%; height:30%;"><?php echo htmlspecialchars($text1); ?></textarea>
<input type="submit" value="Save&close"/>
<input type="reset" value="Reset changes"/>
</form>
</div>

<div id="uservpn2" style="display:none;">
<form id="vpn2" action="" method="post" onsubmit="document.getElementById('uservpn2').style.display='none'; return true;">
<legend>VPN2 list</legend>
<textarea name="vpn-text2" style="width:100%; height:30%;"><?php echo htmlspecialchars($text2); ?></textarea>
<input type="submit" value="Save&close"/>
<input type="reset" value="Reset changes"/>
</form>
</div>

<div id="userisp" style="display:none;">
<form id="isp" action="" method="post" onsubmit="document.getElementById('userisp').style.display='none'; return true;">
<legend>ISP list</legend>
<textarea name="isp-text" style="width:100%; height:30%;"><?php echo htmlspecialchars($textisp); ?></textarea>
<input type="submit" value="Save&close"/>
<input type="reset" value="Reset changes"/>
</form>
</div>

<form action="runbird4static.php">
    <input type="submit" value="Restart service">
</form>

 

 

и этот, для кнопки перезапуска сервиса

/opt/share/www/ext-ui/addons/runbird4static.php

* для работы кнопки перезапуска сервиса нужно выдать права 777 на файл /opt/root/Bird4Static/scripts/add-bird4_routes.sh

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

 

<?php
shell_exec("/opt/root/Bird4Static/scripts/add-bird4_routes.sh");
header('Location: http://192.168.33.1:88/ext-ui/addons/editlist.php');
?>

файл /opt/share/www/ext-ui/index.html отредактировать, добавив после строки

<meta charset="utf-8" />

свою строку обеспечивающую адаптивное отображение на мобильных устройствах:

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/>

 

а перед этой строкой:

<a href="addons/info/index.php" target="myframe" title="System Health and Information"><img src="addons/img/btn/linfo.png"></a>

вставить свою строку с дополнительной кнопкой:

<a href="addons/editlist.php" target="myframe" title="Edit vpn list"><img src="addons/img/btn/vpn.png"></a>

ну или в любое удобное место в том же списке.

кроме этого нужно положить какую-нибудь иконку размером 48х48 по адресу /opt/share/www/ext-ui/addons/img/btn/vpn.png например такую: vpn_PNG48.png.297e126b340ab3cc1678f532d054a7ad.png

на выходе получается такая страница:

image.png.e29449e6c39573813a1879dc13369a76.png

нажатие на кнопку в верхнем ряду открывает соответствующий лист

нажатие на кнопку Save&close сохраняет лист и скрывает его с глаз долой.

Кнопка Restart service перезапускает сервис bird4static

image.png.363536ad315eba3cb6d9c6bed7426370.png

 

p.s. я ненастоящий сварщик, я маску на стройке нашёл, так что замечания или улучшения горячо приветствуются. 

 

Изменено пользователем nnm
  • Ответов 627
  • Создана
  • Последний ответ

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

Опубликовано
2 часа назад, alexunderboots сказал:

Периодически отваливается www.themoviedb.org , уходит на 127.0.0.1, при этом themoviedb.org нормальный

Это проблема DNS - я решаю с помощью AdGuard Home - для themoviedb следует использовать dns сервер quad9, остальные общеизвестные  возвращают 127.0.0.1. К топику все это не относится!

adg.png

Опубликовано
9 часов назад, zyxmon сказал:

Это проблема DNS - я решаю с помощью AdGuard Home - для themoviedb следует использовать dns сервер quad9, остальные общеизвестные  возвращают 127.0.0.1. К топику все это не относится!

adg.png

отправил www. на 9.9 через интернет-фильтр в wg-туннель - вроде работает

  • 2 недели спустя...
Опубликовано

инста на некоторых провайдерах не работает, не уходит в туннель 10.66.66.1

 

starting traceroute to instagram.com...
traceroute to instagram.com (31.13.81.174), 30 hops maximum, 84 byte packets.
1 ---------------.ertelecom.ru (188.186.75.252) 0.845 ms 0.851 ms 0.771 ms
2 lag-2-435.bgw01.tmn.ertelecom.ru (109.194.168.18) 3.136 ms 2.737 ms 2.700 ms
3 ertelekom-ic-335559-mow-b4.ip.twelve99-cust.net (62.115.12.110) 25.797 ms 26.277 ms 27.224 ms
4 mow-b4-link.ip.twelve99.net (62.115.12.109) 32.073 ms 30.463 ms 30.440 ms
5 mow-b8-link.ip.twelve99.net (62.115.135.107) 25.191 ms 26.886 ms 26.761 ms
6 mow-b6-link.ip.twelve99.net (62.115.135.95) 26.440 ms 26.599 ms 25.743 ms
7 s-bb1-link.ip.twelve99.net (62.115.143.24) 43.388 ms 43.934 ms 43.374 ms
8 hbg-bb3-link.ip.twelve99.net (62.115.134.94) 62.344 ms 62.315 ms 62.225 ms
9 62.115.120.69 (62.115.120.69) 73.534 ms 72.151 ms 72.307 ms
10 facebook-ic339271-war-b3.ip.twelve99-cust.net (213.248.75.71) 56.666 ms 56.636 ms 57.606 ms
11 * * *
12 * * *
13 157.240.38.181 (157.240.38.181) 61.258 ms 62.922 ms 60.832 ms
14 31.13.81.174 (31.13.81.174) 60.734 ms 60.613 ms 60.935 ms
  • 2 недели спустя...
Опубликовано (изменено)

Думаю сделать что бы скрипт парсил в списках от пользователя номера автономок (AS*), узнавал адреса, и добавлял в маршруты

Но есть вопрос, как часто эти AS могут изменяться? допустим я получаю вывод командой

whois -h whois.radb.net -- "-i origin AS32934" | grep ^route: | awk "{print \$2}"

нужно ли накручивать логику, что результат этой команды пишем в отдельный файл и потом уже при следующем запуске скрипта запрашиваем в файле инфу о данной автономке и если она там есть, то выводим из файла, а если нет, то выполняем команду выше?

данная логика усложнит скрипт, но ускорит наполение списков, если вносим туда AS. Так же в случае, если данные по AS поменялись, то скрипт об этом не узнает - нужно будет ручное удаление из определенного файла и тогда скрипт не найдя инфы о автономке запросит данные снова.

Стоит заморачиваться или сделать просто логику типа: видим AS - всегда спрашиваем через whois о ней

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

Стоит заморачиваться или сделать просто логику типа: видим AS - всегда спрашиваем через whois о ней

Думаю можно пойти по простому пути. 

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

Обновление!

Версия 3.3
Переделана команда в скрипте установки, которая выводит список интерфейсов и их адресов. Теперь стала более универсальной
Добавлен скрипт для удаления.
Добавлена поддержка AS номеров в пользовательских списках

Указывать AS нужно в виде AS13414, регистр важен(!), AS должно быть большими буквами. Одна строка - один номер AS(!). Поддерживаются комментарии после номера через пробел, скрипт на них ругаться не будет. Запросы идут через сторонний сервер, который может долго отвечать, так что если будет указано много AS в списках, то скрипт может отрабатывать сильно дольше

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

Опубликовано (изменено)
В 07.09.2022 в 22:20, mobile2004 сказал:

а не лучше ли списки грузить в RAM по пути

/tmp/

всё-таки не все же разворачивают OPKG на USB

а зачем? bird будет ругаться, после перезагрузки роутера на отсуствующие конфиги. + у меня при скачивании списков и их наполнения сравниваются 2 результата (прошлый и текущий) и в файл вносятся только изменения, а не перезатирается весь файл целиком). Только если места мало, но вроде списки не так много едят (все 7 файлов весят чуть меньше 700кбайт)

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

Подскажите, пожалуйста, а как правильно обновится? Пользуюсь уже давно, с начала марта. Запустил по новой "git clone", но в ответ выдает "fatal: destination path 'Bird4Static' already exists and is not an empty directory"

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

При выполнении скрипта выдает такую ошибку:

 

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

Installing iprange (1.0.4-1) to root...

Installing whois (5.5.10-1) to root...

Configuring bird1-ipv4.

Configuring libatomic.

Configuring cron.

Configuring libnghttp2.

Configuring curl.

Configuring libuv.

Configuring bind-libs.

Configuring bind-dig.

Collected errors:

* verify_pkg_installable: Only have 0kb available on filesystem /opt, pkg iprange needs 29

* opkg_install_cmd: Cannot install package iprange.

* verify_pkg_installable: Only have 0kb available on filesystem /opt, pkg whois needs 29

* opkg_install_cmd: Cannot install package whois.

 

Ставлю во внутреннюю память. Из 27 Мбайт занято всего 19.

В чем может быть проблема?

 

Опубликовано (изменено)
3 минуты назад, DennoN сказал:

@PASPARTU в гите описан наиболее вероятный вариант решения

  Скрыть содержимое

421877687_2022-12-02_12-45-321.png.f3eb70d2d8dc3d89f7bf9191c62991a3.png

 

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

 

Cloud::Agent: can not connect to the cloud server.

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

@PASPARTU в гите описан наиболее вероятный вариант решения

  Показать содержимое

421877687_2022-12-02_12-45-321.png.f3eb70d2d8dc3d89f7bf9191c62991a3.png

 

ISP list по умолчанию должен содержать такой список, добавьте пожалуйста.

 

keenetic.com
docs.keenetic.com
88.198.177.100
167.233.7.36
167.233.6.242
167.233.7.36
88.198.177.100
167.233.6.242
ndss.keenetic.ndmsystems.com

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

keenetic.com
docs.keenetic.com

отдают одинаковые адреса

167.233.7.36
167.233.6.242
88.198.177.100

так что добавить нужно только keenetic.com как вариант, и он уже добавлен

ndss.keenetic.ndmsystems.com отдает адреса

88.198.177.100 тот же, что и в keenetic.com
91.142.81.244 в списках через впн он не участвует
92.63.195.7 в списках через впн он не участвует
167.233.7.36 тот же, что и в keenetic.com

Да и пользовательские списки сделаны как пример, что бы люди сами добавляли что-то свое. Тут наоборот просили давно keenetic.com исключить.

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

keenetic.com
docs.keenetic.com

отдают одинаковые адреса

167.233.7.36
167.233.6.242
88.198.177.100

так что добавить нужно только keenetic.com как вариант, и он уже добавлен

ndss.keenetic.ndmsystems.com отдает адреса

88.198.177.100 тот же, что и в keenetic.com
91.142.81.244 в списках через впн он не участвует
92.63.195.7 в списках через впн он не участвует
167.233.7.36 тот же, что и в keenetic.com

Да и пользовательские списки сделаны как пример, что бы люди сами добавляли что-то свое. Тут наоборот просили давно keenetic.com исключить.

у меня docs.keenetic.com не открывался пока не внес его в список.

Опубликовано
В 01.12.2022 в 13:11, DennoN сказал:

@inolant

 df -h

в командной строке

надо посмотреть сколько у тебя сейчас места в /opt

Действительно не было свободной памяти. Не стал разбираться в причинах, поставил все заново на USB flash. Вроде все работает.

Еще один дилетантский вопрос:

Как сделать, чтобы speedtest и сервисы по определению ip не заворачивались в VPN. 

Как я понял, 2ip по умолчанию открывается через VPN, но у меня все подобные сервисы грузятся через VPN.

  • 2 недели спустя...
Опубликовано

Добрый день.

Возможно ли добавлять в сформированные списки bird4-*.list комментарий из какой строки user-*.list получился маршрут?

Возникла ситуация, в оба файла bird4-force-isp.list и bird4-force-vpn1.list попал один и тот же ip, хотелось понять из каких доменов.

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

@usan за резолв доменов отвечает утилита iprange. Работает по типу - скармливаем ей файл, на выходе получаем список ip адресов. добавлять в виде коммента какой домен оно так распарсило - не умеет https://manpages.org/iprange

 

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

Здравствуйте,

Не открывает ozon приложение на телефоне, пробывал добавлять 162.159.128.64 и 162.159.129.64 в user-isp.list список, все равно не заходит. С закоментированной URL0=https://antifilter.download/list/allyouneed.lst все работает.

Тоесть antifilter у меня имеет приоритет перед user-isp.list

Опубликовано
2 часа назад, Oleg Ivanov сказал:

Здравствуйте,

Не открывает ozon приложение на телефоне, пробывал добавлять 162.159.128.64 и 162.159.129.64 в user-isp.list список, все равно не заходит. С закоментированной URL0=https://antifilter.download/list/allyouneed.lst все работает.

Тоесть antifilter у меня имеет приоритет перед user-isp.list

Здравствуйте! Попробуйте в user-isp.list добавить следующие домены, может поможет:

www.ozon.ru
cdn-qa.ozonru.me
cdn1.ozone.ru
cdn2.ozone.ru
p.ozon.ru
api.ozon.ru
s.ozone.ru
cdn1.ozonusercontent.com
xapi.ozon.ru

Опубликовано
3 часа назад, Daniil413 сказал:

Здравствуйте! Попробуйте в user-isp.list добавить следующие домены, может поможет:

www.ozon.ru
cdn-qa.ozonru.me
cdn1.ozone.ru
cdn2.ozone.ru
p.ozon.ru
api.ozon.ru
s.ozone.ru
cdn1.ozonusercontent.com
xapi.ozon.ru

спасибо! все заработало. Подскажите как нашли эти адреса?

Опубликовано
7 часов назад, Oleg Ivanov сказал:

спасибо! все заработало. Подскажите как нашли эти адреса?

Рад, что это помогло.
Домены нашёл достаточно просто. У меня запущен свой собственный DNS-сервер (AdGuard Home), все устройства домашней сети резолвят домены именно через этот DNS. После запуска приложения Ozon на телефоне, я просто посмотрел в логах DNS-сервера, к каким доменам обращался смартфон за это время, те и добавил в user-isp.list.

Опубликовано
7 часов назад, Oleg Ivanov сказал:

спасибо! все заработало. Подскажите как нашли эти адреса?

Можно на любой странице , нажать F12 откроется консоль разработчика , там нажать на сеть и вы увидите все домены связанные с этой страницей 

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

Привет! 

Появилась необходимость отправлять весь трафик через впн на роутере.

Я бы мог сделать это силами кинетика, но у меня подключение идет сначала к локалке провайдера, потом получаю от него статику через L2TP, соответственно если я поставлю в качестве первого приоритета впн подключение, то интернет работать не будет.

Как можно завернуть весь трафик к впн силами этого приложения?

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

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

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

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

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

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

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

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

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

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

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

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