به جای اس‌اس‌اچ از موشی استفاده کنید

اگه از اس‌اس‌اچ استفاده می‌کنید احتمالا تا حالا شده فحش به زمین و زمان بدید بخاطر تاخیرهای گهگاه خیلی زیادش که یک دستور رو که تایپ میکنید چند ثانیه بعد تازه می‌بینید چی نوشتید، از اونور برادرا هم که حسابی روش حساس شدن و انگولکش کردن، قطعی‌هاشم زیاد شده و از اون مهمتر با دی‌سی شدن از نت، ارتباط با سرور مقصد رو از دست خواهید داد!

Mosh مخفف Mobile Shell دقیقا با همین هدف نوشته شده، اینبار بجای TCP با استفاده از پروتکل UDP اتصال به سرور مقصد برقرار میشه  و اولین ویژگی که اون رو حس خواهید کرد، زنده بودن محیطه، انگار نشستید پشت مانیتور و دارید تایپ می‌کنید دستور رو، ویژگی دوم اینه که با عوض شدن آی‌پی حتی اتصال به سرور مقصد قطع نمیشه! اگرم که آی‌اس‌پی تون هعی بازیش گرفته و چراغ لینک مودم‌تون خاموش روشن می‌شه دیگه خیالتون راحته که از نو نباید به سرور مقصد وصل شید.

از اون مهمتر اینه که حتی کاربر معمولی هم می‌تونه از موشی استفاده کنه و لازم نیست حتما مجوز روت رو برای استفاده اینکار داشته باشید.

موش حاصل کار یکی از دانشجوهای دانشگاه Mit رونوشت به خودمون و دانشگاهامون که هیچ خروجی ازشون نداریم (داریم؟)

نمودار بالا هم مقایسه زمان پاسخ‌دهی در ssh و mosh رو نشون می‌ده که خب ۵ و ۱۷۳ میلی ثانیه رو مقایسه کنید با ۵۰۰ میلی ثانیه اس‌اس‌اچ! تقاوت خیلی خیلی محسوسه.

نکته ای که هست اینه که mosh برای وصل شدن در ابتدا از ssh استفاده میکنه و برای همین اگه بدون وارد کردن پسورد به سرور مقصد وصل می‌شید با mosh هم مشکلی نخواهید داشت.

نصب Mosh کار خیلی سختی نیست و احتمالا هر دیسترویی که داشته باشید اون رو درون مخازن می‌تونید گیر بیارید!

اگرم روی سرور فایروال دارید ، پورت‌های ورودی UDP بین ۶۰ هزار تا ۶۱ هزار رو باز کنید تا کلاینت بتونه به سرور وصل شه.

موش
موش

برای اتصال به سرور هم مشابه ssh باید همچین دستوری رو بزنید!

mosh [email protected]

‫پی‌نوشت: مرسی از دوست خوبم ebraminio بخاطر معرفی این برنامه خوب:ی

The short URL of the present article is: https://www.novid.ir/nTSHX

Join the Conversation

12 Comments

  1. مرسی از مطالب خوبت آقا نوید
    فقط چرا باید یک رنج پورت رو آزاد کنیم؟ مگه این برنامه از چند پورت استفاده میکنه؟ نمیشه فقط همون یکی رو باز کرد؟

    1. نه احتمالا چند نفر که وصل بشن از پورتای مختلف استفاده میکنه، اگر بخوای از پورت خاصی فقط استفاده کنه هم میشه.
      کافیه اینطوری استفاده کنی mosh -p 60000 127.0.0.1 تا از طریق ۶۰ هزار وصل شه.

  2. سلام
    مطلب خوب و کلی بود من متوجه نشدم بعد از نصب چیکار باید بکنم
    برای مثلا من یه سرور دارم که می خوام ازش ترمینال بگیریم باید هم روی سرور و کلاینتم این برنامه نصب بشه؟؟؟؟
    حالا اگه پورت پیش فرض ssh سرور من استاندارد نباشه مثلا بجای ۲۲ از ۲۲۴۰ استفاده کرده باشم چطوری می شه از این موش استفاده کرد؟؟؟
    باهاش می شه تونل http هم زد یا نه؟؟؟‌ من با putty راحت اینکار را می کنم و همه سایت ها را با ip سرور باز می کنم

  3. خب تست کردم با پارامتر –ssh=”ssh -p 2240″ می شه با یه پورت خاص وصل شد اما باید روی سرور نصب بشه وسرور من centos هست و توی مخازنش نصب نشده چطوری می شه نصبش کرد و درباره این roadmap هم اگه می شه بیشتر توضیح بدید چطوری می شه تنظیم کرد؟؟؟‌

    1. دوست عزیز شما باید مخازن Centosplus رو فعال کنی براحتی میتونی اونوقت بگیریش
      احتمالا هم vps داری از redstation :-)

  4. بالاخره دستی فایلش را از سایت pkgs.org دانلود کردم پیشنیاز هم protobuf که اونم از همونجا گرفتم و دستی نصب کردم پورت هم از ۶۰۰۰۰ تا ۶۰۰۰۵ باز کردم اما وصل نمی شه یعنی وصل می شه و رمز هم می گیره بعدش دیگه هیچی ندیدم خطا می ده و باز نمی کنه سرور هم ip ما را بلاک می کنه:D
    توی سرور هم دستور mosh-server را می زنم ببین چی میاد
    ]# mosh-server
    mosh-server needs a UTF-8 native locale to run.

    Unfortunately, the local environment ([no charset variables]) specifies
    the character set “US-ASCII”,

    The client-supplied environment ([no charset variables]) specifies
    the character set “US-ASCII”.

    LANG=
    LC_CTYPE=”POSIX”
    LC_NUMERIC=”POSIX”
    LC_TIME=”POSIX”
    LC_COLLATE=”POSIX”
    LC_MONETARY=”POSIX”
    LC_MESSAGES=”POSIX”
    LC_PAPER=”POSIX”
    LC_NAME=”POSIX”
    LC_ADDRESS=”POSIX”
    LC_TELEPHONE=”POSIX”
    LC_MEASUREMENT=”POSIX”
    LC_IDENTIFICATION=”POSIX”
    LC_ALL=
    خلاصه اش یعنی utf-8 را ساپورت نمی کنه اینم شد حرف به نظرتون مشکلش چی می تونه باشه؟؟؟؟
    البته بعد از اجرای این دستور توی سرور دیگه این بلاک نشدم توی کلاینت هم همین پیغام اومد می گه باید زبانش را بکنم اسکی تنطیمات سرور را به هم بزنم کلی سایت ممکنه بره روی هوا خطری نداره دقیقا باید چیکار کنم چه اتفاقی داره میوفته ؟؟؟!!!!

    1. سلام :) اقا سنت او اس رو که بهتره مخزن اضافه کنی :ی همه چی توش هست :ی لازم نیست بری دستی هعی بگردی بگیری‌:ی

      بعد این پیغامم سمت کلاینت این متغیر رو تو bash ست کنی فک کنم کارت راه بیفته

      export LANGUAGE=en_US.utf8
      export LC_ALL=en_US.utf8

      برای اینکه هر بارم مجبور نشی وارد کنی برو توی bashrc وارد کن:ی

  5. از نظر امنیتی چطوره؟ وقتی گفتید اگر اینترنت قطع بشه دوباره نمی‌خواد وارد بشید یه کم حس کم امنیتی داد اگه این وسط کسی قرار بگیره.

    1. امنیتش مشکلی نداره که برادر من. فقط اینکه سشن شما با ۲ تا تایم‌آوت اکسپایر نمیشه و اینکه کسی توی مسیر بگیره؟! ارتباط شما کاملا رمزنگاری شده‌ست

Leave a comment

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *