هل يمكنني إعادة التعبير عن حبي لـ [WireGuard] وآمل أن يتم دمجه قريبًا؟ ربما لا تكون الشفرة مثالية ، لكني قمت بتخطيها ، وبالمقارنة مع الرعب الموجود في OpenVPN و IPSec ، فهي عمل فني.
Linus Torvalds ، على قائمة Linux Kernel البريدية
أنا متأكد من أن الكثيرين قد سمعوا بالفعل عن Wireguard. حتى أن البعض شعر أنها تعيش. لقد أحببته تمامًا في الإنتاج ، من حيث الأداء وسهولة التكوين. نعم ، لا يوجد مليون تكوين غامض لجميع المناسبات مثل OpenVPN و XFRM + StrongSwan في IPSEC VPN. إنه بسيط وموجز في كل من التعليمات البرمجية والتكوينات. لن تصبح جريئة وخرقاء بعد. باختصار ، هذه نسخة إيجابية من سيناريو "احرق الإرث واكتب كل شيء بشكل صحيح".
قررت عدم كتابة دليل آخر "كيف قمت بتثبيت Wireguard" ، ولكن لمشاركة بعض الأدوات المساعدة المفيدة. بعضها مزود بواجهة مستخدم رسومية ناجحة جدًا حسب ذوقي ، وهي مناسبة للخدمات مع العديد من المستخدمين. سنقوم بتحليل استخدام VPN هذا للاتصال بين العقد في مجموعات Kubernetes المختلفة ، والعديد من واجهات المستخدم الرسومية على الويب للإنشاء وعدد من الموارد المفيدة.
لماذا هو مطلوب على الإطلاق؟
السؤال الرئيسي. من أروع الأشياء فيه أنه منتج للغاية. في معظم الحالات ، يكون هناك زمن انتقال أقل وإنتاجية أعلى مع حمل متساوٍ لوحدة المعالجة المركزية. إذا كنت تدفع مقابل الموارد التي تم إنفاقها أو تخطط لاستئجار أجهزة افتراضية مع مراعاة ذروة الأحمال ، فإن هذا النوع من VPN سيوفر لك المال أيضًا. أعتقد أنه ليس من الضروري شرح سبب سوء توجيه حركة المرور عبر الشبكات المفتوحة بين العقد الفردية.
المصدر: www.wireguard.com/performance
علاوة على ذلك ، تجدر الإشارة إلى أنه تم تضمينه في النواة منذ Linux 5.6 ، ومنذ ربيع هذا العام تم تضمينه أيضًا في الفرع الرئيسي لـ Android kernel ، مما يمنحنا كفاءة طاقة ممتازة على الهواتف المحمولة ... على الرغم من أنني يجب أن أقول إنه لم يجهد بطارية الهاتف بشكل خاص من قبل.
كيلو - واقي سلكي لـ Kubernetes
في كثير من الأحيان ، تواجه الشركات الأكبر من المتوسط مواقف تحتاج فيها إلى استخدام العديد من السحب المختلفة. الأسباب مختلفة - التسامح مع الخطأ ، التواجد الجيد في المنطقة والأصوات المنخفضة. في بعض الأحيان تكون الأسعار لمنتجات معينة. على سبيل المثال ، يمكنك تشغيل الواجهة الأمامية والمنطق الرئيسي على الخوادم الخاصة بك ، والاستعانة بمصادر خارجية للمهام المتعطشة لوحدة معالجة الرسومات إلى مثيلات AWS.
كيف تعمل؟ يتطلب كيلو وحدة نواة Wireguard على جميع العقد. إذا كنت تستخدم نواة أحدث من 5.6 ، فستكون الوحدة بالفعل في الفرع الرئيسي ولن تضطر إلى إنهاء أي شيء. بعد ذلك ، يتم تشغيل وكيل الكيلو ، "kg" ، على كل عقدة في المجموعة ، وإعداد المفاتيح الخاصة والعامة لإعداد VPN. يتم أيضًا تكوين قواعد توجيه حركة المرور بين المناطق المنفصلة تلقائيًا. يمكن أن يعمل Kilo أيضًا جنبًا إلى جنب مع حلول الشبكات الأخرى للمجموعات ، مثل Flannel. في الوقت نفسه ، سيوفر kilo الاتصال بين المناطق ، وسيهتم Flannel بحركة المرور داخل موقع واحد.
عند إنشاء هيكل شبكة ، فإنه يعتمد على topology.kubernetes.io/region ، ولكن يمكنك أيضًا ترميز المناطق يدويًا.
المتطلبات:
- Kernel أحدث 5.6 أو وحدة سلكية منفصلة
- IP الأبيض في العقد ، لتنظيم اتصال مباشر بينهما.
لمزيد من التفاصيل ، راجع حديث المطور العام الماضي في منتديات Kubernetes في سيول والوثائق .
wg-gen-web
ما يسمى "بعد مولد تكوين آخر". لكن العمل معه ممتع للغاية. يتمثل الاختلاف الرئيسي في الأسلوب في أن المؤلف لا يحاول تحرير تكوين خدمة قيد التشغيل أثناء التنقل ، ولكنه يوفر فقط واجهة مستخدم رسومية ملائمة لإنشاء القواعد. ثم تقوم أنت بنفسك بتنفيذ تحديث التكوينات حسب ذوقك.
الميزات الرئيسية - يولد أكواد QR ملائمة لعملاء الجوال ويرسل جميع البيانات اللازمة للاتصال ببريد العميل. حسنًا ، مرسيًا ، بالطبع. المستودع هنا .
النشر بسيط جدًا:
docker run --rm -it -v /tmp/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest
الفضاء الجزئي
واجهة مستخدم رسومية أخرى لسهولة العمل مع العديد من أجهزة العملاء.
الخصائص الرئيسية:
- الدخول الموحد باستخدام SAML. يمكنك الذهاب تحت حساب جوجل.
- قم بإضافة وإزالة الأجهزة ببضع نقرات
- توليد التكوينات الفردية لكل جهاز. حسنًا ، رمز الاستجابة السريعة ، بالطبع.
- لنقم بتشفير HTTPS خارج منطقة الجزاء وإعادة التوجيه التلقائي إلى المنفذ 443
سهولة النشر في VPS. بالمناسبة ، لديناهم. يمكننا النوم)
يجب تثبيت Wireguard على الخادم ويجب أن تكون المنافذ مفتوحة: 80 / tcp، 443 / tcp، 51820 / udp (WireGuard). في هذه الحالة ، تحتاج إلى إزالة dnsmasq القياسي ، حيث سيتم تشغيله في الحاوية.
بعد ذلك يكون كل شيء نموذجيًا جدًا ، فقط استبدل --env SUBSPACE_HTTP_HOST بنطاقك:
# Your data directory should be bind-mounted as `/data` inside the container using the `--volume` flag.
$ mkdir /data
docker create \
--name subspace \
--restart always \
--network host \
--cap-add NET_ADMIN \
--volume /usr/bin/wg:/usr/bin/wg \
--volume /data:/data \
--env SUBSPACE_HTTP_HOST=subspace.example.com \
subspacecloud/subspace:latest
$ sudo docker start subspace
المستودع هنا .
بدلا من الاستنتاجات
إذا لم تكن قد جربت هذا VPN حتى الآن ، فأنا أوصي به بشدة. غالبًا ما يكون قادرًا على إحياء أجهزة ليست قوية جدًا ، والتي لم تكن قادرة على تحمل التحميل في وقت سابق. كما أنه ليس من الصعب تكوينه. صحيح أن مهمتها الرئيسية لا تزال تخترق أنفاقًا مستقيمة مسبقة التكوين. أي تكوينات ديناميكية ليست متاحة له بالمعنى المعتاد. ثمن يجب دفعه مقابل البساطة والأداء.
بالمناسبة ، إذا كنت لا تعرف حتى الآن ، فقد تم تضمين Wireguard بالفعل في الإصدار التجريبي من RouterOS 7.1 من MikroTik. يمكنك تجربتها الآن ، لكن حسب مشاعري ، لا تزال رطبة.
حسنًا ، يمكنني عادةً دعوتك لمحاولة نشر Wireguard على الخادم الافتراضي الخاص بنا... على سبيل المثال ، لإنهاء بعض حركة مرور الشبكة المنزلية الخاصة بك إلى سويسرا أو هولندا. لدينا العديد من المواقع المختلفة وسياسة التسعير ممتعة للغاية لمثل هذه المهام.
كما قلت ، يعتبر Wireguard فعالًا للغاية في استخدام الموارد ، لذا فإن الحد الأدنى من التكوين مع نواة واحدة و 1 جيجابايت من ذاكرة الوصول العشوائي سيكون أكثر من كافٍ لدعم عدد كبير من العملاء. الأسعار أيضًا إنسانية تمامًا:
- الموقع في أمستردام ، لندن ، فرانكفورت - 503 ₽ / شهر
- وفي موقع موسكو ، بمعالج أبسط قليلاً - 240 ₽ / شهر.