تطبيقات

حوّل جهازك الطرفي إلى صفحة ويب قابلة للمشاركة باستخدام ttyd

هل سبق لك أن وجدت نفسك في موقفٍ احتجت فيه إلى توضيح ما تفعله بالضبط في جهاز الطرفية؟ ربما كنت تُصحح مشكلةً في الخادم مع زميل، أو تُوضح لصديقٍ سلسلةً مُعقدةً من الأوامر. بالطبع، يُمكنك التقاط لقطات شاشة أو تسجيل شاشتك ، ولكن ألن يكون من الرائع لو استطعت مُشاركة جلسة عمل جهاز الطرفية مباشرةً عبر رابط ويب بسيط؟ يُسهّل هذا النهج التعاون ويُتيح لك رؤيةً فوريةً لما يحدث على جهازك.

يوفر لك لينكس بالفعل بعض الطرق لمشاركة المحطات الطرفية. على سبيل المثال، لديك طرق تقليدية مثل SSH ، وأدوات مثل tmux وscreen ، وأدوات تسجيل مثل asciinema . على الرغم من أن هذه الطرق فعالة في بعض الحالات، إلا أنها غالبًا ما تضيف خطوات أو تبعيات إضافية تُبطئك.

هنا يأتي دور أداة سطر الأوامر ttyd . فبدلاً من إجبار الآخرين على تثبيت برامج أو تعديل الإعدادات، تُحوّل ttyd جهازك الطرفي إلى صفحة ويب. الآن، يمكن لأي شخص لديه الرابط فتح متصفحه ومشاهدة جلستك أو حتى التفاعل معها.

ماذا يمكن أن يفعل ttyd؟

  • تستفيد ttyd من Libwebsockets وlibuv لتحقيق أداء فائق السرعة.
  • إنه يستخدم WebSockets تحت الغطاء، مما يحافظ على تجربة سلسة وسريعة الاستجابة حتى في الاتصالات الأضعف.
  • يدعم ZMODEM الرسومي لنقل الملفات ويتكامل مع lrzsz لسحب الملفات وإفلاتها مباشرة في المتصفح.
  • تضمين تشفير SSL/TLS للأمان ودعم المصادقة.
  • يمكن تشغيل ttyd بسهولة على أي منفذ تريده، ومع التوافق مع التجميع المتبادل، يمكنك تشغيله حتى على Raspberry Pi.
  • توفير دعم النسخ واللصق المدمج بين المتصفح والمحطة الطرفية.
  • يمكن تحديد الحد الأقصى لعدد الاتصالات المتزامنة.
  • فتح الجلسات تلقائيًا في متصفحك.
  • تقييد الوصول إلى عميل واحد في كل مرة.

تثبيت ttyd على Linux

إذا كنت تستخدم نظامي ديبيان أو أوبونتو، فقد لا يكون ttyd متاحًا في المستودعات الافتراضية. لكن لا تقلق، يمكنك تثبيته بسهولة باستخدام خيارات أخرى، مثل البناء من المصدر .

أولاً، تأكد من تحديث نظامك:

sudo apt update && sudo apt upgrade -y

قم بتثبيت التبعيات المطلوبة لبناء ttyd:

sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

تركيب أداة Ttyd

استنسخ كود المصدر ttyd من GitHub وقم ببنائه باستخدام هذه الأوامر:

git clone https://github.com/tsl0922/ttyd.git
cd ttyd
mkdir build && cd build
cmake ..
make
sudo make install

وهذا كل شيء. الآن تم تثبيت ttyd.

بالنسبة للتوزيعات الأخرى، يمكنك استخدام خيار البناء اليدوي نفسه. أو يمكنك الحصول على ملف ثنائي مُجمّع مسبقًا من صفحة إصدارات ttyd على GitHub لبنيتك (مثل amd64 لمعظم التوزيعات). أو يمكنك تنزيله باستخدام أمر wget هذا :

wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64

جعله قابلا للتنفيذ:

chmod +x ttyd.x86_64

ربما تكون هذه أسرع طريقة لتشغيل ttyd على أي توزيعة لينكس. يمكنك أيضًا استخدام مدير حزم عالمي مثل snap لتثبيت ttyd:

sudo snap install ttyd --classic

بمجرد تثبيت ttyd باستخدام أي من هذه الطرق، اكتب ttyd --versionلتأكيد تثبيته بشكل صحيح.

حوّل جهازك الطرفي إلى صفحة ويب قابلة للمشاركة

الاستخدام الأساسي لـ ttyd هو مشاركة جلسة shell الافتراضية. للقيام بذلك، ما عليك سوى تشغيل الأمر ttydمتبوعًا بالأمر الذي ترغب في مشاركته. في هذه الحالة، يكون bash (أو zsh، fish، إلخ):

ttyd bash

يُشغّل هذا الأمر خادم الويب على المنفذ 7681 افتراضيًا. للتحقق، افتح متصفحك وزر http://localhost:7681 أو http://your-ip-address:7681 .

صفحة ويب قابلة للمشاركة تم إنشاؤها باستخدام Ttyd

سترى الآن جهازك يعمل داخل صفحة ويب. بالإضافة إلى ذلك، يمكن لأي شخص على شبكتك الوصول إلى هذا الجهاز عن طريق استبدال localhost بعنوان IP الخاص بجهازك. يمكنك العثور على عنوان IP الخاص بك باستخدام ip addr showأو hostname -I، ثم مشاركته مع الآخرين.

لستَ مقيدًا بمشاركة واجهة المستخدم. يُمكن عرض أي برنامج سطر أوامر في المتصفح. على سبيل المثال، ttyd htopسيُشغّل برنامج running مُباشرةً في htopمدير العمليات، بينما سيُشارك ttyd vimهاتين ttyd topالأداتين.

فتح مخرجات أداة سطر الأوامر العلوية على صفحة الويب

إذا كنت لا ترغب في استخدام المنفذ الافتراضي، يمكنك تحديد منفذك الخاص أيضًا. باستخدام -pالعلامة:

ttyd -p 8080 bash

الآن أصبح جهازك متاحًا على المنفذ 8080 بدلاً من المنفذ الافتراضي 7681.

إن تشغيل محطة مفتوحة يمكن لأي شخص الوصول إليها ليس خيارًا حكيمًا، لذا يقدم ttyd خيارات مصادقة باستخدام -cالعلم:

ttyd -c username:password bash

خيار تسجيل الدخول لجلسة المحطة الطرفية باستخدام Ttyd

سيؤدي هذا إلى إنشاء مطالبة مصادقة HTTP أساسية. يجب على أي شخص يحاول الوصول إلى جهازك إدخال بيانات الاعتماد المحددة. بالنسبة لبيئات الإنتاج، ستحتاج إلى نظام أكثر متانة، ولكن بالنسبة للعروض التوضيحية السريعة أو الشبكات الموثوقة، يُعد هذا النظام مثاليًا.

يمكنك أيضًا جعل جلستك للقراءة فقط، مما يمنع الإدخال من المتصفح:

ttyd -R bash

هذا مفيد لورش العمل أو العروض التقديمية التي ترغب في الحفاظ على التحكم فيها. من ناحية أخرى، استخدمه -Wإذا كنت ترغب صراحةً في جلسة تفاعلية قابلة للكتابة.

ttyd -W bash

المشاركة عبر الشبكة العامة

عند مشاركة الملفات عبر الإنترنت، يصبح التشفير ضروريًا. يتيح لك ttyd تفعيل HTTPS باستخدام شهادة SSL خاصة بك. إذا لم تكن لديك شهادات بالفعل، يمكنك إنشاء شهادات ذاتية التوقيع للاختبار باستخدام OpenSSL ، ولكن في بيئة الإنتاج، يُفضل استخدام موفر موثوق مثل Let's Encrypt .

افتراضيًا، يُمكن الوصول إلى ttyd فقط على شبكتك المحلية، ولكن قد ترغب أحيانًا في مشاركته مع شخص خارج شبكتك المحلية. يمكنك تحقيق ذلك بأمان بعدة طرق. أبسط طريقة هي ربط ttyd بخدمة نفق مثل tailscale أو Cloudflare Tunnel ، والتي تُتيح الوصول الآمن إلى منفذك المحلي عبر الإنترنت عبر عنوان URL عام مؤقت. كبديل، يمكنك تشغيل ttyd على خادم VPS أو خادم سحابي باسم نطاق، مما يجعل جهازك متاحًا بشكل دائم عبر HTTPS.

بالنسبة للإعدادات الأكثر تقدمًا، يمكنك ربط ttyd بـ localhost فقط ووضعه خلف وكيل عكسي مثل nginx أو Caddy ، والذي يمكنه التعامل مع إنهاء SSL والمصادقة والتحكم في الوصول الدقيق.


اكتشاف المزيد من إشراق العالم

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى