Repository navigation
v3.0.0
v3.0.0 — быстрее и экономнее, стек proxy_panel_by_dubr1k, AmneziaWG через WARP
English · Русский
Дата: 2026-10-20. Предыдущий выпуск: v2.2.1.
Русский
Что нового
-
Панель и менеджеры почти не нагружают сервер в простое. На сервере с двумя vCPU и всеми пятью протоколами службы Proxy Control в простое занимали около 23% одного ядра, теперь около 6%: панель — меньше 1% вместо 5%, менеджер Mieru — 1,5% вместо 7%. Панель больше не загружает заново набор корневых сертификатов на каждый опрос менеджеров, менеджер Mieru не пересчитывает контрольную сумму бинарника mita на каждый запрос, монитор читает суточную базу для всплесков раз в минуту, а не каждую секунду. Проверки здоровья контейнеров стали в несколько раз дешевле: в образах теперь есть скомпилированный байткод Python.
-
Мост MTProxy переписан на Go. Через мост
xray-router-ingressидёт весь трафик MTProxy, пущенный через Xray-router. Теперь это маленький статический Go-бинарник вместо процесса Python: байты между соединениями перекладывает ядро, мост занимает около 3 МБ памяти вместо 27 МБ, а его проверка здоровья стоит миллисекунду. Протокол и поведение прежние. -
Стек называется
proxy_panel_by_dubr1k. В Docker, Portainer иdocker compose lsпроект Proxy Control больше не называетсяmtproxy: проект, сеть, образы и тома носят имяproxy_panel_by_dubr1k. Имена контейнеров (proxy-control-*) прежние. Обновление переводит установленный сервер само, в конце, с остановкой служб меньше чем на минуту; прежние тома остаются как точка отката. -
AmneziaWG можно пустить через WARP. В «Маршрутизации» у AmneziaWG появилась своя вкладка: весь трафик туннелей напрямую или через WARP. Через WARP идёт и TCP, и UDP (DNS, QUIC, звонки): менеджер AmneziaWG поднимает собственный WireGuard-туннель к Cloudflare со своей учётной записью WARP и регистрирует её сам при первом применении. Если туннель WARP пропадает, трафик клиентов отбрасывается, а не уходит с IP сервера. На экране AmneziaWG карточка «Выход в интернет» показывает, что работает сейчас. Правил по сайтам у AmneziaWG нет: туннель видит пакеты, а не имена. Узлу нужен исходящий доступ к
api.cloudflareclient.com:443и к WARP по UDP 2408. -
AmneziaWG через Xray-router — по желанию. На узле с Xray-router AmneziaWG можно подключить к роутеру: тогда работают правила по сайтам (их узнаёт сниффер), спискам, адресам и портам, свои выходы и другие узлы, а WARP идёт через WireGuard-выход роутера — и TCP, и UDP. Пока роутер не работает, трафик клиентов отбрасывается. Полос для отдельных клиентов нет.
Остальное в этом выпуске — исправления.
- Ссылка
tt://открывается в официальных приложениях TrustTunnel. Панель записывала ссылку в версии 2 формата, а официальный клиент (TrustTunnelClient 1.1.11 и приложения AdGuard TrustTunnel на его основе) понимает только версию 1 и отвергал ссылку целиком. Теперь ссылка в окне доступа, в QR-коде и в подписке — версии 1. Подписка Clash и файл TOML работали и раньше. Человеку, у которого ссылка не импортировалась, достаточно открыть страницу подписки или окно доступа ещё раз и взять новую ссылку: пароль не меняется. - На странице подписки только проверенное. Для TrustTunnel перечислены приложения, проверенные на живом сервере: AdGuard TrustTunnel (ссылка или QR), TrustTunnel CLI (файл TOML) и приложения на ядре mihomo (подписка Clash). Вместо таблицы совместимости из десяти колонок — список приложений, которые сами обновляют подписку, по каждому протоколу этой подписки. Строка политики Surge со страницы убрана; данные для ручной настройки остались.
- Страница подписки не вылезает за экран. Длинные значения переносятся внутри ячеек, телефону больше не приходится уменьшать всю страницу.
- Удаление, отключение и новый ключ прямо в списке AmneziaWG и TrustTunnel. Как у Mieru и NaiveProxy, в строке доступа есть «Отключить» («Включить»), «Новый ключ» (у TrustTunnel — «Новый пароль») и «Удалить», с подтверждением. Список обновляется сразу, без перезагрузки страницы; то же — после изменения в окне доступа, открытом с этих страниц.
- Матрица совместимости. TrustTunnel в подписке Clash проверен на ядре mihomo v1.19.32. Hiddify для TrustTunnel переведён в «не проверено»: исходящее проверялось только на ядре, собранном из исходников, в выпусках приложения его нет.
Что важно знать
- API, конфигурация и TOML установщика совместимы, настраивать ничего не нужно. Старший номер версии — из-за переименования стека: всё, что обращалось к проекту
mtproxy, томуmtproxy_panel-dataили образамmtproxy-*(свои скрипты резервного копирования, Portainer), после обновления должно смотреть наproxy_panel_by_dubr1k. - Обновление через
install-release.sh --updateпереводит стек в конце: помечает работающие образы новыми именами, копирует тома с данными (база панели, конфигурация Telemt) и поднимает те же службы под новым именем. Службы стоят меньше минуты: копирование занимает секунды, остальное — запуск служб и их проверки здоровья. Прежние томаmtproxy_*сохраняются; скрипт печатает команду, которой их удалить, когда откат больше не нужен. Обновление с экрана панели оставляет сервер в старом проекте до следующегоinstall-release.sh --update— так тоже всё работает. - Обновляются все образы; база панели получает миграцию 26 (политики маршрутизации принимают AmneziaWG). Xray-router нужен доступ к
/dev/net/tun. Мост MTProxy собирается в образе роутера закреплённым образом Go (golang:1.25.12): сервер, где менеджер AmneziaWG ни разу не собирался, один раз скачает его (около 300 МБ). - Установщик: проверка моста внутри контейнера вызывает Go-бинарник, проверки своих контейнеров и томов видят оба имени проекта, в отчёт добавлена заметка о выходе AmneziaWG через WARP. Вопросы мастера и конфигурация не менялись.
- Подробнее: обновление до 3.0.
Новая установка
Используйте Ubuntu 24.04 LTS x86-64 и обычного пользователя с sudo, не вход под root. Подготовьте DNS-имена и следуйте руководству по установке и справочнику установщика.
В пустом рабочем каталоге:
curl -fsSLO https://github.com/dubr1k/proxy-control/releases/download/v3.0.0/install-release.sh
curl -fsSLO https://github.com/dubr1k/proxy-control/releases/download/v3.0.0/install-release.sh.sha256
sha256sum --check install-release.sh.sha256
bash install-release.shПродолжайте только после успешной проверки контрольной суммы.
Обновление
Сделайте резервную копию, скачайте и проверьте те же файлы, затем выполните:
bash install-release.sh --updateПорядок обновления флота прежний: сначала узлы, центральная панель последней. Тома Docker, базу и секреты при обновлении не удаляйте. Подробнее: обновление.
English
What's new
-
The panel and the managers hardly load the server when idle. On a two-vCPU server with all five protocols, Proxy Control's services used about 23% of one core when idle, now about 6%: the panel under 1% instead of 5%, the Mieru manager 1.5% instead of 7%. The panel no longer reloads the root certificate bundle on every poll of a manager, the Mieru manager no longer re-hashes the mita binary on every request, and the monitor reads the day's baseline for spikes once a minute instead of every second. Container health checks became several times cheaper: the images now carry compiled Python bytecode.
-
The MTProxy bridge is rewritten in Go. All MTProxy traffic sent through the Xray-router crosses the
xray-router-ingressbridge. It is now a small static Go binary instead of a Python process: the kernel moves the bytes between the connections, the bridge takes about 3 MB of memory instead of 27 MB, and its health check costs a millisecond. The protocol and the behaviour are unchanged. -
The stack is called
proxy_panel_by_dubr1k. In Docker, Portainer anddocker compose lsthe Proxy Control project is no longermtproxy: the project, the network, the images and the volumes are namedproxy_panel_by_dubr1k. Container names (proxy-control-*) stay. The update moves an installed server by itself, at its end, with the services stopped for under a minute; the previous volumes stay as the way back. -
AmneziaWG can go through WARP. «Routing» has an AmneziaWG tab: all tunnel traffic directly or through WARP. Both TCP and UDP (DNS, QUIC, calls) go through WARP: the AmneziaWG manager brings up its own WireGuard tunnel to Cloudflare with a WARP account of its own, registered by itself on the first apply. If the WARP tunnel drops, client traffic is dropped rather than sent from the server's IP. On the AmneziaWG screen the «Internet exit» card shows what runs now. AmneziaWG has no per-site rules: the tunnel sees packets, not names. The node needs outbound access to
api.cloudflareclient.com:443and to WARP over UDP 2408. -
AmneziaWG through the Xray-router, optional. On a node with the Xray-router AmneziaWG can be attached to it: per-site rules (recognised by the sniffer), lists, addresses and ports, custom exits and other nodes then work, and WARP goes through the router's WireGuard outbound — TCP and UDP. While the router is down, client traffic is dropped. There are no per-client lanes.
The rest of this release is fixes.
- The
tt://link opens in the official TrustTunnel apps. The panel wrote the link in version 2 of the format, while the official client (TrustTunnelClient 1.1.11 and the AdGuard TrustTunnel apps built on it) reads only version 1 and refused the whole link. The link in the access window, its QR code and the subscription are now version 1. The Clash subscription and the TOML file worked before. Whoever could not import the link only has to open the subscription page or the access window again and take the new link: the password does not change. - The subscription page shows only what was verified. For TrustTunnel it lists the apps checked against a live server: AdGuard TrustTunnel (link or QR), the TrustTunnel CLI (TOML file) and mihomo-core apps (Clash subscription). The ten-column compatibility table is replaced by a list, per protocol of this subscription, of the apps that refresh the subscription by themselves. The Surge policy line is gone from the page; the details for manual setup stay.
- The subscription page fits the screen. Long values wrap inside their cells; a phone no longer has to zoom the whole page out.
- Delete, disable and a new key right in the AmneziaWG and TrustTunnel lists. As with Mieru and NaiveProxy, an access row has «Отключить» («Включить»), «Новый ключ» (TrustTunnel: «Новый пароль») and «Удалить», each after a confirmation. The list refreshes at once, without a page reload; so does a change made in the access window opened from these pages.
- Compatibility matrix. TrustTunnel in the Clash subscription is verified with the mihomo core v1.19.32. Hiddify's TrustTunnel cell is now «unproven»: the outbound was only checked on a core built from source, and no app release has it.
Good to know
- The API, the configuration and the installer's TOML stay compatible; there is nothing to configure. The major version is for the stack rename: anything that addressed the
mtproxyproject, themtproxy_panel-datavolume or themtproxy-*images (your own backup scripts, Portainer) has to look atproxy_panel_by_dubr1kafter the update. - An update through
install-release.sh --updatemoves the stack at its end: it tags the running images with the new names, copies the data volumes (the panel database, Telemt's configuration) and starts the same services under the new name. The services are down for under a minute: the copy takes seconds, the rest is the services starting and passing their health checks. The previousmtproxy_*volumes are kept; the script prints the command that removes them once you no longer need a rollback. An update from the panel's screen leaves the server in the old project until the nextinstall-release.sh --update— that works too. - Every image is rebuilt; the panel database gets migration 26 (routing policies accept AmneziaWG). The Xray-router needs access to
/dev/net/tun. The MTProxy bridge is built in the router's image with a pinned Go image (golang:1.25.12): a server that never built the AmneziaWG manager downloads it once (about 300 MB). - Installer: the bridge check inside the container runs the Go binary, the checks for its own containers and volumes see both project names, and the report gains a note on AmneziaWG's WARP exit. The wizard's questions and the configuration did not change.
- More: upgrading to 3.0.
Fresh installation
Use Ubuntu 24.04 LTS x86-64 and a regular user with sudo, not a root login. Prepare your DNS names and follow the installation guide and installer reference.
In an empty working directory:
curl -fsSLO https://github.com/dubr1k/proxy-control/releases/download/v3.0.0/install-release.sh
curl -fsSLO https://github.com/dubr1k/proxy-control/releases/download/v3.0.0/install-release.sh.sha256
sha256sum --check install-release.sh.sha256
bash install-release.shContinue only after checksum verification succeeds.
Upgrading
Make a backup, download and verify the same files, then run:
bash install-release.sh --updateThe fleet update order is unchanged: nodes first, central panel last. Do not delete Docker volumes, the database or secrets as part of an update. More: upgrading.