العودة إلى التحديثات
UpdatedAug 1, 2026

Docker IPsec VPN Server — Updated!

خادم VPN قائم على Docker يدعم IPsec/L2TP وCisco IPsec وIKEv2، مع توليد تلقائي لبيانات الاعتماد وإعداد عملاء لمنصات متعددة.

مشاركة

English | 简体中文 | 繁體中文 | Русский

خادم IPsec VPN على Docker

حالة البناء نجوم GitHub نجوم Docker عدد سحبات 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

متوفر أيضًا:

📘 هل أنت مهتم بالذكاء الاصطناعي ذاتي الاستضافة؟ دليل باني الذكاء الاصطناعي ذاتي الاستضافة هو دليل عملي لبناء وتأمين وتشغيل حزمة الذكاء الاصطناعي الخاصة بك.

البدء السريع

استخدم هذا الأمر لإعداد خادم 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. لمعرفة المزيد حول كيفية استخدام هذه الصورة، اقرأ الأقسام أدناه.

المجتمع

المتطلبات

  • خادم 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-serverhwdsl2/ipsec-vpn-server:debian
الحجم المضغوط~ 19 MB~ 62 MB
الصورة الأساسيةAlpine Linux 3.23Debian Linux 12
المنصاتamd64, arm64, arm/v7amd64, arm64, arm/v7
إصدار Libreswan5.4.15.4.1
IPsec/L2TP✅✅
Cisco IPsec✅✅
IKEv2✅✅

ملاحظة: لاستخدام الصورة المبنية على Debian، استبدل كل hwdsl2/ipsec-vpn-server بـ hwdsl2/ipsec-vpn-server:debian في هذا الملف التعريفي (README). هذه الصور غير متوافقة حاليًا مع أنظمة 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، راجع تكوين واستخدام VPN IKEv2.

الفئات