
Комментарии 29
Сервер-вход решает, куда направить пакет, по списку российских сетей: список берётся из открытой зоны ipdeny, грузится в
ipset, трафик к адресам из него идёт мимо туннеля, а остальное помечается и уходит на выход. На клиенте настраивать нечего - добавляете его обычнымmanage addна сервере-входе, деление целиком на сервере и одинаковое для всех.
вот это самое неудобное всей инсталляции. нормальные xray, v2raya клиенты в один клик подцепляют файл loyalsoldiers.dat и нет всех этих прыжков
Так и есть, для себя одного клиентский роутинг проще - в статье про это и написано, хватает AllowedIPs на клиенте, без всякого каскада. И geosite в xray штука удобная, тут не спорю.
Каскад нужен в другом случае: когда деление держишь на сервере и не хочешь лезть в каждого клиента. Раздал семье QR в приложении - и у всех сразу рунет напрямую, остальное за границу, без .dat и правил. Для одного пользователя это правда перебор.
Я некоторое время тоже игрался с амнезией..но в итоге ушёл от неё во первых потому, что многие датацентры а может и не только здорово шейпят одиночные udp соединения..те если с сравнивать множественными агрессивными типа hy2 то разница в скорости довольно большая .. Ну и постоянно приходилось подкручивать параметры обфускации в зависимости от операторов ..мест и т.д. для меня оказался не самый удобный вариант )
многие датацентры а может и не только здорово шейпят одиночные udp соединения
так ведь суть сети в дц чтобы трафик шёл без ограничений, это же не домашний интернет какой-то... я таких не видел
множественными агрессивными типа hy2
hy2 работает через одно соединение, с wg разница в том что к каждому tcp соединению внутри туннеля добавляется bbr/brutal congestion control из-за чего может работать гораздо быстрее wg, хотя при желании можно сделать тоже самое и на wg/openvpn и др.
Почти везде столкнулся с тем что что udp шейпят..при канале в 1гигабит мне естественно не хотелось большую её часть терять..так вот проведя множество экспериментов на абсолютно разных дц я точно могу сказать что 90 процентов из них шейпят .. Пока подбирал дц буржуйский для ВПС попробовал около 15..от самых известных до вообще нонеймов..везде я упирался в лимит до 450мб в секунду по udp через амнезию..а где то и до 300..и тут же овпн через tcp давал 900 и та же hy2 .. Сначала я думал что проблема именно в амнезии потому тестил udp так же через iperf и картина та же..по tcp норм по udp тот же лимит что у умнезии получался..
ну так вы получили ваши мегабиты через hy2, значит всё таки на udp нет шейпинга
нету такого шейпера который будет шейпить любой udp трафик, но не hysteria2
Да вы правы ..под моножественными соединениями я имел ввиду как раз поведение алгоритма брутал..те обычный удп вполне себе режется шейпером который может задерживать пакеты .. Соответственно при потерях в 2-4 процента у обычного удп падает скорость .. А у hy2 нет т.к. он продолжает продавливть канал ни смотря на потери..не знаю как ещё по другому выразить свою мысль но я думаю вы поняли что я имею ввиду ) и о каком недостатке амензии говорю)
Справедливо, для гигабита на быстром канале hy2 с агрессивным congestion control выжмет больше - 0ka выше верно разложил, не поспоришь. Но это другая задача. Козырь у Амнезии другой - лёгкость: WireGuard в ядре, копеечный VPS почти не грузится, на клиенте просто приложение на телефоне (хочешь - и бота-раздатчика в докере рядом, серверу без разницы). Для дома 300-450 Мбит за глаза, а весь смысл - проскочить DPI, не теряя этой лёгкости. Возни с настройкой под операторов, кстати, стало меньше - есть пресет и таблица с рецептами.
Я не проверял ваш скрипт, но меня интересует установка Амнезия сервера под Proxmox. Там легковесные контейнеры — LXC. Скажите, ваш скрипт сможет работать в таких условиях?
P.S. сам не проверял не из-за лени, а потому что в дороге.
Прямо внутри LXC - нет. Я ставлю AmneziaWG модулем ядра через DKMS, а контейнер делит ядро с хостом и свой модуль загрузить не даёт. На Proxmox есть два рабочих пути:
Отдать VPN отдельную KVM-виртуалку. Там своё ядро, и скрипт отрабатывает ровно как на обычном VPS, без танцев с бубном. Я бы выбрал этот - проще всего.
Остаться в LXC, но ставить userspace-вариант amneziawg-go: модуль ядра ему не нужен, работает через /dev/net/tun. Мой инсталлятор этот путь не покрывает (он намеренно kernel-native ради скорости), но в ADVANCED.md есть ручной рецепт. Нужен privileged-контейнер либо unprivileged с проброшенным /dev/net/tun и CAP_NET_ADMIN, плюс nesting для iptables. По скорости хуже kernel-native, ориентир +30-50% CPU на гигабите.
Раздел про LXC: https://github.com/bivlked/amneziawg-installer/blob/main/ADVANCED.md#lxc-userspace-adv
Если пойдёте по userspace и упрётесь - заходите в Issues, разберёмся.
Для тех кто привык к функционалу нормального роутера/файрволла - можете поглядеть мой проект Cascade. Я профессиональный сетевой инженер с 23 годами опыта в networking/security.
https://github.com/JohnnyVBut/cascade/blob/master/docs/FEATURES.ru.md
Аналогов по функционалу нет (я не нашел по крайней мере). Контрибьюторы - welcome.
Спасибо, гляну на досуге. Только у нас разные истории: у вас, судя по Docker с панелью, роутер/файрвол с веб-мордой; у меня наоборот - голый kernel-native установщик под одну задачу, без докера и демонов, чтобы на копеечном VPS ничего лишнего не молотило. Так что не пересекаемся - скорее про разные сценарии. Удачи с проектом.
Два с лишним года назад оплатил VPS в Германии с минимальными характеристиками через российского хостера. Установил там Amnezia Self-hosted с помощью их же приложения и root доступа. С тех пор не было ни разу причины зайти на сервер. Все управление, в том числе доступом, через приложение. Удобно и без лишних сложностей)
Я обычный юзер. Тоже решил вчера так сделать с сервером в германии. Зарегистрировался на hetzner. Установил 3x-ui. Настроил realty, подключился, проверил пинг (аж слюна потекла когда увидел 40мс), подключился и через пару секнд бан сервера. Арендовал новый в финляндии. Та же история. Пол дня пытался понять кто виноват и что делать, а похоже дело бонально в том что трафик резали. Семейный копеечный впн хочу поднять, для работы надо, но пока на свой уровень знаний не нашёл гайд. Делить трафик "на ru/не ru" как у автора, на уровне сервера, конечно идеально, но наверное можно и коллективные правила вручную прописать всем участникам (благо гаджетов меньше 10).
Тут причина проста - подсети самого Хетзнера блокируются, в сети много информации об этом.
Прочитайте мои статьи
Знакомая ситуация. Бан за пару секунд - это не «трафик резали», а блок по хостеру: подсети Hetzner (да и других крупных - OVH, Aruba) давно в списках, новый VPS оттуда режут почти сразу. Выше верно подсказали. Лечится сменой площадки - на ntc.party и 4pda есть живые списки рабочих хостеров, Финляндия с Германией сами по себе ок, если конкретная подсеть чистая.
Для семейного копеечного не усложняй на старте: берёшь один такой сервер, ставишь скрипт одной командой (Linux знать не надо), поднимаешь на нём всех и раздаёшь QR на телефоны - уже рабочий семейный VPN. А деление «ru напрямую, остальное за бугор» живёт на сервере, не на каждом устройстве, так что вручную правила прописывать не нужно - это просто шаг второй, добавишь когда освоишься. Начать: https://github.com/bivlked/amneziawg-installer, про деление отдельно: https://github.com/bivlked/amneziawg-installer/blob/main/CASCADE.md
Так в том и беда, что постоянного списка нет. Подсети у хостеров кочуют: сегодня диапазон чистый, через месяц уже в банах - потому и старые темы протухают, та с 2022-го на 4pda сейчас мало чем поможет. ntc.party посвежее, но туда ещё попасть надо.
Я бы на старте за списком и не гонялся. Поставить - минут пять, так что проще просто пробовать: поднял сервер, проверил пару минут. Не взлетело - не сиди весь вечер над конфигом, скорее всего дело в самом хостере, бери другую локацию или провайдера. Почасовая оплата у многих есть, попытка стоит копейки. И ещё: чем популярнее облако, тем хуже. Hetzner, OVH, DigitalOcean берут под VPN массово, их диапазоны чаще всего и оказываются в банах. Что-то поменьше и порегиональнее живёт дольше, хотя и внутри Hetzner иногда везёт на чистую подсеть - тут лотерея.
И сразу, чтобы время не терять: обфускация сама по себе бан по IP не лечит, это про другое - проскочить DPI, когда адрес ещё живой. Так что главное найти живую подсеть, а с маскировкой дальше уже скрипт разберётся.
Апдейт по теме статьи: выкатил v5.17.0. Добавил в фаервол сервера MSS-clamp - он подрезает размер TCP-сегментов под MTU туннеля. Это убирает ровно ту болячку, про которую писал выше: когда на мобильном или в каскаде тяжёлые страницы и закачки виснут из-за того, что где-то по пути режется ICMP.
Всё на стороне сервера, клиентам ничего переделывать не надо. Подробности в релизе: https://github.com/bivlked/amneziawg-installer/releases/tag/v5.17.0
awg-quick@awg0 не понятно касаемо этой команды для перезапуска сервиса после изменения настроек
А почему так сложно реализована схема впна что бы был доступ к российским сайтам?
Не проще воспользоваться возможностью раздельного тунеллирования в клиенте амнезия?
Для одного устройства - да, клиентский AllowedIPs проще, я в статье так и пишу. «Сложно» в серверной схеме не для пользователя: всё один раз делается на сервере, а на клиенте только импортируешь конфиг.
Серверная схема - для семьи, когда устройств несколько. То раздельное туннелирование, про которое ты говоришь, есть в полном приложении Amnezia, а оно тяжёлое - тащит кучу протоколов. Его пришлось бы включать на каждом телефоне и держать список РФ-сетей свежим. На сервере это один раз через ipset, дальше список обновляется сам по расписанию. А устройствам достаётся лёгкий AmneziaWG-клиент (тот же amneziawg-android): импортировал конфиг и пользуешься, ничего не настраивая. То есть не сложнее - просто настройка переезжает с десятка клиентов в одну точку.
Подробнее про серверную часть: https://github.com/bivlked/amneziawg-installer/blob/main/CASCADE.md
Соединение на мобиле встаёт колом по wifi на том же интернете, где ПК работает без проблем. Вообще весь серфинг перестает работать с амнезией до переподключения
Похоже, это телефон в фоне рубит туннель. На ПК такого нет, он не засыпает, а на телефоне гаснет экран, система режет фоновую работу VPN - связь отваливается и сама не поднимается, пока не переподключишься руками.
Зайди в настройки батареи, разреши приложению (amneziawg/Amnezia) работать без ограничений, и в конфиге поставь PersistentKeepalive = 25. Обычно после этого перестаёт отваливаться.
Если же рвётся не в простое, а сразу когда грузишь что-то тяжёлое - тогда дело не в этом, а в MTU, попробуй сбавить его в конфиге, например с 1280 до 1240.
1280 это и так уже минимально возможный мту, проблем с таким никогда не видел. По поводу отвалов можно пробовать "wg tunnel" и keepalive=5
Да, 1280 уже низ, тут согласен - я и давал его только как крайний случай, если рвётся под нагрузкой, а не в простое. А keepalive на телефоне крутится в userspace, и если система рубит приложение в фоне, он может вообще не уходить - хоть 5, хоть 25. Так что сперва разрешить фон в настройках батареи, а keepalive уже потом: 25 обычно хватает, 5 - если NAT злой или роутер капризный.
Свой AmneziaWG пару лет спустя: что ломается в быту и что я с этим делаю