منصوبے کے بارے میں

Eternal Terminal (ET) ایک ریموٹ شیل کلائنٹ-سرور سسٹم ہے جو نیٹ ورک کی رکاوٹوں کے باوجود کام جاری رکھتا ہے۔ عام SSH کے برعکس، جب کنکشن منقطع ہو جاتا ہے تو یہ خودکار طور پر دوبارہ جڑ جاتا ہے اور سیشن کو بالکل وہیں بحال کر دیتا ہے جہاں صارف نے چھوڑا تھا — کوئی کمانڈ رکی نہیں اور نہ کوئی آؤٹ پٹ ضائع ہوتا ہے۔ ### یہ کیسے کام کرتا ہے ET تین اجزاء استعمال کرتا ہے: - **`et`** (کلائنٹ): مقامی مشین پر چلتا ہے۔ SSH کے ذریعے تصدیق کرتا ہے، پھر TCP پورٹ 2022 پر مستقل ET کنکشن پر منتقل ہو جاتا ہے۔ - **`etserver`** (سرور ڈیمون): ریموٹ ہوسٹ پر سسٹم سروس کے طور پر چلتا ہے (عام طور پر روٹ کے زیرِ انتظام)۔ کلائنٹ کنکشنز قبول کرتا ہے اور انہیں درست صارف سیشن تک پہنچاتا ہے۔ - **`etterminal`** (سرور کی طرف مددگار): `et` کے ذریعے SSH پر شروع کیا جاتا ہے۔ اصل ٹرمینل سیشن کی میزبانی کرتا ہے اور FIFO کے ذریعے `etserver` کے ساتھ رجسٹر ہوتا ہے۔ ### اہم خصوصیات - **خودکار دوبارہ کنکشن**: نیٹ ورک کی معمولی رکاوٹیں، 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 کنفیگ فائلیں پڑھتا ہے؛ محیطی SSH کنفیگریشن سے الگ رہنے کے لیے `--ssh-config` کے ساتھ مطلق راستہ دیں، یا اسے مکمل طور پر غیر فعال کرنے کے لیے `--no-ssh-config` استعمال کریں۔ ### پروٹوکول دستاویزات تفصیلی پروٹوکول اور HTM ڈیزائن کی دستاویزات ریپوزٹری میں `docs/` کے تحت دستیاب ہیں۔