عن المشروع

Eternal Terminal (ET) هو نظام خادم-عميل لصدفة طرفية عن بعد يتحمل انقطاعات الشبكة. على عكس SSH العادي، عند انقطاع الاتصال، يعيد الاتصال تلقائيًا ويستعيد الجلسة بالضبط حيث توقف المستخدم — دون أوامر متقطعة أو مخرجات مفقودة. ### كيف يعمل يستخدم ET ثلاثة مكونات: - **`et`** (العميل): يعمل على الجهاز المحلي. يصادق عبر SSH، ثم يتحول إلى اتصال ET دائم عبر منفذ TCP 2022. - **`etserver`** (خادم الخلفية): يعمل كخدمة نظام (عادة بإدارة الجذر) على المضيف البعيد. يقبل اتصالات العملاء ويوجهها إلى جلسة المستخدم الصحيحة. - **`etterminal`** (مساعد جانب الخادم): يُطلق بواسطة `et` عبر SSH. يستضيف جلسة الطرفية الفعلية ويسجل مع `etserver` عبر FIFO. ### الميزات الرئيسية - **إعادة الاتصال التلقائي**: انقطاعات الشبكة، أو انتقالات WiFi، أو انقطاع VPN لا تقتل جلستك. - **مصادقة قائمة على SSH**: يستفيد من مفاتيح SSH الحالية والإعدادات للمصادقة الآمنة. - **إعادة توجيه المنافذ**: يدعم علامة `-t` لإعادة توجيه المنافذ المحلية والبعيدة. - **دعم المضيف الوسيط**: الاتصال عبر مضيفات وسيطة باستخدام `--jumphost` و `--jport`. - **مضاعف HTM**: مضاعف طرفية مدمج (`htm`) يدعم النوافذ الأصلية والتبويبات والتقسيم في محاكيات الطرفية المتوافقة، ويتكامل مع وضع تحكم tmux. - **قابل للتكوين**: إعدادات الخادم موجودة في `/etc/et.cfg` (المنفذ، عنوان الربط، إلخ). ### التثبيت حزم مُعدة مسبقًا متاحة لـ macOS (Homebrew، MacPorts)، Ubuntu/Debian (PPA ومستودع deb الرسمي)، Fedora، CentOS 8+، FreeBSD، openSUSE، و NixOS. Windows مدعوم عبر WSL. كما توثق عمليات البناء من المصدر لـ Debian/Ubuntu و CentOS 7 و macOS. ### الاستخدام ```bash et hostname # المنفذ الافتراضي 2022، اسم المستخدم الحالي et user@hostname:8000 # منفذ مخصص et hostname --jumphost jump # عبر مضيف وسيط ``` يقرأ ET ملفات إعدادات SSH الخاصة بالمستخدم والنظام-wide؛ مرر `--ssh-config` مع مسار مطلق لعزل إعدادات SSH المحيطة، أو `--no-ssh-config` لتعطيلها تمامًا. ### وثائق البروتوكول وثائق مفصلة للبروتوكول وتصميم HTM متاحة في المستودع تحت `docs/`.