الصفحة هذه صحيحة لإصدار الموجه 0.9.50.

تثبيت I2P في دوكر.

بداية سريعة جدًا

إذا أردت إعطاء I2P تجربة سريعة أو إذا كنت تستخدمه في شبكة منزلية، فتابع الخطوات التالية:

  1. أنشئ مجلدين "i2pconfig" و "i2ptorrents"
  2. انسخ النص التالي وألصقه في ملف جديد تحت اسم "docker-compose.yml".
  3. 
    version: "3.5"
    services:
        i2p:
            image: geti2p/i2p
            network_mode: host
            volumes:
                - ./i2pconfig:/i2p/.i2p
                - ./i2ptorrents:/i2psnark
    
  4. شغل "docker-compose up"
  5. افتح متصفح واذهب إلى http://127.0.0.1:7657 لتكملة الإعدادات المسبقة.

لاحظ أن هذه الطريقة السريعة ليست بالمستحسنة للنشر الإنتاجي على خوادم متحكم بها عن بعد.

صناعة 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