このプロジェクトについて
awgctrl-goは、Linux上のWireGuardおよびAmneziaWGデバイスを制御するためのGoライブラリです。WireGuard/wgctrl-goのフォークであり、AmneziaWG v2の完全なサポートを追加しています。netlink経由でのAWG難読化パラメータの読み書き、パラメータの検証、自動生成、ユーザースペースデーモンのサポートを含みます。
上流のwgctrl-goと比較して、このフォークはAmneziaWGパラメータの書き込みと読み取り、ピアレベルのAdvancedSecurity、AWGパラメータの自動生成と検証、ユーザースペースAWGデーモンのサポート、context.Context API、単一のnetlinkラウンドトリップを追加しています。
プラットフォームサポート:LinuxはカーネルWireGuard、カーネルAmneziaWG、ユーザースペースWireGuard、ユーザースペースAmneziaWGをサポートします。FreeBSDとOpenBSDはカーネルおよびユーザースペースのWireGuardのみをサポートします。WindowsはユーザースペースWireGuardのみをサポートします。AWGのカーネルおよびユーザースペースのサポートはLinux専用です。
要件にはGo 1.26以降、AmneziaWGモジュールを備えたLinuxカーネル(modprobe amneziawg)またはamneziawg-goユーザースペースデーモン、root権限またはCAP_NET_ADMINケイパビリティが含まれます。このライブラリは上流モジュールを含む任意のAmneziaWG v2カーネルモジュールで動作するとされています。READMEでは、適用前にAWGパラメータを検証し、1つのインターフェースでプレーンなWireGuard、AWG 1.0、AWG 2.0クライアントにサービスを提供し、多数のピアを持つnetlinkダンプを修正し、新しいLinuxカーネルおよびRHEL 10でビルドできるため、本番環境ではパッチを適用したフォークを推奨しています。そのモジュールのみが、Peer.AWGPeerFlagsKnown、FixedHeaders、NoS4などのフィールドを介して検出されたピアタイプを報告します。
インストールはgo get github.com/advanced-wg/awgctrl-goで行います。READMEには、デバイスの読み取り(インターフェース名、IsAmneziaフラグ、ピア、AdvancedSecurity、RX/TXカウンタの一覧表示)、GenerateAmneziaParamsとValidateをConfigureDeviceの前に呼び出すことによるAWG難読化の有効化、AdvancedSecurityを有効にしたピアの追加のクイックスタートスニペットが示されています。
ドキュメントリンクには、AWGパラメータリファレンス(Jc、Jmin、Jmax、S1-S4、H1-H4、I1-I5と制限、ルール、例)、ピアの高度なセキュリティ、実用的な例、pkg.go.devの完全なAPIリファレンスが含まれます。このプロジェクトはMITライセンスで、著作権はMatt Layher(2018-2022)およびAdvanced-WG、V. Bantserov(2025)に帰属します。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.