
Docker IPsec VPN Server — Updated!
خادم VPN IPsec مبني على Docker يدعم IPsec/L2TP وCisco IPsec وIKEv2 مع إنشاء تلقائي لبيانات الاعتماد وتهيئة عملاء متعددة المنصات.
English | 简体中文 | 繁體中文 | Русский
خادم IPsec VPN على Docker
صورة Docker لتشغيل خادم IPsec VPN، مع دعم IPsec/L2TP وCisco IPsec وIKEv2.
مبنية على Alpine 3.23 أو Debian 12 مع Libreswan (برنامج IPsec VPN) وxl2tpd (خادم L2TP).
يقوم IPsec VPN بتشفير حركة مرور شبكتك، بحيث لا يستطيع أي شخص بينك وبين خادم VPN التنصت على بياناتك أثناء انتقالها عبر الإنترنت. هذا مفيد بشكل خاص عند استخدام شبكات غير آمنة، مثل المقاهي أو المطارات أو غرف الفنادق.
الميزات:
- إنشاء بيانات اعتماد VPN وإعداد IKEv2 تلقائيًا عند أول تشغيل
- يدعم IKEv2 مع تشفيرات قوية وسريعة (مثل AES-GCM)
- إنشاء ملفات تعريف VPN للإعداد التلقائي لأجهزة iOS وmacOS وAndroid
- يدعم Windows وmacOS وiOS وAndroid وChrome OS وLinux كعملاء VPN
- يتضمن نصًا برمجيًا مساعدًا لإدارة مستخدمي IKEv2 والشهادات
- يُبنى ويُنشر تلقائيًا عبر GitHub Actions
- بيانات دائمة عبر وحدة تخزين Docker
- متعدد المعماريات:
linux/amd64،linux/arm64،linux/arm/v7
متوفر أيضًا:
- VPN: IPsec بدون Docker، WireGuard، OpenVPN، Headscale
- الذكاء الاصطناعي: حزمة الذكاء الاصطناعي المستضافة ذاتيًا لنماذج LLM المحلية والدردشة وRAG والصوت وأدوات الذكاء الاصطناعي
📘 هل أنت مهتم بالذكاء الاصطناعي المستضاف ذاتيًا؟ دليل بناء الذكاء الاصطناعي المستضاف ذاتيًا هو دليل عملي لبناء وتأمين وتشغيل حزمة الذكاء الاصطناعي الخاصة بك.
البدء السريع
استخدم هذا الأمر لإعداد خادم IPsec VPN على Docker:
docker run \
--name ipsec-vpn-server \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server
سيتم إنشاء تفاصيل تسجيل الدخول إلى VPN الخاصة بك بشكل عشوائي. راجع استرداد تفاصيل تسجيل الدخول إلى VPN.
بدلاً من ذلك، يمكنك إعداد IPsec VPN بدون Docker. لمعرفة المزيد حول كيفية استخدام هذه الصورة، اقرأ الأقسام أدناه.
المجتمع
- 📬 احصل على تحديثات المشروع وأدلة النشر المجانية (1–2 رسائل بريد إلكتروني شهريًا)
- 💬 انضم إلى مجتمع r/selfhostedstack للمناقشات
- ⭐ ضع نجمة على المستودع إذا وجدته مفيدًا — فهذا يساعد الآخرين على اكتشافه
المتطلبات
- خادم Linux بعنوان IP عام أو اسم DNS
- Docker مثبّت
- منافذ VPN مفتوحة في جدار الحماية الخاص بك (UDP 500 و 4500)
- يمكنك أيضًا استخدام Podman لتشغيل هذه الصورة، بعد إنشاء اسم مستعار لـ
docker
ملاحظة: يمكن للمستخدمين المتقدمين استخدام هذه الصورة على macOS مع Docker for Mac. قبل استخدام وضع IPsec/L2TP، قد تحتاج إلى إعادة تشغيل الحاوية مرة واحدة باستخدام docker restart ipsec-vpn-server. هذه الصورة لا تدعم Docker for Windows.
التنزيل
احصل على البناء الموثوق من سجل Docker Hub:
docker pull hwdsl2/ipsec-vpn-server
بدلاً من ذلك، يمكنك التنزيل من Quay.io:
docker pull quay.io/hwdsl2/ipsec-vpn-server
docker image tag quay.io/hwdsl2/ipsec-vpn-server hwdsl2/ipsec-vpn-server
المنصات المدعومة: linux/amd64 و linux/arm64 و linux/arm/v7.
يمكن للمستخدمين المتقدمين البناء من الكود المصدري على GitHub.
مقارنة الصور
تتوفر صورتان مُعدّتان مسبقًا. الصورة الافتراضية المبنية على Alpine لا يتجاوز حجمها ~19 ميجابايت.
| المبنية على Alpine | المبنية على Debian | |
|---|---|---|
| اسم الصورة | hwdsl2/ipsec-vpn-server | hwdsl2/ipsec-vpn-server:debian |
| الحجم المضغوط | ~ 19 ميجابايت | ~ 62 ميجابايت |
| الصورة الأساسية | Alpine Linux 3.23 | Debian Linux 12 |
| المنصات | amd64, arm64, arm/v7 | amd64, arm64, arm/v7 |
| إصدار Libreswan | 5.4.1 | 5.4.1 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
ملاحظة: لاستخدام الصورة المبنية على Debian، استبدل كل hwdsl2/ipsec-vpn-server بـ hwdsl2/ipsec-vpn-server:debian في هذا الملف التعريفي. هذه الصور غير متوافقة حاليًا مع أنظمة Synology NAS.
أريد استخدام إصدار Libreswan 4 الأقدم.
يُوصى عمومًا باستخدام أحدث إصدار من Libreswan رقم 5، وهو الإصدار الافتراضي في هذا المشروع. ومع ذلك، إذا كنت ترغب في استخدام إصدار Libreswan 4 الأقدم، يمكنك بناء صورة Docker من الكود المصدري:
git clone https://github.com/hwdsl2/docker-ipsec-vpn-server
cd docker-ipsec-vpn-server
# Specify Libreswan version 4
sed -i 's/SWAN_VER=5\..*/SWAN_VER=4.15/' Dockerfile Dockerfile.debian
# To build Alpine-based image
docker build -t hwdsl2/ipsec-vpn-server .
# To build Debian-based image
docker build -f Dockerfile.debian -t hwdsl2/ipsec-vpn-server:debian .
كيفية استخدام هذه الصورة
متغيرات البيئة
ملاحظة: جميع المتغيرات لهذه الصورة اختيارية، مما يعني أنه لا يتعين عليك كتابة أي متغير، ويمكنك الحصول على خادم IPsec VPN جاهز للاستخدام مباشرة! للقيام بذلك، أنشئ ملف env فارغ باستخدام touch vpn.env، وانتقل إلى القسم التالي.
تستخدم صورة Docker هذه المتغيرات التالية، والتي يمكن تعريفها في ملف env (انظر المثال):
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password
سيؤدي هذا إلى إنشاء حساب مستخدم لتسجيل الدخول إلى VPN، والذي يمكن استخدامه بواسطة أجهزتك المتعددة*. يتم تحديد IPsec PSK (المفتاح المشترك مسبقًا) بواسطة متغير البيئة VPN_IPSEC_PSK. يتم تعريف اسم مستخدم VPN في VPN_USER، ويتم تحديد كلمة مرور VPN بواسطة VPN_PASSWORD.
يتم دعم مستخدمي VPN إضافيين، ويمكن الإعلان عنهم اختياريًا في ملف env الخاص بك بهذه الطريقة. يجب فصل أسماء المستخدمين وكلمات المرور بمسافات، ولا يمكن أن تحتوي أسماء المستخدمين على تكرارات. سيتشارك جميع مستخدمي VPN نفس IPsec PSK.
VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2
المتغيرات أعلاه مخصصة فقط لأوضاع IPsec/L2TP و IPsec/XAuth ("Cisco IPsec"). بالنسبة لـ IKEv2، راجع تكوين واستخدام IKEv2 VPN.