Sobre o projeto
awgctrl-go é uma biblioteca Go para controlar dispositivos WireGuard e AmneziaWG no Linux. É uma bifurcação do WireGuard/wgctrl-go estendida com suporte completo ao AmneziaWG v2, incluindo leitura e escrita de parâmetros de ofuscação AWG via netlink, validação de parâmetros, geração automática e suporte a daemon em espaço de usuário.
Em comparação com o wgctrl-go original, a bifurcação adiciona a capacidade de escrever e ler parâmetros do AmneziaWG, AdvancedSecurity no nível do peer, geração e validação automáticas de parâmetros AWG, suporte ao daemon AWG em espaço de usuário, uma API context.Context e uma única ida e volta netlink.
Suporte de plataforma: o Linux suporta WireGuard em kernel, AmneziaWG em kernel, WireGuard em espaço de usuário e AmneziaWG em espaço de usuário. FreeBSD e OpenBSD suportam apenas WireGuard em kernel e em espaço de usuário. Windows suporta apenas WireGuard em espaço de usuário. O suporte a AWG em kernel e em espaço de usuário é exclusivo do Linux.
Os requisitos incluem Go 1.26 ou posterior, um kernel Linux com o módulo AmneziaWG (modprobe amneziawg) ou o daemon em espaço de usuário amneziawg-go, e privilégios de root ou a capacidade CAP_NET_ADMIN. A biblioteca é declarada como compatível com qualquer módulo de kernel AmneziaWG v2, incluindo o módulo original; o README recomenda uma bifurcação corrigida para produção porque ela valida os parâmetros AWG antes de aplicá-los, atende clientes WireGuard simples, AWG 1.0 e AWG 2.0 em uma única interface, corrige dumps netlink com muitos peers e compila em kernels Linux mais recentes e no RHEL 10. Apenas esse módulo informa o tipo de peer detectado por meio de campos como Peer.AWGPeerFlagsKnown, FixedHeaders e NoS4.
A instalação é feita via go get github.com/advanced-wg/awgctrl-go. O README mostra trechos de início rápido para ler um dispositivo (listando nome da interface, flag IsAmnezia, peers, AdvancedSecurity, contadores RX/TX), habilitar a ofuscação AWG chamando GenerateAmneziaParams e Validate antes de ConfigureDevice, e adicionar um peer com AdvancedSecurity habilitado.
Os links de documentação abrangem uma referência de parâmetros AWG (Jc, Jmin, Jmax, S1-S4, H1-H4, I1-I5 com limites, regras e exemplos), segurança avançada de peer, exemplos práticos e a referência completa da API em pkg.go.dev. O projeto é licenciado sob MIT, com direitos autorais atribuídos a Matt Layher (2018-2022) e Advanced-WG, V. Bantserov (2025).
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.