
WS4W هو تطبيق سطح المكتب يتيح تشغيل وإدارة نقطة نهاية خادم Wireguard على Windows.
مستوحى من منشور هنري تشانغ ، كيفية إعداد خادم VPN على Wireguard على Windows ، كان هدفي هو إنشاء تطبيق آلي وتبسيط العديد من الخطوات المعقدة. على الرغم من عدم وجود حل توصيل وتشغيل ، فإن الفكرة هي أن تكون قادرًا على تنفيذ كل خطوة من الخطوات المسبقة ، أو واحدة تلو الأخرى ، دون تشغيل أي نصوص ، أو تعديل السجل ، أو إدخال لوحة التحكم.
أحدث إصدار متاح هنا. قم بتنزيل المثبت وتشغيله.
ملاحظة : سيطلب التطبيق تشغيل كمسؤول. نظرًا لجميع نوبات السجل ، وخدمات Windows ، ومكالمات wg.exe ، وما إلى ذلك ، من الأسهل تشغيل التطبيق بالكامل.
قبل تقديم مثبت ، تم توزيع WS4W كتطبيق محمول. لا تحتوي الإصدارات المحمولة (1.5.2 وما قبلها) على مسار ترقية تلقائي لإصدار التثبيت. للترقية ، ما عليك سوى حذف الإصدار المحمول الذي تم تنزيله وتنزيل المثبت. لن تضيع إعدادات التكوين.
فيما يلي المهام التي يمكن تنفيذها تلقائيًا باستخدام هذا التطبيق.

تقوم هذه الخطوة بتنزيل وتشغيل أحدث إصدار من Wireguard لنظام التشغيل Windows من https://download.wireguard.com/windows-client/wireguard-installer.exe. بمجرد التثبيت ، يمكن إلغاء تثبيته مباشرة من WS4W أيضًا.

هنا يمكنك تكوين نقطة نهاية الخادم. انظر وثائق Wireguard لمعنى كل من هذه الحقول. يتم إنشاء المفتاح الخاص والمفتاح العام عن طريق استدعاء wg genkey و wg pubkey [private key] على التوالي. (يمكنك توريد مفتاحك الخاص اختياريا.)
ملاحظة : من المهم ألا يتعارض نطاق شبكة الخادم مع عنوان IP لنظام المضيف أو نطاق شبكة LAN.
بالإضافة إلى إنشاء/udpating ملف التكوين لنقطة نهاية الخادم ، سيقوم تحرير تكوين الخادم أيضًا بتحديث قيمة سجل ScopeAddress (تحت HKLMSYSTEMCurrentControlSetServicesSharedAccessParameters ). هذا هو عنوان IP الذي يتم استخدامه لمحول WireGuard عند استخدام ميزة مشاركة الإنترنت (الموضحة هنا). وبالتالي ، فإن خاصية العنوان لتكوين الخادم تعمل على تحديد العناوين المسموح بها للعملاء ، وكذلك IP الذي سيعينه Windows إلى محول WireGuard عند إجراء مشاركة الإنترنت. لاحظ أن عنوان IP يتم الاستيلاء عليه من ScopeAddress في الوقت الذي يتم فيه تنفيذ مشاركة الإنترنت لأول مرة. هذا يعني أنه إذا تم تغيير عنوان IP الخاص بالخادم في التكوين (وبالتالي يتم تحديث قيمة تسجيل ScopeAddress ) ، فلن تعكس واجهة WireGuard بدقة IP الخادم المطلوب. لذلك ، سوف يطالب WS4W بإعادة مشاركة الإنترنت. إذا تم إلغاؤها ، فسيتم تعطيل مشاركة الإنترنت وسيتم إعادة تمكينها يدويًا.
هام : يجب عليك تكوين إعادة توجيه المنفذ على جهاز التوجيه الخاص بك. إعادة توجيه جميع حركة مرور UDP المخصصة لمنفذ نقطة نهاية الخادم الخاص بك (افتراضي
51820) إلى IP LAN الخاص بالخادم الخاص بك. كل جهاز توجيه مختلف ، لذلك من الصعب إعطاء إرشادات محددة هنا. على سبيل المثال ، إليك ما ستبدو عليه قاعدة إعادة توجيه المنفذ على جهاز توجيه بوابة Verizon.
يجب عليك تعيين خاصية نقطة النهاية على عنوان IPv4 أو IPv6 أو عنوان المجال العام ، يليه أي منفذ قمت بإعادة توجيهه. سيحاول زر Detect Public IP Address اكتشاف عنوانك العام تلقائيًا باستخدام واجهة برمجة تطبيقات ipify.org. ومع ذلك ، إذا أمكن ، يوصى باستخدام اسم مجال مع DDNs. وبهذه الطريقة ، إذا تغيرت عنوان IP العام الخاص بك ، فسيتمكن عملائك من العثور على نقطة نهاية الخادم الخاصة بك دون إعادة تشكيل.

هنا يمكنك تكوين العميل (العميل). يمكن إدخال العنوان يدويًا أو محسوبًا بناءً على نطاق شبكة الخادم. على سبيل المثال ، إذا كانت شبكة الخادم 10.253.0.0/24 ، يمكن لتكوين العميل تحديد أن 10.253.0.2 هو عنوان صالح. لاحظ أن العنوان الأول في النطاق (في هذا المثال ، 10.253.0.1 ) محجوز للخادم. DNS اختياري ، ولكن الموصى بها. يمكنك إضافة مجالات بحث DNS (المعروفة أيضًا باسم لاحقة DNS ، اقرأ المزيد). أخيرًا ، يتم إنشاء المفتاح الخاص والمفتاح العام ومفتاح مسبق باستخدام wg genkey و wg pubkey [private key] و wg genpsk . (يمكنك تحديد مفتاحك الخاص. مفاتيح مسبقات مختارة ، وإنشاء فريد لكل عميل ، ومشاركة مع تكوين الخادم. انظر #34 لمزيد من المعلومات.)
نظرًا لقليلًا من Quirk في Wireguard ، إذا كنت تريد إزالة مفتاح مسبق العميل ومزامنة تكوين الخادم ، فلا يزال من المتوقع أن يتوقع العميل الاتصال بـ PSK. لذلك ، لا يسمح لك WS4W بمسح حقل مفتاح مسبق من العملاء. بدلاً من ذلك ، حذف عميل وإعادة إنشاء عميل لإزالة PSK.
بمجرد تكوينه ، من السهل استيراد التكوين إلى تطبيق العميل الذي يختاره عبر رمز QR أو عن طريق تصدير ملف .conf .

للأمان ، قد لا ترغب في الحفاظ على المفاتيح الخاصة للعملاء على الخادم. في هذه الحالة ، يمكنك مسح حقل المفتاح الخاص قبل حفظ تكوين العميل. ومع ذلك ، هناك شيئان يجب وضعهما في الاعتبار.
بمجرد تكوين الخادم والعميل (العميل) ، يمكنك تثبيت خدمة النفق ، والتي تنشئ واجهة شبكة جديدة لحراسة الأسلاك باستخدام أمر wireguard /installtunnelservice . بعد التثبيت ، يمكن أيضًا إزالة النفق مباشرة داخل WS4W. هذا يستخدم أمر wireguard /uninstalltunnelservice .
بعد الانتهاء من هذه الخطوة ، يجب أن يكون عملاء WireGuard قادرين على الوصول إلى أبعد من أداء مصافحة ناجحة مع الخادم.
ملاحظة: إذا تم تحرير تكوين الخادم بعد تثبيت خدمة النفق ، فسيتم تحديث خدمة النفق تلقائيًا عبر الأمر
wg syncconf(إذا كان تكوين الخادم المحفوظ حديثًا صالحًا). وينطبق هذا أيضًا على تكوينات العميل ، التحديثات التي غالبًا ما تتسبب في تحديث تكوين الخادم (على سبيل المثال ، إذا تمت إضافة عميل جديد ، يجب أن يكون تكوين الخادم على دراية بهذا النظير الجديد).
حتى بعد تثبيت خدمة النفق ، قد يتم حظر بعض البروتوكولات. يوصى بتغيير ملف تعريف الشبكة إلى Private ، مما يخفف من قيود Windows على الشبكة.
تنشئ هذه الخطوة أيضًا مهمة Windows لجعل الشبكة خاصة تلقائيًا عند التمهيد. يمكنك تعطيل المهمة عبر المنسدلة.
ملاحظة : في نظام ينشأ فيه اتصال الإنترنت المشترك من شبكة المجال ، ليست هذه الخطوة ضرورية ، حيث أن واجهات Wireguard تلتقط ملف تعريف شبكة المجال المشتركة.
الخطوة الأخيرة هي السماح بتوجيه الطلبات التي يتم تقديمها عبر واجهة Wireguard إلى شبكتك الخاصة أو الإنترنت. للقيام بذلك ، يجب مشاركة اتصال محول الشبكة "الحقيقي" على جهاز Windows باستخدام محول Dirtual Wireguard. يمكن القيام بذلك بإحدى طريقتين.
الخيار الأول متاح فقط على بعض الأنظمة (انظر المزيد أدناه). يمكن استخدام الخيارات الثانية حسب الضرورة ، ولكن تحتوي على بعض التحذيرات (مثل ، إذا تمت مشاركة اتصال الإنترنت مع محول Wireguard ، فلا يمكن مشاركته مع أي محول آخر ؛ انظر #18). كانت هناك أيضًا العديد من المشكلات التي تم الإبلاغ عنها مع مشاركة الإنترنت ، لذلك يجب استخدام توجيه NAT إذا كان ذلك متاحًا.
هذه الخيارات حصرية بشكل متبادل.
يمكنك هنا إنشاء قاعدة توجيه NAT على واجهة WireGuard للسماح لها بالتفاعل مع شبكتك الخاصة/العامة. على وجه التحديد ، يتم استدعاء الأوامر التالية.
New-NetIPAddress على محول Wireguard لتعيين IP ثابت في نطاق خاصية عنوان تكوين الخادم.New-NetNat لإنشاء قاعدة NAT جديدة على محول Wireguard.New-NetIPAddress على التمهيد.يتطلب توجيه NAT على الأقل Windows 10 ، ولن يظهر خيار تمكينه حتى في التطبيق على الإصدارات الأقدم من Windows. ومع ذلك ، حتى مع Windows 10 ، لا يعمل توجيه NAT دائمًا. في بعض الأحيان ، يتطلب تمكين Hyper-V ، وهو ما سيطالب التطبيق به ، ولكن هذا يتطلب أيضًا إصدارًا أعلى (أي ، وليس المنزل) من Windows. في النهاية ، إذا كان التطبيق غير قادر على تمكين توجيه NAT ، فسوف يوصي باستخدام مشاركة اتصال الإنترنت بدلاً من ذلك (أدناه). انظر #30 للحصول على مناقشة كاملة حول دعم توجيه NAT.

إذا لم يكن NAT Routing متاحًا ، فيمكنك استخدام مشاركة الإنترنت لتوفير اتصال الشبكة لواجهة WireGuard. عند تكوين هذا الخيار ، يمكنك تحديد أي من محولات الشبكة الخاصة بك للمشاركة. لاحظ أنه من المحتمل أن يعمل فقط للمحولات التي يتم Connected حالتها ، وستكون فقط مفيدة للمحولات التي توفر الوصول إلى الإنترنت أو الشبكة المحلية. عند اختيار المحول للمشاركة ، تحوم عبر عنصر القائمة للحصول على مزيد من التفاصيل ، بما في ذلك عنوان IP المعين للمحول ، لتحديد ما إذا كان هذا هو العنوان الذي تريد مشاركته.
ملاحظة: عند تنفيذ مشاركة الإنترنت ، يتم تعيين محول WireGuard IP من قيمة تسجيل
ScopeAddress(تحتHKLMSYSTEMCurrentControlSetServicesSharedAccessParameters). يتم تعيين هذه القيمة تلقائيًا عند تحديث خاصية العنوان لتكوين الخادم. انظر المزيد هنا.
هناك مشكلات في Windows التي تتسبب في تعطيل مشاركة الإنترنت بعد إعادة التشغيل. إذا كان المقصود من خادم Wireguard أن يتم تركه دون مراقبة ، فمن المستحسن تمكين مشاركة الإنترنت المستمرة بحيث لا يلزم التفاعل بعد إعادة التشغيل.
عند تمكين هذه الميزة ، يتم تنفيذ إجراءين في Windows:
Internet Connection Sharing من Manual إلى Automatic .EnableRebootPersistConnection regratry في HKLMSoftwareMicrosoftWindowsCurrentVersionSharedAccess على 1 (يتم إنشاؤها إذا لم يتم العثور عليها).حتى مع هذه الحلول ، يمكن أن تصبح مشاركة الإنترنت معطلة بعد إعادة التشغيل. لذلك ، يتم تنفيذ إجراء واحد آخر. يتم إنشاء مهمة مجدولة تعطيل وتودين مشاركة الإنترنت باستخدام WS4W CLI عند تمهيد النظام. يجب أن يكون هذا كافيًا لضمان تمكين المشاركة.

بمجرد تثبيت النفق ، قد يتم عرض حالة واجهة Wireguard. يتم تحقيق ذلك من خلال أمر wg show . سيتم تحديثه باستمرار طالما تم فحص Update Live .
تعيين تأخير مهمة التمهيد
يسمح هذا الإعداد بتكوين تأخير لمهام التمهيد. يمكن أن يكون هذا مفيدًا للمهام التي تعتمد على المحولات التي تكون بطيئة في التحميل. لاحظ أنه يجب تعطيل المهام وإعادة تمكينها بعد تغيير هذه القيمة.

يوجد أيضًا CLI مجمعة في التنزيل المحمول يسمى ws4w.exe والذي يمكن استدعاؤه من محطة أو استدعاء من نص. بالإضافة إلى الرسائل المكتوبة إلى Standard Out ، ستقوم CLI أيضًا بتعيين رمز الخروج بناءً على نجاح تنفيذ الأمر المحدد. في PowerShell ، على سبيل المثال ، يمكن طباعة رمز الخروج باستخدام echo $lastexitcode .
ملاحظة : يجب أيضًا تشغيل CLI كمسؤول لنفس الأسباب الواردة أعلاه.
يستخدم CLI الأفعال ، أو الأوامر ذات المستوى الأعلى ، لكل منها مجموعة من الخيارات الخاصة بها. يمكنك تشغيل ws4w.exe --help للحصول على قائمة بجميع الأفعال أو ws4w.exe verb --help لرؤية قائمة الخيارات لفعل معين.
ws4w.exe restartinternetsharing [--network <NETWORK_TO_SHARE>]--network لتحديد الشبكة WS4W التي يجب مشاركتها.--network ).--network لتحديده.--network ، وإلا لا توجد طريقة لمعرفة الشبكة التي يجب مشاركتها.يتم استخدام هذا الأمر بواسطة المهمة المجدولة التي يتم إنشاؤها عند تمكين مشاركة الإنترنت المستمرة.
ws4w.exe setpathPATH النظام.يتم استخدام هذا الأمر بواسطة المثبت عند تحديد خيار "إضافة CLI إلى PATH".
ws4w.exe setnetipaddress --serverdatapath <PATH_TO_SERVER_CONFIG>Set-NetIPAddress على واجهة Wireguard ، باستخدام عنوان الشبكة كما هو محدد في ملف تكوين خادم Wireguard المحدد.يتم استخدام هذا الأمر بواسطة المهمة المجدولة التي يتم إنشاؤها عند تمكين توجيه NAT.
ws4w.exe privatenetworkيتم استخدام هذا الأمر بواسطة مهمة Windows التي يتم إنشاؤها عند تمكين الشبكة الخاصة.
أولاً ، يوصى باستخدام NAT Routing إذا كان ذلك متاحًا.
ومع ذلك ، إذا واجهت رسالة الخطأ التالية عند تمكين مشاركة الإنترنت ، فيرجى تنفيذ الخطوات اليدوية التالية.

wg_server .ملاحظة: غالبًا ما يتم تشغيل هذه المشكلة بعد إنشاء مفتاح افتراضي جديد لـ VM. يجب أن تكون هناك حاجة إلى حل الحل اليدوي مرة واحدة فقط بعد ذلك ولا يؤثر على المفتاح الافتراضي.
تم اختبار WS4W ومن المعروف أنه يعمل على Windows Server (2012 R2 و Gewer) و Windows Desktop (10 وأحدث).
Wireguard هي علامة تجارية مسجلة لجاسون A. Donenfeld.
أيقونة صنعها Freepik من www.flaticon.com.