Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Docker IPsec VPN Server — خادم VPN IPsec مبني على Docker يدعم IPsec/L2TP وCisco IPsec وIKEv2 مع إنشاء تلقائي لبيانات الاعتماد وتهيئة عملاء متعددة المنصات. | Kitploit
أدوات/GitLabGitLab/hwdsl2/docker-ipsec-vpn-server
أدوات التشفير/فك التشفيرأمن الشبكات
GitLabhwdsl2/docker-ipsec-vpn-server

Docker IPsec VPN Server

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

عرض المستودع
89منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
[English](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md) | [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md) | [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md) | [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md)

# خادم IPsec VPN على Docker

[![Build Status](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions/workflows/main-alpine.yml/badge.svg)](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions/workflows/main-alpine.yml) [![GitHub Stars](https://raw.githubusercontent.com/hwdsl2/badges/main/img/github-stars-docker-ipsec-vpn-server.svg)](https://github.com/hwdsl2/docker-ipsec-vpn-server/stargazers) [![Docker Stars](https://raw.githubusercontent.com/hwdsl2/badges/main/img/docker-stars-ipsec-vpn-server.svg)](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/) [![Docker Pulls](https://raw.githubusercontent.com/hwdsl2/badges/main/img/docker-pulls-ipsec-vpn-server.svg)](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/)

صورة Docker لتشغيل خادم IPsec VPN، مع دعم IPsec/L2TP وCisco IPsec وIKEv2.

مبنية على Alpine 3.23 أو Debian 12 مع [Libreswan](https://libreswan.org) (برنامج IPsec VPN) و[xl2tpd](https://github.com/xelerance/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](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions)
- بيانات دائمة عبر وحدة تخزين Docker
- متعدد المعماريات: `linux/amd64`، `linux/arm64`، `linux/arm/v7`

**متوفر أيضًا:**

- VPN: [IPsec بدون Docker](https://github.com/hwdsl2/setup-ipsec-vpn)، [WireGuard](https://github.com/hwdsl2/docker-wireguard)، [OpenVPN](https://github.com/hwdsl2/docker-openvpn)، [Headscale](https://github.com/hwdsl2/docker-headscale)
- الذكاء الاصطناعي: [حزمة الذكاء الاصطناعي المستضافة ذاتيًا](https://github.com/hwdsl2/self-hosted-ai-stack) لنماذج LLM المحلية والدردشة وRAG والصوت وأدوات الذكاء الاصطناعي

> 📘 هل أنت مهتم بالذكاء الاصطناعي المستضاف ذاتيًا؟ [دليل بناء الذكاء الاصطناعي المستضاف ذاتيًا](https://books2read.com/aiguide?store=amazon) هو دليل عملي لبناء وتأمين وتشغيل حزمة الذكاء الاصطناعي الخاصة بك.

## البدء السريع

استخدم هذا الأمر لإعداد خادم 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 رسائل بريد إلكتروني شهريًا)
- 💬 انضم إلى مجتمع [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](https://quay.io/repository/hwdsl2/ipsec-vpn-server):

```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.1                    | 5.4.1                          |
| IPsec/L2TP        | ✅                       | ✅                              |
| Cisco IPsec       | ✅                       | ✅                              |
| IKEv2             | ✅                       | ✅                              |

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

## كيفية استخدام هذه الصورة

### متغيرات البيئة

**ملاحظة:** جميع المتغيرات لهذه الصورة اختيارية، مما يعني أنه لا يتعين عليك كتابة أي متغير، ويمكنك الحصول على خادم IPsec VPN جاهز للاستخدام مباشرة! للقيام بذلك، أنشئ ملف `env` فارغ باستخدام `touch vpn.env`، وانتقل إلى القسم التالي.

تستخدم صورة Docker هذه المتغيرات التالية، والتي يمكن تعريفها في ملف `env` (انظر [المثال](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/vpn.env.example)):

```
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`.

يتم دعم مستخدمي 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](#configure-and-use-ikev2-vpn).

> [!IMPORTANT]
> في ملف `env` الخاص بك، اكتب القيم بدون علامات اقتباس محيطة أو مسافات حول `=`. يجب ألا تحتوي القيم على `\` أو `"` أو `'`. يجب أن يتكون مفتاح IPsec PSK الآمن من 20 حرفًا عشوائيًا على الأقل.

**ملاحظة:** إذا قمت بتعديل ملف `env` بعد إنشاء حاوية Docker بالفعل، فيجب عليك إزالة الحاوية وإعادة إنشائها حتى تسري التغييرات. راجع [تحديث صورة Docker](#update-docker-image).

### متغيرات البيئة الإضافية

يمكن للمستخدمين المتقدمين اختياريًا تحديد اسم DNS واسم العميل و/أو خوادم DNS مخصصة.

<details>
<summary>
تعرّف على كيفية تحديد اسم DNS واسم العميل و/أو خوادم DNS مخصصة.
</summary>

يمكن للمستخدمين المتقدمين اختياريًا تحديد اسم DNS لعنوان خادم IKEv2. يجب أن يكون اسم DNS اسم نطاق مؤهل بالكامل (FQDN). مثال:

```
VPN_DNS_NAME=vpn.example.com
```

يمكنك تحديد اسم لأول عميل IKEv2. استخدم كلمة واحدة فقط، بدون أحرف خاصة باستثناء `-` و `_`. القيمة الافتراضية هي `vpnclient` إذا لم يتم التحديد.

```
VPN_CLIENT_NAME=your_client_name
```

بشكل افتراضي، يتم ضبط العملاء على استخدام [Google Public DNS](https://developers.google.com/speed/public-dns/) عند تفعيل VPN. يمكنك تحديد خادم (خوادم) DNS مخصصة لجميع أوضاع VPN. مثال:

```
VPN_DNS_SRV1=1.1.1.1
VPN_DNS_SRV2=1.0.0.1
```

لمزيد من التفاصيل وقائمة ببعض مزوّدي DNS العامّين المشهورين، راجع [استخدام خوادم DNS بديلة](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).

بشكل افتراضي، لا تُطلب كلمة مرور عند استيراد إعداد عميل IKEv2. يمكنك اختيار حماية ملفات إعداد العميل باستخدام كلمة مرور عشوائية.

```
VPN_PROTECT_CONFIG=yes
```

**ملاحظة:** المتغيرات أعلاه ليس لها تأثير على وضع IKEv2، إذا كان IKEv2 مُعدًا بالفعل في حاوية Docker. في هذه الحالة، يمكنك إزالة IKEv2 وإعداده مرة أخرى باستخدام خيارات مخصصة. راجع [تكوين واستخدام IKEv2 VPN](#configure-and-use-ikev2-vpn).
</details>

### تشغيل خادم IPsec VPN

أنشئ حاوية Docker جديدة من هذه الصورة (استبدل `./vpn.env` بملف `env` الخاص بك):

```bash
docker run \
    --name ipsec-vpn-server \
    --env-file ./vpn.env \
    --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
```

في هذا الأمر، نستخدم الخيار `-v` من `docker run` لإنشاء [Docker volume](https://docs.docker.com/storage/volumes/) جديد باسم `ikev2-vpn-data`، وتثبيته في `/etc/ipsec.d` داخل الحاوية. ستستمر البيانات المتعلقة بـ IKEv2 مثل الشهادات والمفاتيح في وحدة التخزين، ولاحقًا عندما تحتاج إلى إعادة إنشاء حاوية Docker، ما عليك سوى تحديد نفس وحدة التخزين مرة أخرى.

يوصى بتمكين IKEv2 عند استخدام هذه الصورة. ومع ذلك، إذا كنت تفضل عدم تمكين IKEv2 واستخدام أوضاع IPsec/L2TP وIPsec/XAuth ("Cisco IPsec") فقط للاتصال بالـ VPN، فاحذف الخيار `-v` الأول من أمر `docker run` أعلاه.

**ملاحظة:** يمكن للمستخدمين المتقدمين أيضًا [التشغيل بدون وضع privileged](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode).

### استرداد تفاصيل تسجيل الدخول إلى VPN

إذا لم تحدد ملف `env` في أمر `docker run` أعلاه، فسيتم تعيين `VPN_USER` افتراضيًا إلى `vpnuser` وسيتم إنشاء كل من `VPN_IPSEC_PSK` و`VPN_PASSWORD` بشكل عشوائي. لاستردادها، اعرض سجلات الحاوية:

```bash
docker logs ipsec-vpn-server
```

ابحث عن هذه الأسطر في المخرجات:

```
Connect to your new VPN with these details:

Server IP: your_vpn_server_ip
IPsec PSK: your_ipsec_pre_shared_key
Username: your_vpn_username
Password: your_vpn_password
```

سيشمل المخرجات أيضًا تفاصيل وضع IKEv2، إذا كان مفعّلًا.

(اختياري) احتفظ بنسخة احتياطية من تفاصيل تسجيل الدخول إلى VPN المُنشأة (إن وُجدت) في الدليل الحالي:

```bash
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
```

## استخدام docker-compose

```bash
cp vpn.env.example vpn.env
# Edit vpn.env if needed, then:
docker compose up -d
docker logs ipsec-vpn-server
```

مثال `docker-compose.yml` (مضمّن بالفعل):

```yaml
volumes:
  ikev2-vpn-data:

services:
  vpn:
    image: hwdsl2/ipsec-vpn-server
    restart: always
    env_file:
      - ./vpn.env
    ports:
      - "500:500/udp"
      - "4500:4500/udp"
    privileged: true
    hostname: ipsec-vpn-server
    container_name: ipsec-vpn-server
    volumes:
      - ikev2-vpn-data:/etc/ipsec.d
      - /lib/modules:/lib/modules:ro
```

## الخطوات التالية

*اقرأ هذا بلغات أخرى: [English](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md#next-steps)، [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md#下一步)، [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md#下一步)، [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md#следующие-шаги).*

اجعل حاسوبك أو جهازك يستخدم الـ VPN. يُرجى الرجوع إلى:

**[تكوين واستخدام IKEv2 VPN (موصى به)](#configure-and-use-ikev2-vpn)**

**[تكوين عملاء IPsec/L2TP VPN](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md)**

**[تكوين عملاء IPsec/XAuth ("Cisco IPsec") VPN](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md)**

**اقرأ [📘 كتاب VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/vpn-book.md) للوصول إلى [محتوى إضافي](https://ko-fi.com/post/Support-this-project-and-get-access-to-supporter-o-O5O7FVF8J).**

استمتع بشبكة VPN الخاصة بك! :sparkles::tada::rocket::sparkles:

## ملاحظات مهمة

**مستخدمو Windows**: بالنسبة لوضع IPsec/L2TP، يلزم إجراء [تغيير لمرة واحدة في السجل](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md#windows-error-809) إذا كان خادم VPN أو العميل خلف NAT (مثل جهاز توجيه منزلي).

يمكن استخدام نفس حساب VPN بواسطة أجهزتك المتعددة. ومع ذلك، نظرًا لقيود IPsec/L2TP، إذا كنت ترغب في توصيل أجهزة متعددة من خلف نفس NAT (مثل جهاز توجيه منزلي)، فيجب عليك استخدام وضع [IKEv2](#configure-and-use-ikev2-vpn) أو [IPsec/XAuth](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md).

إذا كنت ترغب في إضافة أو تعديل أو إزالة حسابات مستخدمي VPN، فقم أولاً بتحديث ملف `env` الخاص بك، ثم يجب عليك إزالة وإعادة إنشاء حاوية Docker باستخدام التعليمات الواردة في [القسم التالي](#update-docker-image). يمكن للمستخدمين المتقدمين [ربط](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file) ملف `env`.

بالنسبة للخوادم التي تحتوي على جدار حماية خارجي (مثل [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)/[GCE](https://cloud.google.com/vpc/docs/firewalls))، افتح منفذي UDP 500 و4500 للـ VPN. مستخدمو Aliyun، راجع [#433](https://github.com/hwdsl2/setup-ipsec-vpn/issues/433).

تم تعيين العملاء لاستخدام [Google Public DNS](https://developers.google.com/speed/public-dns/) عند تنشيط VPN. إذا كان مزود DNS آخر مفضلاً، فاقرأ [هذا القسم](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers).

## تحديث صورة Docker

لتحديث صورة وحاوية Docker، قم أولاً [بتنزيل](#download) أحدث إصدار:

```bash
docker pull hwdsl2/ipsec-vpn-server
```

إذا كانت صورة Docker محدثة بالفعل، فيجب أن ترى:

```
Status: Image is up to date for hwdsl2/ipsec-vpn-server:latest
```

وإلا، فسيتم تنزيل أحدث إصدار. لتحديث حاوية Docker الخاصة بك، دوّن أولاً [تفاصيل تسجيل الدخول إلى VPN](#retrieve-vpn-login-details). ثم أزل حاوية Docker باستخدام `docker rm -f ipsec-vpn-server`. وأخيراً، أعد إنشاءها باستخدام التعليمات الواردة في [كيفية استخدام هذه الصورة](#how-to-use-this-image).

## تكوين واستخدام IKEv2 VPN

يحتوي وضع IKEv2 على تحسينات مقارنة بـ IPsec/L2TP و IPsec/XAuth ("Cisco IPsec")، ولا يتطلب IPsec PSK أو اسم مستخدم أو كلمة مرور. اقرأ المزيد [هنا](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md).

أولاً، تحقق من سجلات الحاوية لعرض تفاصيل IKEv2:

```bash
docker logs ipsec-vpn-server
```

**ملاحظة:** إذا لم تتمكن من العثور على تفاصيل IKEv2، فقد لا يكون IKEv2 ممكّنًا في الحاوية. جرّب تحديث صورة Docker والحاوية باستخدام الإرشادات الواردة في قسم [تحديث صورة Docker](#update-docker-image).

أثناء إعداد IKEv2، يتم إنشاء عميل IKEv2 (بالاسم الافتراضي `vpnclient`)، مع تصدير إعداداته إلى `/etc/ipsec.d` **داخل الحاوية**. لنسخ ملف (ملفات) الإعداد إلى مضيف Docker:

```bash
# Check contents of /etc/ipsec.d in the container
docker exec -it ipsec-vpn-server ls -l /etc/ipsec.d
# Example: Copy a client config file from the container
# to the current directory on the Docker host
docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./
```

**الخطوات التالية:** [قم بتهيئة أجهزتك](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md) لاستخدام IKEv2 VPN.

<details>
<summary>
تعرّف على كيفية إدارة عملاء IKEv2.
</summary>

يمكنك إدارة عملاء IKEv2 باستخدام السكربت المساعد. راجع الأمثلة أدناه. لتخصيص خيارات العميل، شغّل السكربت بدون وسائط.

```bash
# Add a new client (using default options)
docker exec -it ipsec-vpn-server ikev2.sh --addclient [client name]
# Export configuration for an existing client
docker exec -it ipsec-vpn-server ikev2.sh --exportclient [client name]
# List existing clients
docker exec -it ipsec-vpn-server ikev2.sh --listclients
# Show usage
docker exec -it ipsec-vpn-server ikev2.sh -h
```

**ملاحظة:** إذا واجهت الخطأ "executable file not found"، فاستبدل `ikev2.sh` أعلاه بـ `/opt/src/ikev2.sh`.
</details>
<details>
<summary>
تعرّف على كيفية تغيير عنوان خادم IKEv2.
</summary>

في ظروف معينة، قد تحتاج إلى تغيير عنوان خادم IKEv2. على سبيل المثال، للتبديل إلى استخدام اسم DNS، أو بعد تغيّر عنوان IP الخاص بالخادم. لتغيير عنوان خادم IKEv2، أولاً [افتح صدفة bash داخل الحاوية](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)، ثم [اتبع هذه التعليمات](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md#change-ikev2-server-address). لاحظ أن سجلات الحاوية لن تُظهر عنوان خادم IKEv2 الجديد حتى تعيد تشغيل حاوية Docker.
</details>
<details>
<summary>
إزالة IKEv2 وإعداده مرة أخرى باستخدام خيارات مخصصة.
</summary>

في ظروف معينة، قد تحتاج إلى إزالة IKEv2 وإعداده مرة أخرى باستخدام خيارات مخصصة.

**تحذير:** سيتم **حذف** جميع إعدادات IKEv2 بما في ذلك الشهادات والمفاتيح **نهائيًا**. هذا **لا يمكن التراجع عنه**!

**الخيار 1:** إزالة IKEv2 وإعداده مرة أخرى باستخدام السكربت المساعد.

لاحظ أن هذا سيتجاوز المتغيرات التي حددتها في ملف `env`، مثل `VPN_DNS_NAME` و `VPN_CLIENT_NAME`، ولن تُظهر سجلات الحاوية بعد الآن معلومات محدّثة لـ IKEv2.

```bash
# Remove IKEv2 and delete all IKEv2 configuration
docker exec -it ipsec-vpn-server ikev2.sh --removeikev2
# Set up IKEv2 again using custom options
docker exec -it ipsec-vpn-server ikev2.sh
```

**الخيار 2:** احذف `ikev2-vpn-data` وأعد إنشاء الحاوية.

1. دوّن جميع [تفاصيل تسجيل الدخول إلى VPN](#retrieve-vpn-login-details).
1. احذف حاوية Docker: `docker rm -f ipsec-vpn-server`.
1. احذف وحدة التخزين `ikev2-vpn-data`: `docker volume rm ikev2-vpn-data`.
1. حدّث ملف `env` وأضف خيارات IKEv2 المخصصة مثل `VPN_DNS_NAME` و`VPN_CLIENT_NAME`، ثم أعد إنشاء الحاوية. راجع [كيفية استخدام هذه الصورة](#how-to-use-this-image).
</details>

## الاستخدام المتقدم

راجع [الاستخدام المتقدم](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).

- [استخدام خوادم DNS بديلة](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers)
- [التشغيل بدون وضع الامتيازات](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode)
- [اختيار أوضاع VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#select-vpn-modes)
- [تفعيل السرية الأمامية الكاملة في IKEv2](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-ikev2-perfect-forward-secrecy)
- [الوصول إلى حاويات أخرى على مضيف Docker](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#access-other-containers-on-the-docker-host)
- [تحديد عنوان IP العام لخادم VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#specify-vpn-servers-public-ip)
- [تعيين عناوين IP ثابتة لعملاء VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#assign-static-ips-to-vpn-clients)
- [تخصيص الشبكات الفرعية لـ VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets)
- [دعم IPv6](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#ipv6-support)
- [النفق المنقسم](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#split-tunneling)
- [حول وضع شبكة المضيف](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#about-host-network-mode)
- [تفعيل سجلات Libreswan](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-libreswan-logs)
- [التحقق من حالة الخادم](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#check-server-status)
- [البناء من الكود المصدري](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code)
- [صدفة Bash داخل الحاوية](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)
- [ربط ملف env كوحدة تخزين](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file)
- [نشر التحكم في الازدحام Google BBR](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#deploy-google-bbr-congestion-control)

## التفاصيل التقنية

هناك خدمتان قيد التشغيل: `Libreswan (pluto)` لـ IPsec VPN، و`xl2tpd` لدعم L2TP.

يدعم إعداد IPsec الافتراضي ما يلي:

* IPsec/L2TP مع PSK
* IKEv1 مع PSK وXAuth ("Cisco IPsec")
* IKEv2

المنافذ المطلوبة: `500/udp` و`4500/udp` (IPsec)

## الترخيص

**ملاحظة:** مكونات البرامج داخل الصورة المُعدّة مسبقًا (مثل Libreswan وxl2tpd) تخضع للتراخيص المعنية التي اختارها أصحاب حقوق النشر المعنيون. أما بالنسبة لأي استخدام لصورة مُعدّة مسبقًا، فإن مسؤولية مستخدم الصورة تقع على عاتقه لضمان أن أي استخدام لهذه الصورة يتوافق مع أي تراخيص ذات صلة لجميع البرامج الواردة فيها.

حقوق النشر (C) 2016-2026 [Lin Song](https://github.com/hwdsl2) [![View my profile on LinkedIn](https://assets.kitploit.com/production/public/readmes/648/0dc41eea05dcee104e4963528568884b531a1377d69460315bc16f61eebd4bdf.png)](https://www.linkedin.com/in/linsongui)   
استنادًا إلى [عمل Thomas Sarlandie](https://github.com/sarfata/voodooprivacy) (حقوق النشر 2012)

[![Creative Commons License](https://assets.kitploit.com/production/public/readmes/648/acde67df4b37d9df101d6555c669c258cea69750bc84ae2051ebec0970f706c8.png)](http://creativecommons.org/licenses/by-sa/3.0/)   
هذا العمل مرخّص بموجب [رخصة Creative Commons Attribution-ShareAlike 3.0 Unported](http://creativecommons.org/licenses/by-sa/3.0/)   
الإسناد مطلوب: يُرجى تضمين اسمي في أي عمل مشتق وإخباري كيف قمت بتحسينه!
تنزيل الأداة