من خط فرمان را دوست دارم چون مستقیم است و بدون شلوغی یا کلیکهای اضافه به شما کنترل میدهد. اما بهنظر میرسید که کنترل در همان لحظهای که نیاز داشتم کاری که انجام میدادم را با کسی به اشتراک بگذارم، ناپدید میشود. گزینهها فقط بهاشتراکگذاری تمام صفحه یا درخواست از آنها برای بازتولید تنظیمات من بودند. همیشه احساس میکردم باید روشی کمتر پیچیده وجود داشته باشد تا بتوانم ترمینال خودم را به کسی نشان دهم بدون اینکه لازم باشد SSH را آموزش دهم یا دسترسی از راه دور را تنظیم کنم.
من خط فرمان را دوست دارم چون مستقیم است و بدون شلوغی یا کلیکهای اضافی کنترل را به شما میدهد. اما به نظر میرسید که کنترل در لحظهای که میخواستم کاری که انجام میدادم را با کسی به اشتراک بگذارم، ناپدید میشود. گزینهها فقط به اشتراکگذاری کل صفحه نمایش یا درخواست از آنها برای بازآفرینی تنظیمات من بود. همیشه احساس میکردم باید راهی کمتر پیچیده برای نشان دادن ترمینال به دیگران بدون آموزش SSH یا راهاندازی دسترسی از راه دور وجود داشته باشد.
سپس ttyd را کشف کردم؛ با آن توانستم شل لینوکس خود را در کمتر از ۳۰ ثانیه به یک جلسه زنده و قابلاشتراک تبدیل کنم. نیازی به افزونه یا پیکربندی اضافی نداشت. در حالی که «درک دستورات مانند find، nano یا less ترمینال را کمتر ترسناک میکند»، ttyd خط فرمان را دسترسپذیرتر میسازد.
آنچه ttyd را اینقدر متفاوت میکند
یک ترمینال وب که شل شما را به یک جلسه زنده و قابلاشتراک تبدیل میکند

ttyd به نوعی حس جادویی دارد؛ پل زدن بین خط فرمان و مرورگر—دو دنیایی که معمولاً با هم ملاقات نمیکنند. این ابزار ساده خط فرمان شل محلی شما را به یک برنامه وب کاملاً تعاملی تبدیل میکند که از طریق یک URL قابل دسترسی است.
چند گزینه وجود دارد، مانند Wetty یا GateOne، که همان سرویس را ارائه میدهند، اما ttyd نیازی به پشتهٔ سنگین برنامهای که برای اجرا لازم است، ندارد. نسبت به این گزینهها منابع کمتری مصرف میکند و یک راهحل سبک و مستقیم است که خروجی ترمینال را بهصورت زمان واقعی پخش میکند—بدون نیاز به IDE.
از ترمینال به مرورگر با یک دستور
چگونه شل زندهام را در کمتر از یک دقیقه بهاشتراک گذاشتم

من ttyd را با یک فرمان تک نصب کردم. بسته به توزیع شما، یکی از دستورات زیر باید کار کند:
|
توزیع |
دستور نصب |
|---|---|
|
Debian/Ubuntu/Mint |
sudo apt install ttyd |
|
Fedora/CentOS/RHEL |
sudo dnf install ttyd (or yum for older versions) |
|
Arch Linux |
sudo pacman -S ttyd |
پس از نصب، با اجرای فرمان زیر ترمینال خود را بهاشتراک میگذارم و URL ارائهشده را در مرورگر خود باز میکنم:
ttyd -writable bash
اگر هنگام راهاندازی ttyd خطایی دریافت کردید، اجرای فرمان زیر و تعیین یک پورت باید مشکل را رفع کند:
ttyd -writable -p 9090 bash
در عرض چند ثانیه، یک جلسه ترمینال زنده و کاملاً عملیاتی در دسترس از طریق یک URL وب ساده دارم.
اما این ابزار فقط با bash پایه کار نمیکند. این ابزار خط فرمان بهطور خودکار هر برنامهٔ خط فرمانی را میپیچاند. بنابراین، ttyd bash مرورگر را به یک ترمینال لینوکس تبدیل میکند، اما میتوانید ttyd python یا ttyd htop را اجرا کنید تا مرورگر را به محیط برنامهنویسی پایتون یا یک مانیتور عملکرد سیستم زنده تبدیل کنید.
در زیر سطح، ttyd خروجی یک شبهترمینال را از طریق اتصال WebSocket پخش میکند. برای متوقف کردن اشتراک، کافی است Ctrl + C را فشار دهید. پس از قطع جلسه، هیچ دادهای باقی نمیماند. این روش تمیز است و من همیشه از آن استفاده میکنم وقتی که نیاز به دسترسی سریع و موقتی دارم.
اشتراکگذاری امن ترمینال شما
احراز هویت، HTTPS و سایر احتیاطهای اساسی
به اشتراکگذاری ترمینال با ttyd ساده است، اما همچنان باید آن را مانند یک شل واقعی در نظر بگیرید. افزودن احراز هویت با فرمان زیر برای من قدم مهمی بود. این پرچم تضمین میکند که فقط افراد دارای اعتبارنامه میتوانند متصل شوند:
ttyd --credential user:password bash
اگر نیاز به اجرای یک دموی عمومی داشته باشم، ttyd را به localhost سرور ریموت متصل میکنم و سپس پورت را از طریق یک تونل SSH به ماشین محلی خودم فوروارد میکنم با استفاده از فرمان زیر:
ssh -L 7681:localhost:7681 user@server
میتوانید از پرچمهای –ssl و –ssl-cert برای فعالسازی HTTPS با یک گواهی خودامضا استفاده کنید، اگرچه تونلگذاری از طریق SSH معمولاً برای جلسات کوتاه کافی است. از اجرای ttyd بهعنوان root خودداری کنید—این کار کنترل کامل سیستم را به هر متصلشدهای میدهد. بهجای آن، آن را در یک شل محدود یا محیط sandbox اجرا کنید تا جلسات محتاطانه و امن بمانند.
چهوقت یک ترمینال وب ابزار مناسب است
تعادل بین راحتی، کنترل و افشا

تبدیل ترمینال محلی شما به یک جلسه وب اشتراکی بدون شک زیباست. اما ممکن است همیشه رویکرد مناسب نباشد و این بخشی از جذابیت ttyd است. برای دسترسی چندکاربری یا دسترسی دائمی به ترمینال ریموت، tmate یا SSH ساده گزینههای بهتری خواهند بود.
ttyd سریع است، اما بر پایه WebSocket کار میکند و ممکن است توسط عملکرد مرورگر شما محدود شود. SSH بومی معمولاً تاخیر کمتری برای کارهایی مانند تحلیل لاگهای زمان واقعی با ظرفیت بالا یا استفاده از گرافیکهای سنگین ترمینال جهت انجام وظایف با سرعت زیاد ارائه میدهد. همچنین، هنگامی که SSH معمولاً تنها به پورت ۲۲ نیاز دارد، ttyd نیاز به باز کردن یک پورت غیر استاندارد خاص (مانند ۷۶۸۱) دارد.
با این حال، هیچچیز بهتر از ttyd نیست اگر به دنبال راهحلی بصری، سریع و موقتی باشید. همچنین ابزار مناسبی برای نمایش اسکریپتها، آموزش مدیران یا در مواردی که نمیخواهید اعتبارنامههای SSH را توزیع کنید، میباشد.
ttyd سعی ندارد بیش از حد عمل کند. این ابزار جایگزین IDE ابری یا مدیر کامل جلسات ریموت نیست. این یک پل ساده، سریع و کارآمد بین شل و مرورگر است. ابزارهایی مثل این، لینوکس را دسترسپذیرتر میکنند، بهویژه اگر از ویندوز به لینوکس مهاجرت میکنید.
تبدیل دیداری به مشارکت
در مورد سادگی به اشتراکگذاری شل با ttyd صحبت کردهام. اما چیزی که بیشترین تعجبم را برانگیخت این بود که ابزار بهمحض اینکه از اشتراکگذاری پایه خط فرمان فراتر رفتم، چندکاره شد. میتوانم خروجی اسکریپت را به آن منتقل کنم و برای نمایش مانیتورهای لاگ استفاده کنم. حتی امکان ایجاد داشبوردهای حداقلی برای سرویسهای اجرا شده روی سیستم بدون واسط گرافیکی را نیز میدهد.
ترمینال گاهی به عنوان یک محیط خام دیده میشود، اما استفاده از ttyd قدرت آن را به زمینههایی که معمولا رابطهای گرافیکی تسلط دارند، گسترش میدهد. اخیراً به دنبال ابزارهای عالی لینوکس بودهام. «ابزاری برای مرور خصوصی پیدا کردم» و حالا میتوانم ttyd را به مجموعه ابزارهای خود برای بهاشتراکگذاری ترمینال اضافه کنم.