awg-manager

module
v0.0.0-...-a130917 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2026 License: MIT

README

AWG Manager

Веб-интерфейс для управления AmneziaWG VPN-туннелями на роутерах Keenetic. В тестовом режиме добавлена поддержка Sing-box (vless tcp, hysteria, trojan, etc)

Disclaimer: AWG Manager — независимый open-source проект, не аффилированный с Amnezia.org и Sing-box SagerNet и не являющийся их официальным продуктом.Програма находится в стадии вечной BETA версии.

awgm-showcase


Возможности

  • Управление туннелями AmneziaWG/Sing-box через браузер
  • Добавление, удаление и мониторинг peer-ов
  • Тест скорости с отображением в реальном времени
  • График трафика с периодами 1ч / 3ч / 24ч
  • Создание AWG серверов на роутере
  • DNS-маршрутизация через туннели с поддержкой системных WireGuard-интерфейсов NDMS и системы правил Sing-box
  • Просмотр статуса соединения в реальном времени
  • Совместимость с Keenetic c использованием Entware (OPKG)

Требования

  • Роутер Keenetic с поддержкой Entware, установленный компонент Wireguard

Установка (стабильная версия)

opkg update && opkg upgrade
opkg install curl
curl -sL https://raw.githubusercontent.com/hoaxisr/awg-manager/master/scripts/install.sh | sh

Если у вас недоступен GitHub или при выполнении скрипта установки он "зависает", можете воспользоваться зеркалом:

wget -qO- http://repo.hoaxisr.ru/install.sh | sh

После установки веб-интерфейс доступен по адресу роутера и обычно по 2222 порту.


Удаление

opkg remove awg-manager
rm -rf /opt/etc/awg-manager

О проекте

AWG Manager создан как независимый инструмент для управления туннелями AmneziaWG/Sing-box непосредственно на роутере, без CLI.

Проект не аффилирован с Amnezia.org, не разрабатывается и не поддерживается командой Amnezia. AmneziaWG используется как транспортный протокол. Проект не аффилирован с SagerNet, не разрабатывается и не поддерживается командой SagerNet. Sing-box используется как транспортный протокол.


Сообщество

Telegram: @awgmanager


Поддержать проект

Если проект оказался полезным, можно поддержать разработку донатом:

USDT (TRC20): TEpJh2p9j3fp6MigyqGvq1gC5D3CsxBeJw


Полезное

Установить и управлять AmneziaWG сервером - https://github.com/bivlked/amneziawg-installer

Другой вариант управления AmneziaWG сервером - https://github.com/pumbaX/awg-multi-script

Документация проекта - https://awgm.hoaxisr.ru/install/

Directories

Path Synopsis
cmd
awg-manager command
cmd/awg-manager/awg_outbounds_adapters.go
cmd/awg-manager/awg_outbounds_adapters.go
changelog-gen command
Command changelog-gen reads commit subjects (one per line) from stdin and prints a single Keep-a-Changelog block for the given version.
Command changelog-gen reads commit subjects (one per line) from stdin and prints a single Keep-a-Changelog block for the given version.
internal
accesspolicy
internal/accesspolicy/marks.go
internal/accesspolicy/marks.go
api
internal/api/awg_outbounds.go
internal/api/awg_outbounds.go
auth
Package auth provides authentication via Keenetic RCI API.
Package auth provides authentication via Keenetic RCI API.
cleanup
Package cleanup orchestrates complete removal of all awg-manager resources.
Package cleanup orchestrates complete removal of all awg-manager resources.
deviceproxy
internal/deviceproxy/ndms_adapter.go
internal/deviceproxy/ndms_adapter.go
icmpprobe
Package icmpprobe sends a single ICMP echo through a tunnel interface.
Package icmpprobe sends a single ICMP echo through a tunnel interface.
logbuf
Package logbuf provides a generic, time-bounded, size-capped in-memory log buffer with a background cleanup goroutine.
Package logbuf provides a generic, time-bounded, size-capped in-memory log buffer with a background cleanup goroutine.
monitoring
Package monitoring provides observability-only multi-target probes through running tunnels.
Package monitoring provides observability-only multi-target probes through running tunnels.
ndms
Package ndms is the NDMS RCI integration layer for awg-manager.
Package ndms is the NDMS RCI integration layer for awg-manager.
ndms/cache
Package cache provides generic primitives used by the NDMS Query Stores.
Package cache provides generic primitives used by the NDMS Query Stores.
ndms/command
Package command is the write side of the NDMS integration layer.
Package command is the write side of the NDMS integration layer.
ndms/events
Package events is the NDMS hook consumer — the push-side counterpart to the query-side Stores.
Package events is the NDMS hook consumer — the push-side counterpart to the query-side Stores.
ndms/metrics
Package metrics runs a single ticker that publishes per-interface WireGuard peer metrics over SSE.
Package metrics runs a single ticker that publishes per-interface WireGuard peer metrics over SSE.
ndms/payloads
Package payloads holds stateless command builders for NDMS RCI POST requests.
Package payloads holds stateless command builders for NDMS RCI POST requests.
ndms/query
Package query is the read side of the NDMS CQRS layer.
Package query is the read side of the NDMS CQRS layer.
ndms/transport
Package transport is the low-level NDMS HTTP client for awg-manager.
Package transport is the low-level NDMS HTTP client for awg-manager.
ndms/types
Package types holds the raw NDMS RCI response shapes — used by callers that need to parse JSON directly (e.g.
Package types holds the raw NDMS RCI response shapes — used by callers that need to parse JSON directly (e.g.
routing
internal/routing/catalog.go
internal/routing/catalog.go
signature
Package signature captures real QUIC and TLS handshake packets from a domain and returns them in AWG CPS <b 0x...> format for use as I1-I5 signature fields.
Package signature captures real QUIC and TLS handshake packets from a domain and returns them in AWG CPS <b 0x...> format for use as I1-I5 signature fields.
singbox
internal/singbox/config.go
internal/singbox/config.go
singbox/awgoutbounds
internal/singbox/awgoutbounds/catalog.go
internal/singbox/awgoutbounds/catalog.go
singbox/awgoutbounds/awgoutboundstest
internal/singbox/awgoutbounds/awgoutboundstest/mock.go
internal/singbox/awgoutbounds/awgoutboundstest/mock.go
singbox/configmerge
Package configmerge mirrors sing-box's behavior when started with `-C config.d/`: read all *.json files in the directory in lexicographic order, concatenate the well-known top-level arrays (inbounds, outbounds, dns.servers, dns.rules, route.rules, route.rule_set), and last-writer-wins everything else.
Package configmerge mirrors sing-box's behavior when started with `-C config.d/`: read all *.json files in the directory in lexicographic order, concatenate the well-known top-level arrays (inbounds, outbounds, dns.servers, dns.rules, route.rules, route.rule_set), and last-writer-wins everything else.
singbox/installer
Code generated by scripts/regen-embedded.sh and scripts/build-singbox.sh; DO NOT EDIT.
Code generated by scripts/regen-embedded.sh and scripts/build-singbox.sh; DO NOT EDIT.
singbox/orchestrator
Package orchestrator owns the sing-box config.d/ directory: it is the single writer for per-domain JSON files, the only place that toggles a domain on/off (via rename-marker), and the only place that triggers a sing-box reload.
Package orchestrator owns the sing-box config.d/ directory: it is the single writer for per-domain JSON files, the only place that toggles a domain on/off (via rename-marker), and the only place that triggers a sing-box reload.
singbox/vlink
Package vlink: Clash / mihomo YAML subscription support.
Package vlink: Clash / mihomo YAML subscription support.
storage
internal/storage/types_patch.go
internal/storage/types_patch.go
sys/env
Package env provides typed env-var helpers with safe defaults.
Package env provides typed env-var helpers with safe defaults.
sys/exec
Package exec provides command execution with timeout support.
Package exec provides command execution with timeout support.
sys/httpclient
Package httpclient provides a lightweight HTTP client with interface binding, proxy support, and precise timing metrics.
Package httpclient provides a lightweight HTTP client with interface binding, proxy support, and precise timing metrics.
sys/httpdownload
Package httpdownload provides shared utilities for streaming HTTP downloads with throttled progress reporting.
Package httpdownload provides shared utilities for streaming HTTP downloads with throttled progress reporting.
sys/kmod
Package kmod provides kernel module loading functionality.
Package kmod provides kernel module loading functionality.
sys/lock
Package lock provides mkdir-based file locking compatible with BusyBox/Entware.
Package lock provides mkdir-based file locking compatible with BusyBox/Entware.
sys/ndmsinfo
Package ndmsinfo provides cached NDMS system information backed by the query.SystemInfoStore.
Package ndmsinfo provides cached NDMS system information backed by the query.SystemInfoStore.
sys/osdetect
Package osdetect provides Keenetic OS version detection from cached NDMS info.
Package osdetect provides Keenetic OS version detection from cached NDMS info.
sys/perftrace
Package perftrace — временный helper для performance diagnostics.
Package perftrace — временный helper для performance diagnostics.
sys/semver
Package semver provides minimal semantic-version comparison for dotted-numeric version strings like "2.3.10" or "1.4".
Package semver provides minimal semantic-version comparison for dotted-numeric version strings like "2.3.10" or "1.4".
testing
Package testing provides tunnel testing operations.
Package testing provides tunnel testing operations.
traffic
Package traffic provides in-memory traffic rate history for tunnels.
Package traffic provides in-memory traffic rate history for tunnels.
tunnel
Package tunnel provides tunnel management with clean architecture.
Package tunnel provides tunnel management with clean architecture.
tunnel/backend
Package backend provides abstraction for tunnel process management.
Package backend provides abstraction for tunnel process management.
tunnel/config
Package config provides WireGuard configuration parsing and generation.
Package config provides WireGuard configuration parsing and generation.
tunnel/external
Package external provides functionality for working with external (unmanaged) tunnels.
Package external provides functionality for working with external (unmanaged) tunnels.
tunnel/firewall
Package firewall provides an interface for iptables firewall management.
Package firewall provides an interface for iptables firewall management.
tunnel/nwg
Package nwg provides OperatorNativeWG — manages tunnels via Keenetic's native WireGuard interface + awg_proxy.ko kernel module for obfuscation.
Package nwg provides OperatorNativeWG — manages tunnels via Keenetic's native WireGuard interface + awg_proxy.ko kernel module for obfuscation.
tunnel/ops
Package ops provides tunnel operations (create, start, stop, delete, recover).
Package ops provides tunnel operations (create, start, stop, delete, recover).
tunnel/service
internal/tunnel/service/refs.go
internal/tunnel/service/refs.go
tunnel/state
Package state provides the single source of truth for tunnel state.
Package state provides the single source of truth for tunnel state.
tunnel/sysinfo
Package sysinfo provides system-level information about tunnel interfaces.
Package sysinfo provides system-level information about tunnel interfaces.
tunnel/systemtunnel
Package systemtunnel provides read-only access to Keenetic native WireGuard tunnels with editable AWG obfuscation (ASC) parameters.
Package systemtunnel provides read-only access to Keenetic native WireGuard tunnels with editable AWG obfuscation (ASC) parameters.
tunnel/wan
Package wan provides a unified WAN interface state model.
Package wan provides a unified WAN interface state model.
tunnel/wg
Package wg provides an interface for WireGuard/AmneziaWG operations.
Package wg provides an interface for WireGuard/AmneziaWG operations.
tools
genpresets command
Command genpresets maintains internal/presets/defaults.json: it loads the committed catalog as base, refreshes DNS by decompiling each sing-box preset's .srs with a host sing-box, and appends new presets from the additions table.
Command genpresets maintains internal/presets/defaults.json: it loads the committed catalog as base, refreshes DNS by decompiling each sing-box preset's .srs with a host sing-box, and appends new presets from the additions table.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL