
تشغيل التطبيقات عبر أنفاق VPN باستخدام مساحات أسماء الشبكة المؤقتة

vopono هي أداة لتشغيل التطبيقات عبر أنفاق VPN من خلال مساحات أسماء شبكة مؤقتة. يتيح لك ذلك تشغيل عدد قليل فقط من التطبيقات عبر شبكات VPN مختلفة في وقت واحد، مع الحفاظ على اتصالك الرئيسي كالمعتاد.
تتضمن vopono مفاتيح إيقاف مدمجة لكل من Wireguard و OpenVPN.
حاليًا، يتم دعم Mullvad و AzireVPN و MozillaVPN و ProtonVPN و iVPN و NordVPN و AirVPN و PrivateInternetAccess بشكل مباشر، كما يتم دعم ملفات التكوين المخصصة باستخدام الوسيط --custom. كما يتم دعم Cloudflare Warp.
بالنسبة للاتصالات المخصصة، يتم دعم بروتوكولي OpenConnect و OpenFortiVPN أيضًا (مثل شبكات VPN الخاصة بالمؤسسات). راجع دليل مستخدم vopono لمزيد من التفاصيل.
لقطة شاشة توضح مثالاً مع تشغيل firefox و google-chrome-stable و lynx جميعهم عبر اتصالات VPN مختلفة:

| المزوّد | دعم OpenVPN | دعم Wireguard |
|---|---|---|
| Mullvad | ❌ | ✅ |
| AzireVPN | ❌ | ✅ |
| iVPN | ✅ | ✅ |
| PrivateInternetAccess | ✅ | ✅* |
| ProtonVPN | ✅** | ✅*** |
| MozillaVPN | ❌ | ✅ |
| NordVPN | ✅ | ❌ |
| AirVPN | ✅ | ❌ |
| Cloudflare Warp**** | ❌ | ❌ |
| استضافة ذاتية (--custom) | ✅ | ✅ |
* يتم دعم إعادة توجيه المنفذ باستخدام الخيار --port-forwarding والخيار --port-forwarding-callback لتشغيل أمر عند تحديث المنفذ.
** راجع دليل المستخدم للحصول على تعليمات المصادقة لإنشاء ملفات تكوين OpenVPN عبر vopono sync. يجب عليك نسخ رأس المصادقة من النموذج AUTH-xxx=yyy حيث yyy هي قيمة الرأس x-pm-uid في نفس الطلب عند تسجيل الدخول في متصفح الويب الخاص بك.
*** بالنسبة لـ ProtonVPN، يمكنك إنشاء وتنزيل ملفات تكوين Wireguard محددة، واستخدامها كمزوّد تكوين مخصص. راجع دليل المستخدم للحصول على التفاصيل. يتم دعم إعادة توجيه المنفذ باستخدام الوسيط --port-forwarding لكل من OpenVPN و Wireguard. لاحظ أنه لاستخدام تكوين مخصص مع Wireguard، يجب تحديد تطبيق إعادة توجيه المنفذ الذي سيتم استخدامه باستخدام --custom-port-forwarding (أي مع --provider custom --custom xxx.conf --protocol wireguard --custom-port-forwarding protonvpn). يجب تثبيت natpmpc. لاحظ أنه بالنسبة لـ OpenVPN، يجب عليك إنشاء ملفات تكوين OpenVPN بإلحاق +pmp باسم مستخدم OpenVPN الخاص بك، ويجب عليك اختيار خوادم تدعم هذه الميزة (على سبيل المثال، في وقت كتابة هذا التقرير، خوادم رومانيا لا تدعمها). يتم بعد ذلك طباعة المنفذ المعيَّن إلى الطرفية حيث تم تشغيل vopono - يجب بعد ذلك تعيين هذا المنفذ في أي تطبيقات تتطلبه. يمكن أيضًا تمرير المنفذ إلى برنامج نصي مخصص سيتم تنفيذه داخل مساحة اسم الشبكة عبر الوسيط --port-forwarding-callback.
**** يستخدم Cloudflare Warp بروتوكوله الخاص. قم بتعيين كل من المزوّد والبروتوكول على warp. لاحظ أنه يجب عليك أولاً التسجيل باستخدام sudo warp-cli registration new ثم تشغيله مرة واحدة باستخدام sudo warp-svc و sudo warp-cli connect و sudo warp-cli debug connectivity-check disable خارج vopono - ثم قم بإنهاء sudo warp-svc دون تشغيل sudo warp-cli disconnect حتى يتصل تلقائيًا عند التشغيل. يُرجى التحقق من أن هذا يعمل أولاً قبل تجربته مع vopono.
قم بإعداد ملفات تكوين مزود VPN:
$ vopono sync
لاحظ أنه عند إنشاء أزواج مفاتيح Wireguard جديدة وتحميلها، قد يكون هناك تأخير طفيف حتى تصبح قابلة للاستخدام (حوالي 30-60 ثانية على Mullvad على سبيل المثال).
قم بتشغيل Firefox من خلال اتصال AzireVPN Wireguard إلى خادم في النرويج:
$ vopono exec --provider azirevpn --server norway firefox
يجب عليك تشغيل vopono كمستخدمك العادي (وليس باستخدام sudo) حيث أنها ستتعامل مع رفع الصلاحية عند الضرورة. لمزيد من التفاصيل حول التشغيل كخدمة systemd، إلخ، راجع دليل المستخدم.
لتجربة أكثر سلاسة، قم بتشغيل الخادم الخفي الجذري المتميز واستمر في استخدام vopono كمستخدمك العادي. تقوم واجهة سطر الأوامر تلقائيًا بإعادة توجيه طلبات exec إلى الخادم الخفي إذا كان قيد التشغيل.
sudo systemctl enable --now voponosudo vopono daemonvopono exec --provider mullvad --server se firefoxراجع USERGUIDE.md للحصول على وحدة systemd جاهزة للنسخ.
يمكن لـ vopono التعامل مع ما يصل إلى 255 مساحة اسم شبكة منفصلة (أي اتصالات خادم VPN مختلفة - إذا كان مزود VPN الخاص بك يسمح بذلك). ستشارك الأوامر التي يتم تشغيلها بنفس بادئة الخادم ومزود VPN نفس مساحة اسم الشبكة.
يمكن حفظ خيارات التكوين الافتراضية في ملف ~/.config/vopono/config.toml، على سبيل المثال:
firewall = "NfTables"
provider = "Mullvad"
protocol = "Wireguard"
server = "usa-us22"
لاحظ أن القيم حساسة لحالة الأحرف.
راجع دليل مستخدم vopono للحصول على تعليمات استخدام أكثر تفصيلاً (بما في ذلك التعامل مع الخوادم الخفية والخوادم).
قم بتثبيت حزمة vopono-git باستخدام مساعد AUR المفضل لديك.
$ paru -S vopono-git
$ vopono sync
بدلاً من ذلك، استخدم حزمة vopono-bin إذا كنت لا تريد التجميع من المصدر.
قم بتنزيل وتثبيت حزمة vopono_x.y.z_armhf.deb من صفحة الإصدارات:
$ sudo dpkg -i vopono_0.2.1_armhf.deb
ستحتاج إلى تثبيت OpenVPN (متوفر في مستودعات راسبيان):
$ sudo apt install openvpn
يمكنك بعد ذلك استخدام vopono كما هو مذكور أعلاه (لاحظ أن ثنائية Chromium هي chromium-browser):
$ vopono sync --protocol openvpn protonvpn
$ vopono exec --provider protonvpn --server sweden chromium-browser
لقطة شاشة لـ vopono مع OpenVPN تعمل على راسبيان:

لاحظ أن Wireguard غير موجود في مستودعات راسبيان، لذا فإن تثبيته ليس بسيطًا. يمكنك اتباع هذا الدليل لمحاولة ذلك، لكن لاحظ أنك لا تحتاج فقط إلى تثبيت Wireguard و wireguard-tools للحصول على wg، بل وأيضًا linux-headers لضمان عمله بشكل صحيح (أي لا تحصل فقط على أخطاء Protocol not supported عند محاولة إنشاء اتصال).
راجع دليل المستخدم للحصول على تفاصيل حول إعادة توجيه المنفذ واستخدام vopono مع الخوادم الخفيفة والخوادم، في حال كنت ترغب في استخدام راسبيري باي لتشغيل privoxy أو transmission-daemon، إلخ.
قم بتثبيت حزمة deb المتوفرة في صفحة الإصدارات.
قم بتثبيت حزمة rpm المتوفرة في صفحة الإصدار (اختر الإصدار الصحيح).
قم بتثبيت vopono من المستودع الرئيسي.
$ emerge -av net-vpn/vopono
إما استخدام الثنائيات المجمّعة في صفحة الإصدارات، أو التثبيت من المصدر باستخدام Cargo كما هو موضح أدناه.
قم بتشغيل برنامج التثبيت المقدم: install.sh - سيقوم هذا بتثبيت المستودع باستخدام cargo install ونسخ ملفات التكوين إلى ~/.config/vopono/
لاحظ أن الحد الأدنى من إصدار Rust المدعوم هو 1.85 (مطلوب للإصدار 2024). يمكنك التحقق من إصدارك باستخدام:
$ rustc --version
gnome-terminal في مساحة اسم الشبكة بسبب نموذج العميل-الخادم - راجع المشكلة #48transmission-daemon) بشكل صحيح عند تشغيل vopono كجذر - راجع المشكلة #84vopono مرخصة بموجب رخصة GPL الإصدار 3.0 (أو أحدث)، راجع ملف LICENSE أو https://www.gnu.org/licenses/gpl-3.0.en.html
vopono هو نطق الأحرف VPN في الإسبرانتو.
Se vi ankaŭ parolas Esperanton, bonvolu serĉi min en la kanalo de Discord de Rust Programming Language Community.
ما لم تذكر صراحةً خلاف ذلك، فإن أي مساهمة يتم تقديمها عمدًا لإدراجها في العمل من قبلك، ستكون مرخصة بموجب GPLv3 (أو أحدث)، دون أي شروط أو أحكام إضافية.
شكر جزيل لـ NilsIrl's MozWire للتحقيق في واجهة برمجة تطبيقات MozillaVPN.