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

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

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

А можете коротенько написать, как поднять 2 соединения в разные места?

не пробовали по такому варианту? 

 

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

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

Опубликовано (изменено)
В 15.11.2025 в 17:13, Goose сказал:

У меня используется такой скрипт автозапуска «S99amneziawg-warp-proton» в 5-й версии прошивки для двух одновременных подключений через awg сразу к warp и proton, можно взять за основу и изменить под свои нужды.

В «INTERFACES» скрипта содержаться интерфейсы, пути к файлам конфигураций и значения максимальных MTU подобранные опытным путём для warp и proton в моём случае, у других могут отличаться! Больше 2х одновременных подключений не проверял, но по идее можно засунуть и больше.

Естественно, заранее подняты «OpkgTun0» и «OpkgTun1», обоим интерфейсам заранее назначены IP адреса, это важно т.к. в моём скрипте автозапуска я их не назначаю.

#!/bin/sh

ENABLED=yes
PROCS=/opt/bin/amneziawg-go
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DESC="amneziawg-go multi-interface launcher"
LOGFILE="/opt/var/log/amneziawg.log"

# Подключения в формате: "интерфейс:конфиг:mtu"
INTERFACES="
opkgtun0:/opt/etc/awg/warp.conf:1440
opkgtun1:/opt/etc/awg/proton.conf:1500
"

log() {
  echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> "$LOGFILE"
}

start_interface() {
  IFACE=$1
  CONF=$2
  MTU=$3

  log "Starting $IFACE with config $CONF"
  $PROCS "$IFACE" &
  sleep 2

  ip link set dev "$IFACE" down 2>>"$LOGFILE"
  sleep 2

  if [ -d "/sys/class/net/$IFACE" ]; then
    awg setconf "$IFACE" "$CONF" 2>>"$LOGFILE"
    ip link set dev "$IFACE" mtu "$MTU" 2>>"$LOGFILE"
    ip link set dev "$IFACE" up 2>>"$LOGFILE"
    log "$IFACE configured and brought up"
  fi
}

post_cmd() {
  log "=== Starting amneziawg-go interfaces ==="
  for entry in $INTERFACES; do
    IFS=":" read IFACE CONF MTU <<EOF
$entry
EOF
    start_interface "$IFACE" "$CONF" "$MTU"
  done
  log "=== Startup complete ==="
}

POSTCMD="post_cmd"

. /opt/etc/init.d/rc.func

 

Попробовал реализовать, но что-то не идёт. При чем не в один из интерфесов.

В логах вроде все прекрасно:

image.png.2e1ce9d9f014e9999939bef4a07057a1.png

но трафик не идет

image.png.024cd1a44c0e2ab8068427636a174d3b.png

при этом:
image.png.906ee12042c0617bb0aa09df8f8017c9.png

Отбой, CF поднялся, трафик есть. Проблема только с самим протоном. Продолжаю наблюдение. 

Ключ i1, который генерирует proton, длиннее чем стандартный awg. Отсюда оно и не работает...

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

Ключ i1, который генерирует proton

Я сейчас работаю над проектом для автоматической генерации параметра I1 и автозаправки его в конфигурацию роутера для ежесуточной смены на новый т.к. использование одного и того же параметра длительное время может стать нецелесообразным в ближайшей перспективе ужесточающихся ограничений со стороны провайдеров.

О какой генерации параметра I1 от proton идёт речь? У меня вот в аккаунте proton при формировании конфига для WireGuard вообще изначально нет I1, подставляю самостоятельно сторонний короткий вариант I1 с маскировкой под quic найденный на форумах, с ним proton работает.

Опубликовано
В 19.11.2025 в 00:43, pppppppo_98 сказал:

вы вообще о скриптах системы NDMSystems слышали.

Огромное спасибо за ссылку на инструкцию и пример скриптов, именно этого мне не хватало.

Кстати, провёл тут диагностику и разобрался почему с моим скриптом на несколько интерфейсов не совместим скрипт автоперезапуска – В оригинальной версии скрипта автозапуска для одного интерфейса остановка и запуск awg происходит моментально т.к. ARGS="awg0" указаны сразу рядом в скрипте в самом начале и по команде restart пересоздание интерфейса в среде entware происходит так быстро что событие не успевает условиться системой и не обнуляется таймер соединения и не происходит срабатывание wan.d и соответственно нет циклического перезапуска.

В моём скрипте ARGS вынесены в функцию что немного замедляет обращение к awg и этого уже становиться достаточным чтобы обнулился таймер соединения и также сработал и wan.d. Кроме того мой скрипт после обращения к awg дополнительно сначала опускает интерфейсы перед тем, как применить новые значения mtu и файлы конфигурации т.к. выяснилось в ходе предыдущей диагностики что awg создаёт интерфейсы сразу поднятыми несмотря на то, что ещё не применён файл конфигурации. Для максимального ускорения работы скрипта попробовал убрать из скрипта шаг с опусканием интерфейсов, тоже не помогло подружить со скриптом автоперезапуска т.к. как только выношу ARGS в функцию, система уже улавливает перезапуск и срабатывает wan.d.

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

Опубликовано
В 23.11.2025 в 06:38, Goose сказал:

Я сейчас работаю над проектом для автоматической генерации параметра I1 и автозаправки его в конфигурацию роутера для ежесуточной смены на новый т.к. использование одного и того же параметра длительное время может стать нецелесообразным в ближайшей перспективе ужесточающихся ограничений со стороны провайдеров.

О какой генерации параметра I1 от proton идёт речь? У меня вот в аккаунте proton при формировании конфига для WireGuard вообще изначально нет I1, подставляю самостоятельно сторонний короткий вариант I1 с маскировкой под quic найденный на форумах, с ним proton работает.

Подскажите, а Вы файлы для установки amnezia-go и amnezia-tools из этой ветки брали или сами собирали?

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

Сам пока не собирал, взял amneziawg-go_v0.2.15 и amneziawg-tools_1.0.20250903-1 из этой ветки со страницы 2.

Блин, я тогда не понимаю, почему так:
image.png.906ee12042c0617bb0aa09df8f8017c9.png

конфиг сверил, ему не нравится сам интерфейс...

Опубликовано
В 23.11.2025 в 01:38, Goose сказал:

Я сейчас работаю над проектом для автоматической генерации параметра I1 и автозаправки его в конфигурацию роутера для ежесуточной смены на новый т.к. использование одного и того же параметра длительное время может стать нецелесообразным в ближайшей перспективе ужесточающихся ограничений со стороны провайдеров.

О какой генерации параметра I1 от proton идёт речь? У меня вот в аккаунте proton при формировании конфига для WireGuard вообще изначально нет I1, подставляю самостоятельно сторонний короткий вариант I1 с маскировкой под quic найденный на форумах, с ним proton работает.

тут все таже проблема как и при распределении ключей... А как вы будет распостранять параметры по своей сети? Для этого нужно работоспособное соединение, то есть уже нужно иметь работоспособный i1. И да ...С чем столкнулся ухе пару раз - пара ip/port может опасть в блоклист... коротого i1 мне найти не удалось, но по инстрцукции удалось с алиэкпресс млобайтный блок выловить . вполне работособный

Опубликовано
В 23.11.2025 в 01:38, Goose сказал:

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

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

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

если забанят просто все рабочие ендпоинты

как забанят пока никому не ведомо...Пока из моей практики банят пару ip/port, что решаемо, при некоторой сноровке... 

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

конфиг сверил, ему не нравится сам интерфейс...

для драйы теста подними через amneziawg-go какойнить интерфейс типа awg1, и подними конфиг через ту же команду на этом интерфейсе... если поднимется значит неразрешимая проблема с наименованием устройств (я где-то читал, сто дескать надо wg нужно использовать в наименовании...

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

для драйы теста подними через amneziawg-go какойнить интерфейс типа awg1, и подними конфиг через ту же команду на этом интерфейсе... если поднимется значит неразрешимая проблема с наименованием устройств (я где-то читал, сто дескать надо wg нужно использовать в наименовании...

Попробовал. Оно просто не может создать второй интерфейс. Даже если это awg0 или awg1. 
Помучил qwen, но тот чота вообще не отдупляет что происходит. Так и норовит подсунуть скрипт с удалением интерфейсов, которые в ifconfig не появляются до перезагрузки.
В общем, коллеги, вопрос простой, как через amnezia-go создать второй интерфейс? 

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

Оно просто не может создать второй интерфейс

Судя по выдаче ошибки в лог причина в том, что для awg указан неподдерживаемый протокол в конфиге proton, соответственно эта конфигурация и не может примениться к интерфейсу. А если для теста создать только один интерфейс с proton конфигом, то он вообще работает?

Изменено пользователем Goose
Уточнение.
Опубликовано
16 часов назад, Goose сказал:

Судя по выдаче ошибки в лог причина в том, что для awg указан неподдерживаемый протокол в конфиге proton, соответственно эта конфигурация и не может примениться к интерфейсу. А если для теста создать только один интерфейс с proton конфигом, то он вообще работает?

image.png.75328afd645fdf292d9b3097a0ac20d2.png

opkgtun0 принимает любой конфиг, а opkgtun1 не принимает никакой (даже тот, что прекрасно работает на opkgtun0).

Следовательно проблема либо с интерфейсом, либо со связкой awg+opkgtun. 

Опубликовано
32 минуты назад, Konstantine352 сказал:

opkgtun0 принимает любой конфиг, а opkgtun1 не принимает никакой

А вы перед: awg setconf opkgtun1 /opt/etc/proton.conf

выполняли: amneziawg-go opkgtun1

?

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

А вы перед: awg setconf opkgtun1 /opt/etc/proton.conf

выполняли: amneziawg-go opkgtun1

?

Не помню, но на всякий случай выполнил сейчас. Opkgtun0 переподключился после этого. opkgtun1 так и не принимает ни один конфиг.

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

opkgtun1 так и не принимает ни один конфиг

Попробовал, работает.

Спойлер
~ # amneziawg-go opkgtun0
┌──────────────────────────────────────────────────────────────┐
│                                                              │
│       Running amneziawg-go is not required because this      │
│       kernel has first class support for AmneziaWG. For      │
│       information on installing the kernel module,           │
│       please visit:                                          │
| https://github.com/amnezia-vpn/amneziawg-linux-kernel-module │
│                                                              │
└──────────────────────────────────────────────────────────────┘
~ # awg setconf opkgtun0 /opt/etc/awg0.conf
~ # amneziawg-go opkgtun1
┌──────────────────────────────────────────────────────────────┐
│                                                              │
│       Running amneziawg-go is not required because this      │
│       kernel has first class support for AmneziaWG. For      │
│       information on installing the kernel module,           │
│       please visit:                                          │
| https://github.com/amnezia-vpn/amneziawg-linux-kernel-module │
│                                                              │
└──────────────────────────────────────────────────────────────┘
~ # awg setconf opkgtun1 /opt/etc/awg1.conf
~ # top | grep awg
14829     1 root     S    1199m244.5   0  0.0 amneziawg-go opkgtun0
14859     1 root     S    1198m244.4   1  0.0 amneziawg-go opkgtun1
~ #

 

 

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

Проверьте по startup-config что OpkgTun1 настроен по аналогии с OpkgTun0, но при этом IP адрес должен быть другим.

У меня работает сетап с двумя интерфейсами корректно.

interface OpkgTun0
    description awg-go-warp
    security-level public
    ip address 172.16.0.2 255.255.255.255
    ip mtu 1280
    ip global 7281
    ip tcp adjust-mss pmtu
    ping-check profile warp
    up
!
interface OpkgTun1
    description awg-go-warp1
    security-level public
    ip address 172.16.0.3 255.255.255.255
    ip mtu 1280
    ip global 3640
    ip tcp adjust-mss pmtu
    ping-check profile warp
    up
!

Бинарь amneziawg-go симлинками заведен на amneziawg-go0 и amneziawg-go1, чтобы при остановке одного не останавливался другой.

Скрипт для запуска первого бинаря. Второй думаю осилите сами:

#!/bin/sh

ENABLED=yes
PROCS=amneziawg-go0
AWG_INTERFACE=opkgtun0
ARGS="$AWG_INTERFACE"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

post_cmd() {
  COUNTER=0
  LIMIT=10
  while [ "$COUNTER" -le "$LIMIT" ]; do
    if awg setconf $AWG_INTERFACE /opt/etc/awg_$AWG_INTERFACE.conf 2>/dev/null; then
      logger -t "$0" "Successfully configured $AWG_INTERFACE"
      break
    fi
    logger -t "$0" "Failed to configure $AWG_INTERFACE, retrying... ($COUNTER/$LIMIT)"
    sleep 1
    COUNTER=`expr $COUNTER + 1`
  done

  if [ "$COUNTER" -gt "$LIMIT" ]; then
    logger -t "$0" "ERROR: Failed to configure $AWG_INTERFACE after $LIMIT attempts"
  fi
}

POSTCMD="post_cmd"

 

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

@Mechanics

Спасибо за внимание к моей проблеме!

Проблема была в скрипте запуска. Сегодня как раз приехала новая флешка, переставил opkg, сделал все как раньше, за исключение запуска скрипта. Получил:

Спойлер

/ # amneziawg-go opkgtun0
┌──────────────────────────────────────────────────────────────┐
│                                                              │
│       Running amneziawg-go is not required because this      │
│       kernel has first class support for AmneziaWG. For      │
│       information on installing the kernel module,           │
│       please visit:                                          │
| https://github.com/amnezia-vpn/amneziawg-linux-kernel-module
│                                                              │
└──────────────────────────────────────────────────────────────┘
/ # amneziawg-go opkgtun1
┌──────────────────────────────────────────────────────────────┐
│                                                              │
│       Running amneziawg-go is not required because this      │
│       kernel has first class support for AmneziaWG. For      │
│       information on installing the kernel module,           │
│       please visit:                                          │
| https://github.com/amnezia-vpn/amneziawg-linux-kernel-module
│                                                              │
└──────────────────────────────────────────────────────────────┘
/opt/etc/init.d # top | grep awg
10261     1 root     S     522m104.0   0  0.0 amneziawg-go opkgtun0
10286     1 root     S     522m104.0   1  0.0 amneziawg-go opkgtun1

После поднятия одного интерфейса скриптом:
 

Спойлер
#!/bin/sh

ENABLED=yes
PROCS=/opt/bin/amneziawg-go
ARGS="opkgtun0"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

post_cmd() {
  sleep 10
  if [ -d "/sys/class/net/opkgtun0" ]; then
    awg setconf opkgtun0 /opt/etc/awg.conf
  fi
}

POSTCMD="post_cmd"

. /opt/etc/init.d/rc.func

получил ту же ошибку на интерфейс opkgtun1, что и ранее.

Камрад @qmxocynjca, огромное спасибо. Ваш скрипт внес ясности. 

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

PROCS=/opt/bin/amneziawg-go

вот так делать не надо. путь должен быть в PATH ниже, а здесь должно быть только имя экзешника, иначе логика по остановке/перезапуску работает некорректно.

32 минуты назад, Konstantine352 сказал:

Ваш скрипт внес ясности. 

Починили в итоге? В чём прикол был?

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

Бинарь amneziawg-go симлинками заведен на amneziawg-go0 и amneziawg-go1, чтобы при остановке одного не останавливался другой.

@qmxocynjca в этом была проблема.

Но он не то что бы останавливался, он тупо не запускался. Спасибо Вам еще раз!

А как Вы реализовали перезапуск при отвале интернета?

Опубликовано
24 минуты назад, Konstantine352 сказал:

А как Вы реализовали перезапуск при отвале интернета?

Никак. После выкл/вкл интернета оно вроде само поднимается. Но если надо, то логично в iflayerchanged.d отлавливать ipv4==running на интерфейсе провайдера и дёргать рестарт необходимым сервисам в /opt/etc/init.d.

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

Никак. После выкл/вкл интернета оно вроде само поднимается. Но если надо, то логично в iflayerchanged.d отлавливать ipv4==running на интерфейсе провайдера и дёргать рестарт необходимым сервисам в /opt/etc/init.d.

Блин, после перезагрузки маршрутизатора, он не поднял сам opkgtun0, но поднял opkgtun1. 

Попытки стравить ему:

/opt/etc/init.d # awg setconf opkgtun0 /opt/etc/awg.conf
Unable to modify interface: Protocol not supported
 

И только после amneziawg-go opkgtun0 он скушал /opt/etc/init.d # awg setconf opkgtun0 /opt/etc/awg.conf

И еще, не реагирует на:

Спойлер

/opt/etc/init.d # ./S21amneziawg stop
/opt/etc/init.d # ./S21amneziawg restart
при этом:
/opt/etc/init.d # ./S22amneziawg restart
 Shutting down amneziawg-go1...              done.
 Starting amneziawg-go1...              done.

 

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

не поднял сам opkgtun0

Смотрите где накосячили, возможно ENABLED=no прописали и забыли. В этом случае скрипт вот так ничего не делает прям как у вас. Может что-то ещё сломали, постарайтесь разобраться просто сравнив два файла S21 и S22.

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

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

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

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

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

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

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

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

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

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

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

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