
Docker IPsec VPN Server — Updated!
خادم VPN قائم على 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
- الذكاء الاصطناعي: حزمة الذكاء الاصطناعي ذاتية الاستضافة لنماذج اللغة المحلية والدردشة وRAG والصوت وأدوات الذكاء الاصطناعي
- 📚 كتب: دليل باني الذكاء الاصطناعي ذاتي الاستضافة وأدوات الخصوصية في عصر الذكاء الاصطناعي
بدء سريع
استخدم هذا الأمر لإعداد خادم IPsec VPN على Docker:```bash
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](#retrieve-vpn-login-details).
بدلاً من ذلك، يمكنك [إعداد IPsec VPN بدون Docker](https://github.com/hwdsl2/setup-ipsec-vpn). لمعرفة المزيد حول كيفية استخدام هذه الصورة، اقرأ الأقسام أدناه.
## المجتمع
- 📬 [اشترك للحصول على تحديثات المشروع](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1–2 رسائل بريد إلكتروني شهريًا) — احصل على أدلة مجانية لنشر VPN والذكاء الاصطناعي (PDF)
- 💬 انضم إلى مجتمع [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/) للمناقشات
- ⭐ امنح المستودع نجمة إذا وجدته مفيدًا — فهو يساعد الآخرين على اكتشافه
## المتطلبات
- خادم Linux بعنوان IP عام أو اسم DNS
- تثبيت Docker
- فتح منافذ VPN في جدار الحماية الخاص بك (UDP 500 و4500)
- يمكنك أيضًا استخدام [Podman](https://docs.podman.io) لتشغيل هذه الصورة، بعد إنشاء اسم مستعار لـ `docker`
**ملاحظة:** يمكن للمستخدمين المتقدمين استخدام هذه الصورة على macOS مع [Docker for Mac](https://docs.docker.com/desktop/setup/install/mac-install/). قبل استخدام وضع IPsec/L2TP، قد تحتاج إلى إعادة تشغيل الحاوية مرة واحدة باستخدام `docker restart ipsec-vpn-server`. هذه الصورة لا تدعم Docker for Windows.
## التنزيل
احصل على البنية الموثوقة من [سجل Docker Hub](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/):```bash
docker pull hwdsl2/ipsec-vpn-server
بدلاً من ذلك، يمكنك التنزيل من Quay.io:```bash 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`.
يمكن للمستخدمين المتقدمين [البناء من الكود المصدري](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code) على 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 | 5.4 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
**ملاحظة:** لاستخدام الصورة المبنية على Debian، استبدل كل `hwdsl2/ipsec-vpn-server` بـ `hwdsl2/ipsec-vpn-server:debian` في هذا README. هذه الصور غير متوافقة حاليًا مع أنظمة Synology NAS.
<details>
<summary>
أريد استخدام إصدار Libreswan الأقدم 4.
</summary>
يُنصح عمومًا باستخدام أحدث إصدار من [Libreswan](https://libreswan.org/) 5، وهو الإصدار الافتراضي في هذا المشروع. ومع ذلك، إذا كنت تريد استخدام إصدار Libreswan الأقدم 4، يمكنك بناء صورة Docker من الكود المصدري:```bash
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، ويمكن استخدامه من قِبل أجهزتك المتعددة[\*](#important-notes). يتم تحديد مفتاح IPsec المشترك مسبقًا (PSK) عبر متغير البيئة `VPN_IPSEC_PSK`. يتم تعريف اسم مستخدم VPN في `VPN_USER`، ويتم تحديد كلمة مرور VPN عبر `VPN_PASSWORD`.