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

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

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

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

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

Подскажите, а есть возможность все это сделать не через VPN а через Tor?

То есть так же, чтобы через Тор шли только выбранные сайты?

Да поймут меня владельцы Playstation - единственный рабочий сейчас способ покупки игр через турецкий аккаунт требует создания учетной записи на необходимом сайте именно из сети тор (при заходе через VPN - сайт жалуется, что ты пользуешься впн и не дает создать учетку).

И я думаю такой сайт не единственный. А тор как альтернативное решение думаю хорошо бы подошел в этом случае...

  • 4 недели спустя...
Опубликовано (изменено)

В 4.1 идентификаторы таблиц маршрутизации стали динамически меняться.

Так что инструкция отсюда

доработана, требуется доустановить пакеты curl и jq. Добавлено динамическое чтение идентификатора маркировки в скриптах

/opt/etc/ndm/netfilter.d/010-bypass.sh

 

/opt/etc/ndm/netfilter.d/011-bypass6.sh

По примеру предоставленному @avn:

В 08.08.2023 в 23:29, avn сказал:

Можно mark так найти

curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "Unblock-VPN") | .mark'

 

 

Изменено пользователем r13
Опубликовано
В 01.09.2023 в 15:32, Mapuk37 сказал:

Подскажите, а есть возможность все это сделать не через VPN а через Tor?

Здравствуйте скажите на какой порт у вас настроен tor? 

Опубликовано (изменено)
17 минут назад, Denis P сказал:

Прошу тем, кому актуально, поддержать вот эту идею
https://github.com/AdguardTeam/AdGuardHome/issues/6233
Это позволит полноценно использовать ipset create timeout, что в свою очередь даст возможность для поддержания списков ipset и маршрутов в актуальном состоянии, т.е если домен резолвится в тот же адрес - счетчик timeout будет просто обновлен, если в другой - по истечении timeout он автоматически будет удален из ipset. В данный момент это тоже возможно, но если адрес уже содержится в кэше agh, он не добавляется в ipset, что слегка ломает всю логику и счетчик timeout не обновляется.

Нафиг не нужно. Timeout для ipset и такой же в agh. А каждый раз дергать ipset для обновления ( удаления и добавления)  для того, что бы обновить время timeout так себе идея.

Изменено пользователем avn
  • 4 месяца спустя...
Опубликовано
В 07.08.2023 в 09:39, r13 сказал:

бонусом будет резервирование/агрегация каналов предоставляемая политиками

Не могу понять, почему это работает, если в /opt/etc/ndm/netfilter.d/010-bypass.sh мы вручную указываем nwg0?

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

Не могу понять, почему это работает, если в /opt/etc/ndm/netfilter.d/010-bypass.sh мы вручную указываем nwg0?

Там отрицание, не nwg0

Опубликовано (изменено)
1 час назад, r13 сказал:

Там отрицание, не nwg0

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

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

Уф, наконец поборол проблему (переход с 398 на 4Х), проблема как всегда в прокладке между монитором и стулом

В гайде тут:

Забыто упомянуто (точнее ранее это проскальзовало в скринах, но в итоге пропало) как сделать корректно сделать политики :)

1) в впн соединениях указываем  (ранее в 3.9.8 это не требовалось)

image.png.9ed271b4022729ff5f74948e2e563f26.png

2) В политиках создаем новую политику доступа  и называем ее также как в скриптах (у меня main)

В подключениях политики указываем (только) 1 или несколько VPN соединений через которые будут идти маршрутизированные данные (я тут добавлял и впн и основной и ЭТО И БЫЛА ОШИБКА)

image.png.829e53b42be3eb7e8a5486c61410338c.png

Большое спасибо @r13

 

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

@r13 @avn - господа! А как быть, если "резервное" подключение создается средствами Entware. Например sing-box. Как найти mark?

PS Создал политику по имени скрипта запуска S99sing-box. `show ip polycy` всегда выдает

{
    "policy": {
        "Policy1": {
            "description": " S99sing-box",
            "mark": "ffffaac",
            "table4": 12,
            "route4": {
                "route": [
                    {
                        "destination": "10.0.0.0/24",
                        "gateway": "0.0.0.0",
                        "interface": "GigabitEthernet1",
                        "metric": 0,
                        "flags": "U",
                        "rejecting": false,
                        "proto": "boot",
                        "floating": false,
                        "static": false
                    },
                    {
                        "destination": "172.16.250.0/30",
                        "gateway": "0.0.0.0",
                        "interface": "",
                        "metric": 0,
                        "flags": "U",
                        "rejecting": false,
                        "proto": "boot",
                        "floating": false,
                        "static": false
                    },
                    {
                        "destination": "192.168.1.0/24",
                        "gateway": "0.0.0.0",
                        "interface": "Bridge0",
                        "metric": 0,
                        "flags": "U",
                        "rejecting": false,
                        "proto": "boot",
                        "floating": false,
                        "static": false
                    }
                ]
            },
            "table6": 11,
            "route6": {}
        }
    },
    "prompt": "(config)"
}

Первый маршрут всегда wan (10.0.0.0), второй tun0 (sing-box), третий lan (bridge). Или так и должно быть?

PS Это стенд с 1811 на прошивке 4.1

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

@r13 @avn - господа! А как быть, если "резервное" подключение создается средствами Entware. Например sing-box. Как найти mark?

PS Создал политику по имени скрипта запуска S99sing-box. `show ip polycy` всегда выдает

{
    "policy": {
        "Policy1": {
            "description": " S99sing-box",
            "mark": "ffffaac",
            "table4": 12,
            "route4": {
                "route": [
                    {
                        "destination": "10.0.0.0/24",
                        "gateway": "0.0.0.0",
                        "interface": "GigabitEthernet1",
                        "metric": 0,
                        "flags": "U",
                        "rejecting": false,
                        "proto": "boot",
                        "floating": false,
                        "static": false
                    },
                    {
                        "destination": "172.16.250.0/30",
                        "gateway": "0.0.0.0",
                        "interface": "",
                        "metric": 0,
                        "flags": "U",
                        "rejecting": false,
                        "proto": "boot",
                        "floating": false,
                        "static": false
                    },
                    {
                        "destination": "192.168.1.0/24",
                        "gateway": "0.0.0.0",
                        "interface": "Bridge0",
                        "metric": 0,
                        "flags": "U",
                        "rejecting": false,
                        "proto": "boot",
                        "floating": false,
                        "static": false
                    }
                ]
            },
            "table6": 11,
            "route6": {}
        }
    },
    "prompt": "(config)"
}

Первый маршрут всегда wan (10.0.0.0), второй tun0 (sing-box), третий lan (bridge). Или так и должно быть?

PS Это стенд с 1811 на прошивке 4.1

Может я вопроса не понял?

json=`curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == " S99sing-box")'`
xt_mark=`echo $json | jq -r '.mark'`
xt_table=`echo $json | jq -r '.table4'`
xt_iface=`ip -4 route show table ${xt_table} | awk '/default/ { print $3 }'`

 

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

@zyxmon в случае использования интерфейса созданного в entware непонятно в чем будет профит от использования политики, так как переключать default route для такого интерфейса все равно придется так же через скрипты. Возможно в данном случае инструкция из первого поста темы более релевантна.

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

PS Создал политику по имени скрипта запуска S99sing-box. `show ip polycy` всегда выдает

                "route": [
                    {
                        "destination": "10.0.0.0/24",
                      ...
                    },
                    {
                        "destination": "172.16.250.0/30",
                        ...
                    },
                    {
                        "destination": "192.168.1.0/24",
                        ...
                    }
                

Первый маршрут всегда wan (10.0.0.0), второй tun0 (sing-box), третий lan (bridge). Или так и должно быть?

Все просто не имеет значения WAN или TUN или PPP, а имеет значение

default dev ppp0  scope link 
10.10.xxх.0/24 dev eth2.9 ...
10.147.ххх.0/24 dev zt_br0 ...
104.21.ххх.ххх dev nwg4 ...
109.126.ххх.ххх dev ppp0 ...
185.107.ххх.ххх dev ppp0 ...
188.114.ххх.ххх dev ppp0 ...
192.168.100.0/24 via 10.147.ххх.ххх dev zt_br0 ....
192.168.130.0/24 dev br0 ...
192.168.150.0/24 dev br1 ...
...

 

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

Все просто не имеет значения WAN или TUN или PPP, а имеет значение

default dev ppp0  scope link 
10.10.xxх.0/24 dev eth2.9 ...
10.147.ххх.0/24 dev zt_br0 ...
104.21.ххх.ххх dev nwg4 ...
109.126.ххх.ххх dev ppp0 ...
185.107.ххх.ххх dev ppp0 ...
188.114.ххх.ххх dev ppp0 ...
192.168.100.0/24 via 10.147.ххх.ххх dev zt_br0 ....
192.168.130.0/24 dev br0 ...
192.168.150.0/24 dev br1 ...
...

 

В таблице имеет значение только это, остальное косвенное

default dev ppp0  scope link 
Опубликовано (изменено)
1 час назад, avn сказал:

В таблице имеет значение только это, остальное косвенное

default dev ppp0  scope link 

Речь выше шла про то и не про какой он в списке интерфейс, первый WAN или не первый, или br0 второй или он последний - просто пример их расположение от IP.

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

Я совсем "не копенгаген" в tc (traffic control). С политиками не вышло, подозреваю, что все таки неправильно поменял роутинг. Надеюсь следующие юзеры лучше меня разбираются (или я где опечатался).

Сделал все по первому посту - и заработало! Однако такая неожиданность - хуки ifcreated или ifstatechanged не работают с сетевыми интерфейсами, созданными Entware. Но с этим то просто..... 

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

Я совсем "не копенгаген" в tc (traffic control). С политиками не вышло, подозреваю, что все таки неправильно поменял роутинг. Надеюсь следующие юзеры лучше меня разбираются (или я где опечатался).

Сделал все по первому посту - и заработало! Однако такая неожиданность - хуки ifcreated или ifstatechanged не работают с сетевыми интерфейсами, созданными Entware. Но с этим то просто..... 

Подскажите в итоге, всё заработало? Sing-box с XTLS-Reality в режиме tun, а AGH просто как и раньше указывать интерфейс, через который он будет отправлять указанные ресурсы?

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

Подскажите в итоге, всё заработало? Sing-box с XTLS-Reality в режиме tun, а AGH просто как и раньше указывать интерфейс, через который он будет отправлять указанные ресурсы?

Заработало. Есть проблема с созданием маршрута - т.к. singbox создает tun0 до окончания сетевой инициализации роутера. Пока поставил паузу в 15 секунд до выполнения `ip route add ....`

 

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

Заработало. Есть проблема с созданием маршрута - т.к. singbox создает tun0 до окончания сетевой инициализации роутера. Пока поставил паузу в 15 секунд до выполнения `ip route add ....`

 

Опишите пожалуйста как это сделать.

Настроил sing-box, выхлоп с команды "curl --interface tun0 http://myip.wtf/json" получил, adguardhome ранее уже настраивал, перенастроил на tun0 новиспечённый, для теста в байпас вписал ipinfo.io, но сайт не открывается.

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

Опишите пожалуйста как это сделать.

Сначала нужно в скриптовой обвязке заменить nwg0 на tun0. Затем задайте маршрутизацию руками

ip route add default dev tun0 table 1001 

Если теперь все работает, то можно (правда очень криво-костыльно) скриптом S99zsing-box (алфавитно должен после S99sing-box выполняться.

S99zsing-box

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

@zyxmon спасибо!

Как-то странно работает. С клиентов wi-fi сети не открываются сайты прописанные в bypass, но клиенты WG (на роутере сервер, к нему подключаются клиенты извне) отлично ходят на эти сайты, ipinfo.io (прописанный в bypass) показывает что нужно.

 

ip addr показывает: image.thumb.png.4111cb2e03bd60f259e02bbfffd5c85b.png

 

в этом случает /opt/etc/ndm/netfilter.d/010-bypass.sh будет с такой подсетью? 172.16.250.0/30

Скрытый текст
#!/bin/sh
 
[ "$type" == "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ip link list | grep tun0)" ] && exit
[ -z "$(ipset --quiet list bypass)" ] && exit
 
if [ -z "$(iptables-save | grep bypass)" ]; then
iptables -w -t mangle -A PREROUTING ! -s 172.16.250.0/30 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 1001
iptables -w -t mangle -A PREROUTING ! -s 172.16.250.0/30 -m set --match-set bypass dst -j CONNMARK --restore-mark
fi

 

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

Да. похоже так. По wi-fi я не проверял.

Проверил по проводу, ситуация такая же.

Подскажите, может кто знает как продиагностировать проблему?

На всякий случай выводы команд из шапки:

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

ipset --list bypass не пустой

Name: bypass

Type: hash:ip

Revision: 4

Header: family inet hashsize 1024 maxelem 65536

Size in memory: 3264

References: 2

Members:
... (дальше IP-шники)

 

ip rule list | grep 1001 не пустой

399: from all fwmark 0x3e9 lookup 1001

 

ip route list table 1001 не пустой

default dev tun0 scope link

 

iptables-save | grep bypass не пустой

-A PREROUTING ! -s 172.16.250.0/30 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-xmark 0x3e9/0xffffffff

-A PREROUTING ! -s 172.16.250.0/30 -m set --match-set bypass dst -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff



 

Опубликовано
В 29.02.2024 в 14:35, dogoma сказал:

Проверил по проводу, ситуация такая же.

Подскажите, может кто знает как продиагностировать проблему?

На всякий случай выводы команд из шапки:

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

ipset --list bypass не пустой

Name: bypass

Type: hash:ip

Revision: 4

Header: family inet hashsize 1024 maxelem 65536

Size in memory: 3264

References: 2

Members:
... (дальше IP-шники)

 

ip rule list | grep 1001 не пустой

399: from all fwmark 0x3e9 lookup 1001

 

ip route list table 1001 не пустой

default dev tun0 scope link

 

iptables-save | grep bypass не пустой

-A PREROUTING ! -s 172.16.250.0/30 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-xmark 0x3e9/0xffffffff

-A PREROUTING ! -s 172.16.250.0/30 -m set --match-set bypass dst -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff



 

Проблема была не в adguardhome или его настройке.  Проблема была в настройках туннеля. 

Опубликовано
В 10.08.2023 в 09:17, Mapuk37 сказал:

Супер, спасибо.

А есть что-то подобное для сайтов? Например у торрентов часто несколько адресов, на netify не находятся...

 

Тестируя другие решения для маршрутизации обнаружил такой удобный репозиторий: https://github.com/v2fly/domain-list-community/tree/master/data там файлы с именем сайта, в котором список всех используемых им доменов

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



Так как со временем по теме всё расползлось немножко, то пока разбирался сам, решил попутно собрать воедино актуальную инструкцию:
https://taravasya.github.io/notes/keenetic/agh_keenetic

 
Кажется учёл все последние изменения. Настроил пошагово именно по своей инструкции только ipv4. Выборочное туннелирование работает нормально.

Изменено пользователем taravasya
  • 1 месяц спустя...
Опубликовано

Все ок работает по инструкции от r13, за исключением одного нюанса. Работают только на основном подключении, проводном интернете. У меня ещё подключен usb может в качестве резерва. Так вот с него обход не работает. Можно ли как то настроить?

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

 Можно ли как то настроить?

AGH может использовать и не зависит от кол-ва провайдеров + ПО роутера и его профили

Скрытый текст
...
  handle_ddr: true
  ipset: []
  ipset_file: /opt/home/AdGuardHome/ipset.conf
  bootstrap_prefer_ipv6: false
...

наличие двух строк в конф файле AGH, одна из которых "ipset_file: /opt/home/AdGuardHome/ipset.conf"

в сам файл ipset.conf например строки или несколько строк

хххх.com,хххххх.io/wg-i
хххххххх.com,ххххх.ххххх.com/wg-i

далее

ipset create wg-i hash:ip

где ее удобней использовать например в скрипт запуска AGH (но учесть если используете вдруг команды скрипта такие как restart/stop/start, хотя когда все отлажено то этого не нужно).

Основное

 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.IP_клиента/32 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.IP_клиента/32 -j CONNMARK --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.IP_клиента/32 -m set --match-set wg-i dst -j MARK --set-mark 0xffff_ПРОФИЛЬ

именно в таком порядке.

Пояcнения - так как в 4.2 произошли изменения по маркировке то как найти нужный профиль было расписано много раз (что ищем так это "show ip policy" нужный профиль и его mark это и будет "0xffff_ПРОФИЛЬ").

Данные команды лучше использовать в скрипте например /opt/etc/ndm/101-AGH.sh

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'wg-i')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s ... RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s ... --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s ... --set-mark 0xffff_ПРОФИЛЬ
fi

exit 0
Опубликовано
В 01.05.2024 в 17:57, vasek00 сказал:

AGH может использовать и не зависит от кол-ва провайдеров + ПО роутера и его профили

  Показать содержимое
...
  handle_ddr: true
  ipset: []
  ipset_file: /opt/home/AdGuardHome/ipset.conf
  bootstrap_prefer_ipv6: false
...

наличие двух строк в конф файле AGH, одна из которых "ipset_file: /opt/home/AdGuardHome/ipset.conf"

в сам файл ipset.conf например строки или несколько строк

хххх.com,хххххх.io/wg-i
хххххххх.com,ххххх.ххххх.com/wg-i

далее

ipset create wg-i hash:ip

где ее удобней использовать например в скрипт запуска AGH (но учесть если используете вдруг команды скрипта такие как restart/stop/start, хотя когда все отлажено то этого не нужно).

Основное

 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.IP_клиента/32 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.IP_клиента/32 -j CONNMARK --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.IP_клиента/32 -m set --match-set wg-i dst -j MARK --set-mark 0xffff_ПРОФИЛЬ

именно в таком порядке.

Пояcнения - так как в 4.2 произошли изменения по маркировке то как найти нужный профиль было расписано много раз (что ищем так это "show ip policy" нужный профиль и его mark это и будет "0xffff_ПРОФИЛЬ").

Данные команды лучше использовать в скрипте например /opt/etc/ndm/101-AGH.sh

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'wg-i')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s ... RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s ... --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s ... --set-mark 0xffff_ПРОФИЛЬ
fi

exit 0

Не очень хотелось бы настраивать обход для конкретных клиентов.

Меня устраивает, как сейчас прописано у r13 - обход на всех устройствах, подключающимся с роутеру, просто добавить возможность работы при переключении на мобильный интернет.

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

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

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

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

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

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

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

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

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

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

×
×
  • Создать...

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

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