Ник Пост Дата
AmneziaVPN

Всем привет!

Во время недавних блокировок OpenVPN и WireGuard команда Amnezia VPN задумалась над созданием собственного протокола, который сможет помочь пользователям обходить блокировки при этом сильно не снижая скорость (так как OpenVPN over Cloak, который мы рекомендовали к установке - скоростью не радовал по понятным причинам).

Представляем вам нашу реализацию протокола WireGuard - AmneziaWG.

AmneziaWG (AmneziaWireGuard) - это форк обычного WireGuard-Go с добавлением функций для обхода блокировок и снижения вероятности обнаружения протокола. Одной из ключевых особенностей AmneziaWG является обратная совместимость с WireGuard. Это означает, что при использовании AmneziaWG, если в конфигурации не указаны специфические параметры для обфускации протокола, он будет работать как стандартный WireGuard.

В чем особенность?

  • Перед началом сессии клиент отправляет несколько пакетов со случайными данными (количество таких пакетов Jc и их минимальный и максимальный размер в байтах Jmin, Jmax задается в конфиге)
  • Изменен заголовок пакета рукопожатия (Initiator to Responder), и ответного пакета (Responder to Initiator), эти значения также выставляются в конфиге (H1 и H2)
  • Инит-пакеты рукопожатия дополнительно имеют мусор в начале данных,
  • размеры определяются значениями S1 и S2. (по умолчанию инициирующий пакет рукопожатия имеет фиксированный размер (148 байт), после добавления мусора его размер будет равен 148 + длина случайных байтов).
  • Изменен заголовок пакетов с данными и специальных пакетов “Under Load” - H4 и H3 соответственно.

Ещё раз подробно о новых настраиваемых полях:

  1. Jc (Junk packet count) - количество пакетов со случайными данными, которые отправляются перед началом сессии
  2. Jmin (Junk packet minimum size) - минимальный размер пакета для Junk packet. То есть все рандомно генерируемые пакеты будут иметь размер не меньше чем Jmin
  3. Jmax (Junk packet maximum size) - максимальный размер для Junk пакетов
  4. S1 (Init packet junk size) - размер случайных данных, которые будут добавлены к init пакету, размер которого изначально фиксированный
  5. S2 (Response packet junk size) - размер случайных данных, которые будут добавлены к ответу, размер которого изначально фиксированный
  6. H1 (Init packet magic header) - заголовок первого байта рукопожатия
  7. H2 (Response packet magic header) - заголовок первого байта ответа на рукопожатие
  8. H4 (Transport packet magic header) - заголовок пакета передаваемых данных
  9. H3 (Underload packet magic header) - заголовок пакета UnderLoad

Как вы можете догадаться, заголовки H1, H2, H3, H4 должны быть разными. Если выставить Jc, S1 и S2 в нули, то и мусора не будет.

Протестировать данный протокол можно 2-мя способами:

  1. Установите Amnezia VPN на своем сервере, скачав клиент с официального сайта.
  2. Написать нам на почту с просьбой выдать конфиг для тестирования данного протокола (в заголовке письма требуется указать “Тестирвоание AmneziaWG - NTC.PARTY”).

Просим всех, кому интересно, протестировать данный протокол!

Любые отзывы по работающему/не работающему протоколу и производительности приветствуются! Вопросы тоже.

English

Hello everyone!

During the recent blocking of OpenVPN and WireGuard the Amnezia VPN team thought about creating their own protocol, which could help users to bypass the blocking without slowing down the speed (since OpenVPN over Cloak, which we recommended to install, was not very fast for obvious reasons).

Here is our implementation of the WireGuard protocol - AmneziaWG.

AmneziaWG (AmneziaWireGuard) is a fork of the WireGuard-Go with added features to bypass blocking and reduce the probability of protocol detection. One of the key features of AmneziaWG is backward compatibility with WireGuard. This means that when using AmneziaWG, unless specific parameters for protocol obfuscation are specified in the configuration, it will work like standard WireGuard.

What is the feature?

  • Before starting a session the client sends several packets with random data (the number of such packets Jc and their minimum and maximum size in bytes Jmin, Jmax is set in the config).
  • The header of handshake packet (Initiator to Responder) and response packet (Responder to Initiator) has been changed, these values are also set in config (H1 and H2).
  • Handshake init packets additionally have garbage at the beginning of the data, the sizes are determined by S1 and S2 values. (by default, the handshake init packet has a fixed size (148 bytes), after adding garbage its size will be 148 + size of random bytes).
  • The header of data packets and special “Under Load” packets has been changed - H4 and H3 respectively.

More details about new customizable fields:

  1. Jc (Junk packet count) - number of packets with random data that are sent before the start of the session
  2. Jmin (Junk packet minimum size) - minimum packet size for Junk packet. That is, all randomly generated packets will have a size no smaller than Jmin.
  3. Jmax (Junk packet maximum size) - maximum size for Junk packets
  4. S1 (Init packet junk size) - the size of random data that will be added to the init packet, the size of which is initially fixed.
  5. S2 (Response packet junk size) - the size of random data that will be added to the response packet, the size of which is initially fixed.
  6. H1 (Init packet magic header) - the header of the first byte of the handshake
  7. H2 (Response packet magic header) - header of the first byte of the handshake response
  8. H4 (Transport packet magic header) - header of the packet of the data packet
  9. H3 (Underload packet magic header) - UnderLoad packet header.

As you can guess, the H1, H2, H3, H4 headers must be different. If you set Jc, S1 and S2 to zero, there will be no garbage.

There are 2 ways to test this protocol:

  1. Install Amnezia VPN on your server by downloading the client from the official website.
  2. Write to us by e-mail with a request to issue a config for testing this protocol (in the header of the e-mail you should specify “Testing AmneziaWG - NTC.PARTY”).

We ask everyone who is interested to test this protocol!

Any feedback on working/not working protocol and performance is welcome! Questions too.

2023-10-24T14:40:34.381Z
bolvan

Linux kernel module ожидается ? Кощунство гонять tun на роутерах с openwrt и VPS

2023-10-24T16:00:21.309Z
AmneziaVPN

Планируем.
На данный момент находимся на стадии поиска исполнителя.

2023-10-24T17:03:11.829Z
spirt(andy)

Будет поддержка других дистрибутивов, кроме ubuntu и debian ? На арч не устанавливается, internal error.
В логах сервера установка не идёт дальше COMMAND=/usr/bin/docker ps --format ‘{{.Names}} {{.Ports}}’

2023-10-24T23:26:16.149Z
Geracl(blacktemple support)

Что значит обратная совместимость WG, получается для вашей серверной части нужен свой клиент? или клиент WG дефолтный подойдет

2023-10-25T05:05:15.827Z
bolvan

Полагаю, что обратная совместимость достигается только в случае полного отключения всех дурилок DPI, что превращает софт в оригинальный WG. В таком виде его использование лишено смысла.
А в другом стандартные клиенты не подхватят. У WG очень все строго. Если что-то неправильно, такие пакеты молча отбрасываются

2023-10-25T06:13:17.752Z
AmneziaVPN

Спасибо огромное за репорт.
Расширить поддержку дистрибутивов для установки планируем, да.

2023-10-25T11:45:41.856Z
AmneziaVPN

С обычным WG сервером может работать конфигурация AmneziaWG в которой установлены Jc, Jmin, Jmax, а остальные поля нулевые. Таким образом клиент AWG будет просто посылать мусорные пакеты перед init пакетами, что абсолютно не влияет на работу протокола WG, но может сбить с толку DPI.

2023-10-25T11:47:00.180Z
soloway(Solo Way)

Какие молодцы. Очень правильное направление. Часто обсуждаемые сейчас обертки туннелей на основе TLS (Cloak и тп) в настоящий момент сильно избыточны и неизбежно ведут к драматичному снижению скорости, огромным задержкам из-за чего пользоваться ими невыносимо.

Огромная благодарность за мобильные клиенты.

2023-10-25T12:20:31.588Z
soloway(Solo Way)

Это слегка модифицированный wireguard-go. Легко скомпилировать самостоятельно и закинуть один файл в /usr/bin

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

2023-10-25T12:30:14.945Z
tlgrmku(tlgrmku)

Эт конечно всё хорошо. Но как быть с мобильными клиентами?

2023-10-25T16:19:11.479Z
AmneziaVPN

Новая версия Amnezia VPN (4.0.8), которая как раз и поддерживает новый протокол, доступна для всех платформ - Windows, MacOS, iOS, Android и Linux (в PlayMarket его еще нет, так как он проходит review от Google, поэтому вы можете установить apk с GitHub).

2023-10-25T16:41:46.936Z
anon94384997

Попробовал, установщик ставится в /usr/local/bin, /opt/AmneziaVPN, /usr/share/applications, служба systemd AmneziaVPN, без деинсталлятора. deb пакет был бы предпочтительней.

2023-10-25T17:27:58.001Z
borouhin(Alexander Borouhin)

А можно какими-то плюс-минус рекомендованными параметрами всех этих Jc, S и H поделиться?

Сейчас собрал на двух машинках с Ubuntu (сюрприз, для сборки требует Go 1.20+, в Ubuntu 22.04 - 1.18, пришлось ещё Go ставить с офсайта свежайший), в конфиги накидал значений от балды, запустил, погонял iperf - падение скорости в пределах погрешности измерения. Но это просто тестовый сервер, который первый под руку попался, и мой ноут, между ними и так всего 30-35 Мбит/с (latency ~80 ms). Буду пробовать на более толстом канале.

Вообще, если это будет стабильно работать и при не блокироваться - это спасение, конечно. У меня по WG сейчас не только пользователи инсту смотрят, но сервера между собой данные перекидывают, иногда терабайтами за раз, так что скорость канала критична.

P.S. Ну что могу сказать, впечатлён! На скоростях поприличнее (550-600 Мбит/с без VPN, latency между серверами 40 ms) падение скорости в пределах 5% (ну т.е. опять погрешности измерения), использование CPU по время запуска iperf в пределах единиц процентов (и это на древнем Xeon E5645).

2023-10-25T20:57:00.652Z
spirt(andy)

Собрал , установил amnezia-wg, amnezia-wg-tools. Добавил к конфиг интерфейса Jc = 10, интерфейс не поднимается, ругается на неверный параметр. Может как-то поподробнее расскажете , как установить корректно из гитхаба ?

2023-10-26T02:12:02.585Z
Geracl(blacktemple support)

будет ли клиент чистый без установщика? даже в новой бета версии он очень тяжелый для обычного юзера. Какая нибудь lite версия как outline ждущая конфига или ключа

2023-10-26T03:08:47.027Z
soloway(Solo Way) 2023-10-26T05:36:42.196Z
spirt(andy)

спасибо, добрый человек !

2023-10-26T06:24:28.324Z
borouhin(Alexander Borouhin)

К ссылке, которую выше скинули, добавлю, что адрес собственно интерфейса, который обычный WG берёт из конфига (Interface → Address), тут надо добавлять через ip address add X.X.X.X/XX dev wgX, и у меня после всего этого потребовалось ещё пнуть ip link set dev wgX up, чтобы запустился.

Ну а я пошёл собирать под Alpine на arm32, чтобы запихнуть на Микротик :slight_smile: Собрать-то собрал, но что-то пока не особо работает, буду разбираться.

2023-10-26T09:48:09.094Z
AmneziaVPN

Предполагаем что при текущих условиях Jc лучше брать в интервале [3,10], Jmin = 100, Jmax = 1000, S1,S2 в [50,500], и рандомные H1-H4 < uint_max

2023-10-26T12:06:41.950Z
0ka(0ka)

в официальном WG все именно так, и на офф сайте в гайде по настройке это есть

2023-10-26T19:00:42.475Z
borouhin(Alexander Borouhin)

С официальным в большинстве случаев используется и в большинстве гайдов описан wg-quick, который берёт адрес (и ещё несколько параметров, перечисленных в его мане, неизвестных wg) из конфига. Для тех, кто не пользовался чистым wg - тот момент, что wg setconf ругается на тот самый конфиг, который wg-quick принимал на ура, может быть неочевиден, как и показал пост @spirt выше. Поэтому и пояснил.
Но в целом, пожалуй, и тут лучше и wg-quick дособрать, да, а то у меня какой-то промежуточный вариант получился - уже с wg, но ещё без wg-quick :slight_smile:

2023-10-26T19:11:34.758Z
spirt(andy)

Завелся на арче , скорость на первый взгляд как на родном вайргуарде. Только почему-то виндовс клиент(амнезия) не работает. Wireshark вообще не показывает пакетов в строну сервера во время подключения. Проверял на вин10 и вин11. На андроиде всё ок.

2023-10-26T23:38:42.898Z
borouhin(Alexander Borouhin)

Завёлся на Mikrotik RB3011 (arm32, в контейнере на базе Alpine). Где-то я только накосячил с кросс-компиляцией wg, не запускается, но обошёлся без него, берём nc и пишем настройки в сокет, от wg не сильно много облегчения в этом вопросе. Можно сделать контейнер, которые все настройки будет брать из переменных окружения, настроенных в Микротике (и сделаю).

Производительность разочаровала. 2 ядра по 1,4 ГГц, при трафике всего 30 Мбит/с загрузка CPU 75-85%. С родым Wireguard микротика держится в пределах 30%. Сейчас с того роутера, на котором поднял для теста amnezia-wg, больше скорость и без VPN не получается, следующий раз попробую на более шустром канале, но что-то мне подсказывает, что в потолок по CPU упрусь очень скоро :frowning:

P.S. Кто ещё будет заморачиваться с применением wireguard-go в чистом виде без wg - чтобы получить из ключа, который генерит wg и который в обычном конфиге для wg-quick указывается, ключ, который можно напрямую скормить в сокет с командой set, надо исполнить следующее: “echo your_key_from_wg_conf | base64 -d | xxd -p -c 256” Может, это я один такой недогадливый, но я на этот момент час потратил, пока исходники wg не почитал. А ведь должен мне был знак “=” в конце ключа сразу намекнуть, что это base64, и прежде чем его кодировать в hex, надо его раскодировать…

2023-10-27T01:50:26.764Z
spirt(andy)

вы не разбирались с wg-quick? у меня собранный из гитхаба amnezia-wg-tools почему-то всё равно ругается на неверный параметр. без него очень грустно )

2023-10-27T04:39:14.480Z
borouhin(Alexander Borouhin)

Нет, я решил обойтись одним wireguard-go. По ходу, я даже wg под какую-то не ту разновидность arm32 собрал, а с учётом моего сценария использования (все параметры надо брать из переменных окружения, а не из файла) никакого смысла в wg особого нет, чем десять раз вызывать wg set, проще echo -e “set=1\n\private_key=…\n…\n\n” | nc local:/var/run/wireguard/wgXX.sock" вызвать один раз и ip два раза.

Ну а если wg есть - то wg-quick заменяется ровно на три команды - wg setconf, ip address add и ip link set. Ну ещё если у Вас там в PostUp что-то было - то вызвать его вручную. Особых проблем не вижу.

2023-10-27T09:11:52.535Z
invu(invu)

@spirt, берешь свой conf, комментируешь строку с Address, ниже добавляешь нужные параметры:
Jc=uint16 Jmin=uint16 Jmax=uint16 S1=uint16 S2=uint16 H1=uint32 H2=uint32 H3=uint32 H4=uint32

после:
wg setconf <interface> conf-file
ip (-6) address add <какой там был закомментированный адрес> dev <interface>
ip link set mtu 1404 up dev <interface>
#по поводу mtu не уверен
ip (-6) route add <адрес пира> dev <interface>
и проверяешь пингом

PS: У меня wireguard-wg (amnezia-wg) собранная статически занимает меньше места:
в Makefile заменить
go build -v -o "$@"
на
CGO_ENABLED=0 go build -v -trimpath -ldflags "-s -w" -o "$@"

2023-10-27T09:41:29.542Z
spirt(andy)

Спасибо всем за развернутые ответы. С сервером разобрались более менее ) теперь возникает проблема на линукс-клиенте c дефолтным маршрутом. клиент-сервер друг друга пингуют, но стоит добавить на клиенте ip r add 0.0.0.0/0 metric 1 dev wg0 , всё глохнет. что не так опять ?)

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

ждём модуль ядра ) и amnezia-wg-quick ) я конечно понимаю unix-way , все дела, но удобно же )

2023-10-27T22:45:20.380Z
spirt(andy)

win клиент амнезия не работает. трафика нет с него вообще. проверили на много всяких разных виндовс.
на этих же компах прекрасно работают openvpn wintun, tun, dco, wireguard оригинал , sing-box system, gvisor, mixed.

2023-10-28T04:23:52.228Z
soloway(Solo Way)

Пару слов о том, как сделать конфиг для мобильного приложения AmneziaVPN:

  1. Заполнить шаблон параметрами своего сервера:
    a-conf.example.json (1.7 KB)
    Очень внимательно. По непонятным причинам многие параметры указываются трижды.
  2. Запустить прикрепленный скрипт и вставить текст полученного конфига:
    a-conf.py (1.0 KB)
    После нажатия Enter параметры будут упакованы в строку вида vpn://… которую можно импортировать в мобильном приложении.

Для работы скрипта требуется PyQt6. Если необходимо установить:
# pip install PyQt6

2023-10-28T20:58:10.890Z
stupidityIsntCrime

чтобы пынять работает или нет нужно дождаться очередной волны тестирования блокировки протоколов, там видно буит

2023-10-29T06:18:32.175Z
AmneziaVPN

Что вы имеете в виду? У вас не подключается приложение или в чем заключается ошибка?

2023-10-30T12:20:29.409Z
Praising7137

Понимаю что проблема не самая важная, но стало интересно. Попробовал выложенным выше скриптом сгенерировать конфиг для своего обычного WG сервера (по вашей рекомендации выставлены Jc, Jmin, Jmax, остальные поля нулевые). Мобильное приложение его приняло и позволило подключаться, никаких проблем. Десктопная версия конфиг тоже приняла, но подключаться отказывается- кнопка просто не реагирует на нажатия. Видимо, в десктопе как-то подругому проверяется конфиг?
a-conf.json (1,3 КБ)

2023-10-30T15:50:00.401Z
spirt(andy)

да, не подключается. Просто бесконечно крутит - “подключение” . wireshark не показывает пакетов в сторону сервера

2023-10-30T21:38:34.853Z
mexxtron(mexxtron)

Интересно, для Entware (Keenetic) реализация этого протокола планируется? Обычный WG на новых arm-кинетиках просто спасение по скорости и удобству…

2023-10-31T06:01:53.014Z
bolvan

Это tun-based софт. Если есть шелл, entware и tun, будет работать.
Но

  1. GO программы очень жирные. без флэшки, наверно, не обойтись
  2. Что там по RAM ? 64 может быть мало

В интерфейс вряд ли проведут. Все-таки что-такое кинетик производитель и что такое этот проект

2023-10-31T06:44:48.314Z
soloway(Solo Way)

Обновил шаблон. Похоже параметр PresharedKey обязателен для десктопной версии.
a-conf.example.json (1.7 KB)

2023-10-31T06:50:29.973Z
mexxtron(mexxtron)

Да в веб-интерфейсе и не надо, если есть OPKG :slight_smile: В новых ARM-кинетиках (Peak, Ultra) по 256 Мб хранилище, я без проблем туда ставлю все нужные пакеты OPKG, флэшку не использую. А оперативки там 512. Очень удачные аппараты получились, лучше них только RB5009.

2023-10-31T07:02:54.944Z
AmneziaVPN

Отписали вам в ЛС.

2023-10-31T09:26:31.609Z
RangerRU

Здравствуйте
Установка на свой сервер только через приложение?
Планируется ли docker вариант для самостоятельной установки и настройки как в своё время wirehole/ DWG и т.д.?
Заранее спасибо за ответ :wink:

2023-10-31T12:41:05.643Z
soloway(Solo Way)

Вполне можно обойтись и без сверхмощного роутера дополнив тот, что есть.

Если у провайдера нет ipv6 нет или он не нужен, а на полке пылится не нашедший применения Raspberry PI или даже старенький PC с сетевым портом, то сравнительно легко можно настроить вторую подсеть работающую на тех же проводах с доступом и интернет через VPN.

Например роутер смотрит в сторону домашней сети с 192.168.1.1/24. Тогда сетевому порту PI назначим сразу два постоянных адреса: 192.168.1.2/24 и 192.168.2.1/24. Настроим маскарадинг и VPN и с теперь любого устройства можно будет ходить как обычно по локальной сети, так и в интернет через VPN вручную поменяв настройки IP с авто на любой незанятый адрес в подсети 192.168.2.0/24 и шлюзом 192.168.2.1.

Звучит как что-то сложное, но это довольно легко организовать в моем любимом systemd-networkd

# cat /etc/systemd/network/en0.network                                                         
[Match]
# Name of my lan interface
Name=en0

[Network]
DHCP=no
Address=192.168.1.2/24
Address=192.168.2.1/24
DNS=1.1.1.1
DNS=1.0.0.1
IPForward=yes
IPMasquerade=ipv4
LinkLocalAddressing=ipv6
LLMNR=no
IPv6AcceptRA=no

# Route to my VPS
[Route]
Destination=11.22.33.44/32
Gateway=192.168.1.1
GatewayOnlink=no

Можно пойти дальше и отключить DHCP-сервер на роутере после чего поднять такой сервер на PI (это еще несколько строк в том же файле настроек). Получится наоборот - подключенные устройства будут автоматически получать интернет через VPN.

2023-10-31T14:31:22.750Z
yury-sannikov(Yuriy Sannikov)

Всем привет!
Комментарий borouhin к статье на Хабре сподвиг меня на эксперименты по запуску amnezia-wg в контейнере Микротика. Если кому интересно, ссылка на репозиторий GitHub - yury-sannikov/amnezia-wg-docker: An amnezia-wg Docker builds
Конечная цель: настроить туннель между микротом и походным роутером на OpenWRT с помощью amnezia-wg.

2023-11-05T20:33:10.835Z
Dhohbr

Заменил 3 версию на 4, предварительно удалив все настройки и пакеты.
Установил Openvpn over Cloak, который работал на 3 версии, и AmneziaWG.
Протокол AmneziaWG работает, а вот Openvpn over Cloak не подключается. В логах приложения висит на Promoting for VPN permissions. На сервере в tcpdump вижу что пакеты прилетают. Телнет проходит.

По интерфейсу есть замечания:
Хотелось бы светлую тему.
Не видно верхней панели.
Заблокированы уведомления приложения. Погуглил в интернетах, пишут что это гугл внёс какие-то изменения для пакетов установленных через APK в Android 13, и разработчики должны внедрить эту поддержку в свое ПО.
Кнопка “Назад” не работает в разделах Settings, Share и на основном экране не выходит из приложения.

2023-11-06T03:04:30.530Z
User_96c9e3c964bf

На данный момент у меня блокируется wg на домашнем и мобильном интернете. Попробовал ваш wireguard, все без проблем завелось и подключается. Еще бы это внедрить в официальный клиент от wireguard вообще цены бы небыло. Но я так понимаю что это врядли когда произойдет.

Спасибо большое команде Amnezia за ваши труды!

2024-01-18T16:00:56.794Z
Aructeb

Подскажите куда копать. Хочу настроить руками.

Создал интерфейс
# amneziawg-go wg1

Установил amneziawg-tools. Пытаюсь настроить, но выдает ошибку:

# wg setconf wg1 /etc/wireguard/wg1.conf
Unable to modify interface: Operation not supported
2024-01-26T10:28:48.838Z
borouhin(Alexander Borouhin)

Не сам сталкивался, но буквально вчера мне писал человек с такой же проблемой. Замена wg на более раннюю версию помогла, это какой-то баг в amneziawg-tools v1.0.20240120 (может быть и нескольких более ранних, в моём случае помог откат на октябрьскую версию, которая у меня была в собранном виде, промежуточные не пробовали).
Ну или выбросить этот wg вообще, раз с ним ещё и проблемы, и писать конфиг напрямую в unix domain socket по мануалу.

2024-01-26T10:52:28.296Z
invu(invu)

У вас точно wg от amnezia? Сейчас собрал с github, всё прошло нормально( только сеть не тестил, времени нет). Вот моя версия wg (130,4 КБ)

2024-01-26T14:47:14.961Z
Aructeb

У меня немного другой размер файла, все собралось без ошибок отсюда GitHub - amnezia-vpn/amneziawg-tools: Tools for configuring Amnezia-WG.

2024-01-26T15:52:35.144Z
Aructeb

Писать напрямую в сокет пробовал, ошибку -22 выдает, не понял что это значит.

Я тут сейчас посмотрел в релизе v1.0.20240120 код из другого бранча, собрал, попробовал, другую ошибку выдает. В общем если у кого то получилось завести, то буду благодарен, если поделитесь, что конкретно и в какой последовательности делали.

2024-01-26T16:36:04.697Z
borouhin(Alexander Borouhin)

Это ошибка синтаксиса. Два неочевидных момента при записи в сокет:

  • значения ключиков private_key / public_key надо в сокет писать не в base64, как в конфиг, а в виде hex dump, т.е. “echo ключ_из_конфига | base64 -d | xxd -c 64 -ps”
  • endpoint может быть только IP, но не hostname.

У меня вместо wg setconf примерно такой скрипт (его формирует ansible, т.к. туннелей и пиров много, но для примера):

#!/bin/bash
cat | socat - UNIX-CONNECT:/var/run/amneziawg/wg13.sock <<- END
set=1
private_key=XXX
listen_port=1313
jc=12
jmin=400
jmax=1200
s1=500
s2=300
h1=33
h2=67
h3=99
h4=12
replace_peers=true
public_key=XXX
endpoint=11.22.33.44:1414
replace_allowed_ips=true
allowed_ip=0.0.0.0/0
persistent_keepalive_interval=10

END
ip address add 10.13.13.1/30 dev wg13
ip link set wg13 up

Ну и systemd unit, который этот скрипт (в данном примере /usr/local/bin/wg_conf13) вызывает (засунуть всё в файл юнита не получается, т.к. там нет поддержки ни heredoc, ни даже pipe):

[Unit]
Description=Amnezia WireGuard tunnel wg13
After=network-online.target nss-lookup.target
Wants=network-online.target nss-lookup.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/local/bin/wireguard wg13
ExecStartPost=/usr/local/bin/wg_conf13
ExecStop=ip link delete dev wg13
Restart=Always

[Install]
WantedBy=multi-user.target

P.S. В последних билдах amnezia-wg путь к сокету изменился - теперь не /var/run/wireguard/wgXX.sock, а /var/run/amneziawg/wgXX.sock. Поправил скрипт выше.

2024-01-26T17:34:22.766Z
synclpz(Victor)

Добрые люди (Telegram: Contact @romikb) в чате в телеге сделали билд wireguard для винды с поддержкой amneziawg, GitHub - RomikB/amneziawg-client-windows: Download WireGuard for Windows at https://www.wireguard.com/install . This repo is a mirror only. Official repository is at https://git.zx2c4.com/wireguard-windows

У меня собралось за 5 минут и запахало

2024-04-21T21:39:38.623Z
0ka(0ka)

не понимаю почему после всей работы заливку релиза пропускают, и разрабы амнезии, и добрые люди выше.

Мне лично было сложно с этим протоколом: пакет для установки модуля и утилит на сервер зарыт на гитхабе без упоминаний в теме, хз каким чудом я его нашел, после установки вижу что man без изменений от оригинала, а команда awg-quick выдаёт мне неверный путь

configuration found at /etc/amnezia/INTERFACE.conf.

конфиги на самом деле в /etc/amnezia/amneziawg/INTERFACE.conf

инфы про параметры S1,S1,Jc,… почему-то нет нигде кроме этой темы

официальный GUI клиент не позволяет вручную добавить конфиг (спасибо soloway выше что смог расшифровать строку vpn://, но добавление конфига таким способом это боль)

идея супер, работает тоже супер, но реализация просто нет слов, без генератора конфигов от soloway я бы даже не стал пробовать

2024-04-21T22:08:07.168Z
0ka(0ka)

на андроид и apple платформы вышло нормальное приложение wireguard, клон оригинала с функциями amneziawg, найдёте в гугл плей и аппстор

2024-05-26T06:26:13.522Z
0ka(0ka)

на винде на официальном клиенте и на amneziawg-client-windows вижу потерю исходящих пакетов если передавать быстрее чем 22мбит\сек, на андроид клиенте при этом всё норм

iperf3 -c 10.11.1.1 -u -b 22000000

[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.25  sec  20.9 MBytes  17.1 Mbits/sec  0.050 ms  3/15907 (0.019%)  receiver

iperf3 -c 10.11.1.1 -u -b 50000000

[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.07  sec  45.2 MBytes  37.6 Mbits/sec  0.045 ms  10852/45195 (24%)  receiver

проверял на win 10 22h2 на реальном железе и ltsc 21h2 в virtualbox, работает одинаково

2024-05-26T07:04:59.435Z
Waffenrock

Это вы про приложение от AmneziaWG v.1.1.1? Так его давно уж зарелизили вроде, нет?
А вот для OpenWRT нормального клиента AmneziaWG с luci-мордой и куртизанками для aarch64 видимо ещё лет 10 ждать будем. Похоже amnezia team считает openwrt проклятым местом.

2024-08-04T19:56:57.536Z
rem

Да как бы уже давно есть готовенькое:

Сегодня перешёл с OpenVPN на AWG

2024-08-10T14:25:15.100Z
bropines(Sergey Pinus)

Я новичек в теме. У меня вопрос к разрабам амнезии. А возможно сделать плагины для nekobox? Типо мне удобнее пользоваться прокси сервером локально в телефоне, из-за включённого адгарда на впн. Или можно добавить поддержку запуска как прокси сервера? Было бы очень удобно.

2024-08-22T23:44:38.280Z
ani917(ani)

спасибо за хорошую программу, но для warp она не помогает

add.
через 3 минуты попыток она у меня разаботала, после перебора jc

2024-08-23T20:07:56.251Z
as9sefrv9jm2(as9sefrv9jm2)

Добрался посмотреть AmneziaVPN клиент. Подключился из него к антизапретовскому впн, и выяснилось, что клиент принудительно всё пихает в тоннель, полностью игнорируя настройки антизапрета.
Подключился к их AmneziaFree, и вот с ним, клиент показал “раздельное туннелирование на сервере”.

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

2024-08-24T14:23:22.040Z
gfqwdgecewgcdw

Какие настройки?

2024-08-25T06:07:16.957Z
ani917(ani)

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

Jc = 12
Jmin = 9
Jmax = 10
H1 = 3
H2 = 2
H3 = 2
H4 = 3

2024-08-25T07:13:34.581Z
0ka(0ka)

Вы же прочитали 1 пост? H параметры изменяют заголовки пакетов, т.е. совместимость с wireguard теряется

2024-08-25T07:20:28.554Z
ani917(ani)

читал
мне надо было не совместимость с вг а подключиться к варп

2024-08-25T07:23:24.873Z
0ka(0ka)

warp это wireguard, соотвественно вам нужна совместимость с wireguard…

2024-08-25T07:29:52.529Z
zzr

вот чесн я думал что ета вся амнезия ет прост очередные “бомбилы”, которые прост решили понтзаработать на хомячках которые не в теме, но оказалось реальная тема ето всё - у меня на мелком провайдере который понтключается к ттк (они лютые ваще в плане блокировок) задушили класический виригуард, а ваш софт реально работает СПАСИБО вам за ваш труд!!1

2024-08-26T08:46:17.020Z
zzr

кстати говоря уже не нужно ничего собирать из исходников и страдать, они выкатили репонизиторий где можн из бинарников всё воткнуть инепарица GitHub - amnezia-vpn/amneziawg-linux-kernel-module: AmneziaWG Linux kernel module

2024-08-26T08:50:31.352Z
klim123123(Klim123123)

подскажи пожалуйста как эти пользоваться в OpenWRT?

на странице /cgi-bin/luci/admin/system/opkg пытался добавить этот урл не работает.
файлов opkg тоже не нашел чтобы скормить в openwrt.

2024-08-28T20:17:09.929Z
norookie(Norookie)

А как-то можно это завести с конфигом от впн провайдера? или не заведется?

2024-08-28T21:06:22.394Z
klim123123(Klim123123)

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

2024-08-28T21:16:11.909Z