تثبيت I2P في دوكر.
بداية سريعة جدًا
إذا أردت إعطاء I2P تجربة سريعة أو إذا كنت تستخدمه في شبكة منزلية، فتابع الخطوات التالية:
- أنشئ مجلدين "i2pconfig" و "i2ptorrents"
- انسخ النص التالي وألصقه في ملف جديد تحت اسم "docker-compose.yml".
- شغل "docker-compose up"
- افتح متصفح واذهب إلى http://127.0.0.1:7657 لتكملة الإعدادات المسبقة.
version: "3.5"
services:
i2p:
image: geti2p/i2p
network_mode: host
volumes:
- ./i2pconfig:/i2p/.i2p
- ./i2ptorrents:/i2psnark
لاحظ أن هذه الطريقة السريعة ليست بالمستحسنة للنشر الإنتاجي على خوادم متحكم بها عن بعد.
صناعة image
هناك I2P image جاهزة على DockerHub. إذا لم ترد استخدامها، فتستطيع بناء واحدة بنفسك:
docker build -t i2p .
تشغيل حاوية
السِّعات
تتطلب الحاوية أن يكون لديها سعة تخزينية لتهيئة البيانات ليركبوا عليها. اختياريًا، يمكنك تركيب سعة تخزينية منفصلة لتحميلات التورينت (“i2psnark”) . انظر إلى المثال أدناه.
استخدام الذاكرة
By default the image limits the memory available to the Java heap to 512MB. You can override that with the JVM_XMX
environment variable.
المنافذ
هناك عدة منافذ مكشوفة بواسطة الـ image. تستطيع الكشف عن المنافذ التي تريدها على حسب احتياجاتك.
منفذ | واجهة المستخدم | الوصف | TCP/UDP |
---|---|---|---|
4444 | 127.0.0.1 | وسيط HTTP | TCP |
4445 | 127.0.0.1 | وسيط HTTPS | TCP |
6668 | 127.0.0.1 | وسيط IRC | TCP |
7654 | 127.0.0.1 | بروتوكول I2CP | TCP |
7656 | 127.0.0.1 | جسر SAM TCP | TCP |
7657 | 127.0.0.1 | مركز تحكم الموجه | TCP |
7658 | 127.0.0.1 | موقع I2P | TCP |
7659 | 127.0.0.1 | وسيط SMTP | TCP |
7660 | 127.0.0.1 | وسيط POP3 | TCP |
7652 | واجهة الشبكة المحلية | UPnP | TCP |
7653 | واجهة الشبكة المحلية | UPnP | UDP |
12345 | 0.0.0.0 | بروتوكول I2NP | TCP و UDP |
ربما تريد فقط لوحة تحكم الموجه (7657) ووسيط HTTP أي (4444). إذا أردت من I2P أن يكون قادرًا على استقبال اتصالات من الإنترنت، وبذلك فلا يجب أن يكون محمي بجدار، اكشف عن منفذ بروتوكول I2NP أي (12345) - ولكن تأكد من الكشف عنه على منفذ متخلف، وإلا سيستطيع البعض تخمين أنك تشغل I2P في Docker image.
توصيل الشبكات
دليل على أفضل الممارسات لعمليات النشر السحابية هو موضوع خارج سياقنا هذا، ولكن عامةً يجب عليك أن تقلل أعداد المنافذ المكشوفة قدر المستطاع، ولكن بالكشف فقط عن منافذ I2NP إلى الإنترنت. هذا يعني أن الخدمات المدرجة في القائمة أعلاه المربوطين بـ 127.0.0.1 (من ضمنهم لوحة تحكم الموجه) يجب الوصول إليهم عبر طرق أخرى مثل تنفيق ssh أو عبر تهيئة يدوية لربطهم بواجهة أخرى.
مثال
هنا مثال حاوية يُركب i2phome
كالمجلد الرئيسي، i2ptorrents
للتورينت، ويكشف عن وسيط HTTP، IRC، لوحة تحكم الموجه، وبروتوكولات I2NNP. يحد أيضًا من الذاكرة المتاحة لـ JVM لـ 256MB.
docker run \
-e JVM_XMX=256m \
-v i2phome:/i2p/.i2p \
-v i2ptorrents:/i2psnark \
-p 4444:4444 \
-p 6668:6668 \
-p 7657:7657 \
-p 54321:12345 \
-p 54321:12345/udp \ # I2NP port needs TCP and UDP. Change the 54321 to something random, greater than 1024.
i2p:latest