عن المشروع
awgctrl-go هي مكتبة Go للتحكم في أجهزة WireGuard وAmneziaWG على Linux. وهي تفرع من WireGuard/wgctrl-go موسّع بدعم كامل لـ AmneziaWG v2، بما في ذلك قراءة وكتابة معاملات التعتيم AWG عبر netlink، والتحقق من صحة المعاملات، والتوليد التلقائي، ودعم خادم وضع المستخدم.
مقارنةً بـ wgctrl-go الأصلي، يضيف هذا التفرع القدرة على كتابة وقراءة معاملات AmneziaWG، وAdvancedSecurity على مستوى النظير، والتوليد التلقائي والتحقق من صحة معاملات AWG، ودعم خادم AWG في وضع المستخدم، وواجهة context.Context، ورحلة ذهاب وإياب واحدة عبر netlink.
دعم المنصات: يدعم Linux نواة WireGuard، ونواة AmneziaWG، وWireGuard في وضع المستخدم، وAmneziaWG في وضع المستخدم. يدعم FreeBSD وOpenBSD نواة WireGuard ووضع المستخدم فقط. يدعم Windows وضع المستخدم لـ WireGuard فقط. دعم AWG للنواة ووضع المستخدم مقتصر على Linux.
تشمل المتطلبات Go 1.26 أو أحدث، ونواة Linux مع وحدة AmneziaWG (modprobe amneziawg) أو خادم amneziawg-go في وضع المستخدم، وصلاحيات الجذر أو قدرة CAP_NET_ADMIN. يُذكر أن المكتبة تعمل مع أي وحدة نواة AmneziaWG v2، بما في ذلك الوحدة الأصلية؛ ويوصي ملف README باستخدام تفرع مُرقّع للإنتاج لأنه يتحقق من صحة معاملات AWG قبل تطبيقها، ويخدم عملاء 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)، وتمكين تعتيم AWG عبر استدعاء GenerateAmneziaParams وValidate قبل ConfigureDevice، وإضافة نظير مع تمكين AdvancedSecurity.
تغطي روابط التوثيق مرجع معاملات AWG (Jc، Jmin، Jmax، S1-S4، H1-H4، I1-I5 مع الحدود والقواعد والأمثلة)، والأمان المتقدم للنظير، وأمثلة عملية، ومرجع API الكامل على pkg.go.dev. المشروع مرخّص بموجب 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.