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

سترى الآن جهازك يعمل داخل صفحة ويب. بالإضافة إلى ذلك، يمكن لأي شخص على شبكتك الوصول إلى هذا الجهاز عن طريق استبدال 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
سيؤدي هذا إلى إنشاء مطالبة مصادقة 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 والمصادقة والتحكم في الوصول الدقيق.
اكتشاف المزيد من إشراق العالم
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

