Комментарии 52
Круть! Хорошее решение, а есть ли вариант добавить возможность подключать каскад, как это реализовано в 3ax-ui? И апишку бы сюда....
По API - он там уже есть: фронтенд сам ходит только через REST, своего внутреннего протокола нет. Basic auth, и всё доступно: серверы, клиенты, старт/стоп, трафик, выдача конфигов и vpn://-ссылок,suspend/activate. Полный список эндпоинтов - в DOCS.md, раздел "Эндпоинты API". Из планов -отдельный токен вместо пароля и OpenAPI-спека, чтобы удобнее работать с tg-ботами
По каскаду - даже не думал пока что
Спасибо, что поделились, отличное решение.
Не работает ваша амнезия, тьфу
Честно, не понимаю почему. Но Амнезия живёт не долго. Использовал вторую версию, быстро провайдер заблочил. Установил новую версию, первые пару дней было нормально. Потом в два раза схлопнулась скорость, потом половина пакетов стало теряться и вот сегодня совсем всё легло.
При это хистерия живёт уже год, и никаких проблем.
Использую для амнезии (еще версии 2.0) генератор обфускации (лежит на гитхабе, юзер Vadim Khristenko). Ссылки живут минимум по полгода, если отвалилась ссылка - удаляется старая, генерируется новая, также прогоняется через обфускатор и спокойно существует дальше. Проверено на 6 клиентах в 4 регионах нашей необъятной (мобильный и стационарный интернет). Из минусов - не пробивает белые списки от слова совсем. Мб версия 3.1 справится, но есть подозрение что нет.
Да я пока просто использую хистерию, для меня в разы стабильно. Перемещался по стране - проблем не было.
Белые списки думаю ничем не обойти на данный момент.
Так поставьте на сервер из белых списков, тогда пробьет 🤣
Без точки с адресом в белых списках их не обойти никак.
Если руками - никакой формулы там нет, я просто держу в голове несколько правил.
Первым делом выбираю MTU, а не паддинги. Потому что чем больше MTU, тем меньше места остаётся под паддинг: пакет с обвесом должен влезть в 1500 байт, и на MTU 1420 под паддинг остаётся всего байт 20, а на 1280 - все 150. Если перебрать, каждый большой пакет начнёт фрагментироваться, а это и медленно, и заметно - ровно то, от чего мы прячемся.
S1-S4 ставлю одинаковые, где-то от 15 до того потолка, что получился выше. Меньше 12 нельзя вообще - оттуда берётся nonce для шифрования заголовков. И одна ловушка: S2 не должно быть равно S1 + 56, иначе сервер не сможет отличить один тип пакета от другого. Конфиг при этом запишется без ошибок, просто хендшейк никогда не случится.
Jc беру случайное от 4 до 12, Jmin = 8, Jmax = 80 - это из документации, трогать незачем. H1-H4 оставляю 1, 2, 3, 4. В 3.x заголовок и так шифруется, снаружи его не видно, так что случайные числа там ничего не добавляют - только ещё четыре значения, которые должны совпасть у всех клиентов.
Ключ HeaderProtectionKey - openssl rand -base64 32, один на сервер, и тот же самый у всех клиентов. RandomTrailers = true тоже с обеих сторон, иначе сервер молча выкинет хендшейк. DisableCookies = true - только на своей стороне, для домашнего сервера нормально. Тайминги не трогаю вообще, дефолты WireGuard годами работают. Разве что PersistentKeepalive = "22-30", чтобы у всех не было ровно 25.
В панели github.com/mycelium-mesh/amneziawg-ui есть генератор, который под выбранный MTU сразу выдаёт правильный набор, ключ берёт откуда надо и раздаёт клиентам те же значения, так что ничего не разъедется.
Я с 2023 года ни разу не сталкивался с блокировками. Палит не недостаточно случайный Jc, а одинаковые длины пакетов и порт 51820. Убрали это - и дальше просто работает VPN. Единственное исключение - Китай. Там обфускация не помогает: гасят не протокол, а IP - соединение начинает отваливаться по таймауту и с каждым разом поднимается всё хуже. Спасают только два сервера на разных адресах, которые чередуешь: пока сидишь на одном, второй отлёживается.
Вы уверены, что на сервере дополнительно не стояло reality или OpenVPN без tls crypt? Ркн банят по ip только то что подвержено актив пробингу, вг и авг этому не подвержены. По поводу замедление и потерь пакетов - проблема у вас/хостинга, ркн так не делают с рандом впсками
Возможно и в первом случае косяк был с вашей стороны. Проверять блокировку надо веб сервером с файлом >16кб (рабочий ssh не показатель)
Ркн банят по ip только то что подвержено актив пробингу, вг и авг этому не подвержены.
Откуда данные? Ркн, по примеру китайцев, ничего не мешает отправлять в /dev/null любой пакет, который не соотв. известным протоколам. IP вообще не при делах окажется.
Собственные наблюдения за заблокированными ip.
А вообще перечитал коммент, оказывается там про ip блок и не говорилось. Хз в чем могла быть проблема, контейнер амнезии бывает зависает сам по себе и требуется ребут впс, а новая версия проблемная сама по себе судя по комментам от некоторых пользователей (писали что обновление до 3.0 давало потери пакетов, кому-то помогло уменьшение мту до 1280)
Судя по ситуации с awg3, у многих всё работает без каких-то настроек, но у меня, например, скорость на awg 3.1 ~2 мбит/с на проводном и мобильном провайдерах. Полгода назад пробовал awg2, скорость была 5 мбит/с. Vless при этом работает на максимальной скорости. То есть дело просто в настройке ТСПУ. Шейпят весь шифрованный UDP трафик на зарубежные ip.
В настоящих впнах нету терминации tcp, из-за чего может быть сильно ниже скорость чем в влесс. Шейпить до 5 или даже 2мбит/с просто не имеет смысла для ркн
Как уже писал: про авг 3.0 видел что жаловались на потери пакетов, соответственно низкую скорость
А с чем ещё тогда может быть связана такая скорость с двух разных устройств и сетей, но в одной локации? Wireguard до проходного сервера в Мск даёт максимальную скорость, а awg3 до зарубежного VPS напрямую идёт со скоростью 2 Мб.
Уже с апреля где-то не так, РКН смотрит поведение соединений и накидывает баллы (длительность соединения, интервалы между пакетами, объем передаваемых данных и общая статистика потока). Когда сумма баллов больше определенного значения блокируется сервер
Откуда информация? Пример заблок ip?
Вот яркий пример работы этого механизма: https://habr.com/ru/news/1046025/
нет. это совершенно не то, что мне описали выше. это очень простая блокировка которой хотели заблокировать прокси для тг и vless+tls, но поломали многие сайты. действует грубо говоря по 1 признаку - множество тлс сессий с отпечатком браузера chrome/safari за короткое время (и это всё только на части провайдеров и только до некоторых сетей, иначе сломали бы гораздо больше сайтов)
кстати, по вашей ссылке можно докликать и до моей статьи, где я описывал самую первую версию этой блокировки, которая работала для любого tls отпечатка, а не только chrome/safari, и распространялась на весь интернет, а не только определённые сети
https://habr.com/ru/companies/amnezia/articles/1080534/
Сейчас наши выводы выглядят так:
ТСПУ могли начать активнее использовать или усовершенствовать механизм накопления статистики по исходящим подключениям и пакетам;
серверы с большим объёмом трафика могут выделяться в отдельную выборку для более глубокого анализа;
в собранном трафике ищут не один однозначный маркер, а сочетание нескольких косвенных признаков VPN‑протоколов;
методика «пробития ТСПУ», которая применялась в AmneziaWG 2.0, больше не работает — на весь трафик смотрят более детально, как минимум под анализ попадают первые 10 пакетов;
после накопления достаточного количества сигналов блокируются конкретные IP‑адреса, а соседние адреса — вся подсеть /24 — попадают под усиленное наблюдение, мы замечали, что на соседних адресах иногда начинается пробинг.
ну первые 3 пункта если действительно есть, то опасны только для крупных впн провайдеров, потому что ни у меня ни у друзей блокировок впс по количеству трафика или признакам впн (именно в трафике, а не пробингом) небыло (а мы любители awg 2.0 и openvpn). 4 пункт, если читать дословно - просто не правда, иначе было бы массовое количество жалоб от пользователей варпа, протона и т.п. которые требуют i1 (awg 2.0)
про пробинг уже писал выше, пока что кроме него доказанных блокировок случайных ip не видел (но видел необъяснимые блокировки типа блокировки ip от win-rar.ru в два разных правила блокировки)
Все что написано, абсолютная правда как минимум для регионов. Москва остаётся самой лояльной и там многое работает, что в регионах давно сломано/запретили. awg 2 сейчас активно улетает по всему IP в бан, и это касается self host решений, даже если вы в одиночку используете свой сервер.
Сейчас как раз наблюдается массовое количество жалоб от тех кто настраивал у себя awg 2 автоматически через приложение. Вручную настроенные, с нестандартными параметрами ещё живут, но это вопрос времени.
У меня амнезия работает без перебоев (кроме одного у провайдера) с конца 23 года.
У меня работает нормально последняя 3.Х версия, параллельно с VLESS на том же сервере. Вероятно, проблема в конфигурации либо сервера, либо клиента у вас.
Уже два года использую селф-хостед 1.5 - и Ростелеком, и Мегафон не блокируют.
Потому что глушат прицельно именно амнезию, т.к. она самая известная, а до более мелких ВПН ещё не добрались
Что то вы не так делаете, у меня Легаси версия спокойно работает
Я честно обошёл то, что лежит на GitHub
Поскольку рекламы VPN сейчас вагон, можете ли вы порекомендовать на какие решения стоит обратить внимание, если по какой-то причине с амнезией возникнут проблемы?
Есть ли клиенты для AWG3.1, которые на Андроид поднимают только SOCKS5 прокси с авторизацией?
У меня прекрасно работала амнезиявг 2.0
А сейчас как обновился до 3.1 мобильный инет отвалился на билайне и йоте. Крч не работает. А с истерией всё норм, как выше пишут
OpenWRT давно не хочется добавлять AWG в официальные репозиторий. Вот еще одна попытка, моя. Если кто то хочет поддержать эту инициативу, напишите в комменте PR что вам было бы полезно иметь AWG на роутера из официального репозитория.
https://github.com/openwrt/packages/pull/30492
а как сделать что б вебморда http слушала только на localhost? Поставлю caddy.
в вебморде открытой на телефоне (s25u, firefox, opera - в любом браузере) нельзя добавить пользователя - не пишется имя.
а так то всё работает, автору респект.
Localhost для Caddy - сейчас проще всего в docker-compose.yml привязать порт к loopback:
ports:
- "127.0.0.1:${WEB_UI_PORT:-54845}:${WEB_UI_PORT:-54845}/tcp"
Тогда снаружи порт недоступен, а Caddy проксирует на 127.0.0.1:54845. Отдельную переменную для адреса прослушивания добавлю.
Ввод имени на телефоне - известное ограничение: интерфейс рисуется в <canvas> (Fyne/WebAssembly), и мобильные браузеры не поднимают экранную клавиатуру без настоящего поля ввода. Воспроизвёл, буду делать обход. Пока можно добавлять клиентов с десктопа.
Первое поправил, спасибо, cady работает:
ss -lntp
LISTEN 0 4096 127.0.0.1:54845 0.0.0.0:* users:((“docker-proxy”,pid=47287,fd=8))
cat /etc/caddy/Caddyfile
11.22.33.44 { reverse_proxy 127.0.0.1:54845 }
Второе жду, было бы ваще здорово. =)
А ещё вопрос. Когда всё-таки генеришь "нового клиента" со смартфона, можно ли его как-то потом переименовать? У них же “id” уникальный, но правка “name” внутри контейнера /etc/amnezia/web_config.json не помогает.
Подскажите пожалуйста как можно безопасно запустить клиента амнезии? Все дело в том что пока в официальном дебиан репозитории нет пакета с приложением, я буду считать не безопасным устанавливать стороннее приложение с рут привилегиями. Да, такой я параноик) Вот и хотелось бы иметь решение, запускать например минимальный контейнер в юзерспейсе, и проксировать через него нужный трафик.
вы если пишете статью через нейронку, то хотя бы хвосты за ней подчищайте
Спасибо за опыт, действительно сэкономило наверно пару вечеров. Очень помог ваш опыт с обновлением. У меня вся беда оказалась в устаревших amneziawg-go и amneziawg-tools!
Установил. Но qr отсутствует в конфиге...
хорошо бы поддержку протокола 2.0
Рассматривается ли возможность добавления серверов на других хостах? (Имеется в виду централизованное управление, например, десятью серверами.)
А как бы ещё туда DoT прикрутить?
В целом лучшее решение из всего нейрослопа что есть, но вебморда это просто боль для глаз, ладно хоть работает, но столько косяков мелких по интерфейсу просто ппц. К ядру вопросов нет.

AmneziaWG: от 2.0 к 3.1, и что творится у вас под капотом