نحوه نصب و استفاده از mosh روی سرور مجازی (VPS)
۲۰ دی ۱۴۰۳
مقدمه
SSH بدون شک، یک روش استاندارد برای مدیریت سرور مجازی ریموت است. با این حال، نمیتوان گفت که SSH در برخی شرایط مشکلات خاص خود را ندارد. اگر تا به حال تلاش کردهاید که در حال حرکت و با استفاده از یک اتصال موبایل، اتصال SSH خود را حفظ کنید، این موضوع را درک خواهید کرد که شاید ابزار بهتری برای این موقعیتها، برای اتصال به سرور، وجود داشته باشد.
در صورتی که با SSH و سرور مجازی (VPS) آشنا نیستید؛ توصیه میشود در ابتدا مقالههای زیر را، مطالعه کنید:
- SSH چیست؟ + نحوه استفاده از SSH برای اتصال به سرور مجازی (VPS)
- سرور مجازی یا VPS چیست؟ + معرفی انواع و کاربردهای VPS
Mosh تمام مزایای امنیتی SSH را حفظ کرده و بر اساس آن، تحمل بیشتری در برابر شرایط شبکه ضعیف و اتصالات در حال تغییر، دارد. همچنین، قدرت پاسخدهی را افزایش میدهد و مصرف پهنای باند را کاهش میدهد؛ زیرا فقط تغییرات وضعیت در ناحیه قابل مشاهده و نه کل بافرها را، ارسال میکند.
اتصال و احراز هویت با Mosh، از طریق یک اتصال معمولی SSH انجام میشود، به این معنی که تنها چند تنظیم اضافی نیاز است و هر مکانیزم امنیتی مبتنی بر کلید که هماکنون در حال استفاده است، به درستی کار میکند. پس از احراز هویت، یک کلید، مذاکره شده و Mosh به ارسال از طریق UDP (دیتاگرامهای رمزگذاریشده) منتقل میشود، که باعث میشود session در برابر تغییرات آدرسهای IP و قطع ارتباطهایی که ممکن است در اتصالات موبایل رخ دهد، مقاومتر باشد.
این مزایا باعث میشوند که Mosh گزینهای عالی برای نصب روی VPS شما باشد، به ویژه زمانی که نیاز دارید یک کار را در حین حرکت انجام دهید.
نحوه نصب Mosh
برای شروع، ابتدا باید Mosh هم بر روی کلاینت و هم بر روی سرور نصب شود. خوشبختانه بستههای Mosh در اکثر توزیعهای محبوب لینوکس، موجود است و در ادامه، روشهای نصب برای برخی از توزیعها، آورده شده است:
برای نصب در Ubuntu:
sudo apt-get install python-software-properties sudo add-apt-repository ppa:keithw/mosh sudo apt-get update sudo apt-get install mosh
برای نصب در Debian:
sudo apt-get install mosh
برای نصب در Arch Linux:
pacman -S mosh
برای نصب در Fedora:
sudo yum install mosh
برای هر سیستمعامل دیگر، مانند OSX یا Windows، لطفاً به مستندات Mosh مراجعه کنید تا روش نصب مناسبتری پیدا کنید.
پیکربندی فایروال
اگر فایروالی بر روی VPS خود پیکربندی کردهاید (که توصیه میشود)، باید پورتهای اضافی که Mosh به آنها نیاز دارد را نیز باز کنید. اگر از iptables به طور مستقیم استفاده میکنید، دستور زیر، پورتهایی که Mosh به آنها نیاز دارد را، باز خواهد کرد:
sudo iptables -I INPUT 1 -p udp --dport 60000:61000 -j ACCEPT
به یاد داشته باشید که به طور پیشفرض، این تنظیمات فایروال، پس از راهاندازی مجدد سیستم حفظ نخواهند شد. راهحلهایی مانند iptables-persistent برای بهبود این رفتار وجود دارند. اگر از UFW استفاده میکنید، میتوانید پورتها را با دستور زیر باز کنید:
sudo ufw allow 60000:61000/udp
اگر از برنامه دیگری برای مدیریت فایروال خود استفاده میکنید، باید به صورت دستی اطمینان حاصل کنید که پورتهای UDP از 60000 تا 61000 باز هستند. با این حال، اگر انتظار دارید که فقط تعداد کمی از اتصالات همزمان را، داشته باشید، میتوانید یک محدوده کوچکتر از پورتها را باز کنید به شرطی که از پورت 60000 شروع شود (مثلاً 60000:60020).
موارد استفاده از دستور Mosh
در بیشتر موارد، Mosh یک جایگزین کامل برای SSH است، به این معنی که بسیاری از دستورات SSH تنها به یک تغییر ساده نیاز دارند. برای مثال:
ssh user@example.com # Becomes: mosh user@example.com
با این حال، اگر از هر آرگومان دیگری همراه با SSH استفاده کنید (مانند -p
)، نحو نوشتار، یکم متفاوت خواهد بود:
mosh --ssh="ssh -p 22000" user@example.com
پس از اجرای دستور، Mosh شما را به یک shell متصل میکند که ظاهراً شبیه به هر اتصال استاندارد SSH است. با این حال، در عمق، Mosh بسیار بیشتر از یک اتصال ساده است و ویژگیهای منحصر به فردی دارد که عملکرد آن را در اتصالات ضعیف، بهتر میکند.
در حالی که SSH تمام دادههای خروجی هر برنامهای که بر روی سرور مجازی ریموت، در حال اجرا است را ارسال میکند، Mosh یک ماشین حالت vt500 را در هر دو طرف اتصال اجرا میکند و تنها تغییرات ناحیه قابل مشاهده صفحه را منتقل میکند. این کار به آن اجازه میدهد که به طور چشمگیری مصرف پهنای باند را کاهش داده و پاسخدهی را حفظ کند.
در صورت قطع کامل اتصال شما، Mosh با نوار وضعیت در بالای پنجره به شما به سرعت اطلاع میدهد که چه مدتی از آخرین ارتباط موفق شما گذشته است:
پس از بازگشت اتصال، Mosh به صورت خودکار همگامسازی را انجام داده و میتوانید session خود را از جایی که متوقف شده بودید، ادامه دهید.
همچنین ممکن است متوجه شوید حتی زمانی که اتصال شما کند است یا پاسخگو نیست، میتوانید دستورات جدیدی را در ترمینال خود تایپ کرده و ورودی خود را بلافاصله با یک خط زیر آن، مشاهده کنید. چنین متنی که زیر آن خط کشیده شده است نشان میدهد که Mosh قبل از اینکه پاسخی از VPS دریافت کند، حدس زده است که حالت ترمینال ریموت چگونه خواهد بود. زمانی که خط زیرین ناپدید شود، میتوانید مطمئن باشید که هر دو طرف اتصال، با هم هماهنگ شدهاند.
با این حال، این سیستم یک نقطه ضعف دارد: به دلیل همگامسازی Mosh تنها با حالت فعلی صفحه، ترمینال محلی شما یک scrollback buffer برای خروجی قبلی برنامهها نگهداری نخواهد کرد. بنابراین، توصیه میشود که از یک ترمینال مولتیپلکسر مانند screen یا tmux در سمت VPS استفاده کنید تا این خروجیها حفظ شوند.
نتیجهگیری
Mosh اگرچه ممکن است جایگزین استفاده روزمره شما از SSH نشود، اما در شرایطی که مجبورید به یک اتصال کند تکیه کنید، میتوانداز بین ناامیدی و بهرهوری، بهرهوری را انتخاب کنید!
همچنین، شما میتوانید از سرور مجازی لیارا استفاده کنید. سرور مجازی لیارا، راهکاری هوشمندانه برای توسعهدهندگان و کسبوکارهاست که به دنبال یک زیرساخت ابری سریع، امن و قابل اعتماد هستند. با استفاده از سرورهای مجازی لیارا، شما میتوانید برنامهها، وبسایتها و خدمات خود را در محیطی بهینه اجرا کنید و از پشتیبانی حرفهای بهرهمند شوید.