ngrok چیست و چگونه از آن استفاده کنیم؟

ngrok چیست و چطور از آن استفاده کنیم؟

ngrok ابزاری است که به شما کمک می‌کند تا لوکال هاست خود را روی فضای اینترنت ارائه کنید. با استفاده از ngrok می‌توان تونل چند منظوره ساخت. این سرویس یک نرم افزار پروکسی معکوس است و در حالی که همه ترافیک‌ها را برای بازرسی و پخش مجدد ضبط می‌کند، از یک اندپوینت عمومی، مانند اینترنت به یک سرویس شبکه محلی در حال اجرا تونل‌های امن می‌سازد.

به عبارت دیگر برنامه ngrok برنامه‌ای است که دسترسی خارجی را (یا همان دسترسی از طریق اینترنت) به سیستم‌های شخصی که پشت یک NAT یا فایروال پنهان شده‌اند، امکان‌پذیر می‌کند. این برنامه اساسا یک تونل TCP ساده و رمزگذاری‌شده است؛ این تونل یک آدرس اینترنتی فراهم می‌کند که هرکسی می‌تواند به آن دسترسی داشته باشد، و سپس سمت دیگر تونل به سرویسی متصل می‌شود که به صورت محلی (local) در حال اجراست.

به طور کلی زمانی که نیاز داشته باشید سرویسی را روی یک ماشین محلی یا لوکال اجرا کنید، ولی دسترسی از طریق اینترنت هم به آن سرویس وجود داشته باشد، ngrok به کار شما می‌آید؛ کافی است آن را روی سیستمی که می‌خواهید از اینترنت قابل دسترسی باشد اجرا کنید، سپس پروتکل ارتباطی و هم‌چنین پورتی را که برنامه به آن گوش می‌دهد تعیین کنید. با این کار ngrok یک آدرس روی فضای ابری خود ایجاد می‌کند که از اینترنت قابل دسترسی است. سپس آن آدرس را از طریق یک تونل رمزگذاری‌شده به سیستمی که برنامه روی آن در حال اجراست متصل می‌کند. پس از اتمام این فرایند وقتی کسی به آدرس اینترنتی دسترسی پیدا کند، به صورت خودکار به سرویس لوکال هدایت می‌شود. این‌ها همه در حالی است که می‌توان از یک رابط اختصاصی تمام ترافیک عبورکرده از درگاه آن را نیز مشاهده کرد. 

ایجاد تونل‌های امن به لوکال هاست با استفاده از ngrok

ngrok یک ابزار سبک و فوق‌العاده است که یک تونل امن روی دستگاه لوکال شما ایجاد می‌کند و یک URL عمومی به شما می‌دهد که می‌توانید از آن برای دستیابی به سایت لوکال خود استفاده کنید.

زمانی که ngrok در حال اجرا است، به همان پورتی که سرور لوکال وب شما روی آن اجرا می‌شود گوش کرده و درخواست‌های خارجی را به دستگاه لوکال شما پروکسی می‌کند.

بعد از دانلود ngrok، یک فایل آرشیو دریافت می‌کنید که باید آن را extract کنید. بعد از این که محل ذخیره آن را انتخاب کردید، یک گام ساده باقی می‌ماند تا آن را وادار کنید که به وب سرور شما گوش دهد. باید به او بگویید که شما وب سرور لوکال خود را روی پورت ۸۰۸۰ تنظیم کرده‌اید. برای این کار کافی است در ترمینال تایپ کنید: ngrok http 8080. این باعث می‌شود که این نرم‌افزار شروع به گوش دادن روی پورت ۸۰۸۰ کرده و یک تونل امن ایجاد کند.

همچنین، این ابزار دو مجموعه URL ایجاد می‌کند که در دسترس عموم قرار دارند و به سرور محلی لوکال شما آدرس می‌دهد:

فوروارد http://5057493e.ngrok.io-> localhost:8080

فوروارد https://5057493e.ngrok.io-> localhost:8080

حلا باید با وارد کردن http://5057493e.ngrok.io یا https://5057493e.ngrok.io در آدرس مرورگر شما، سایت لوکال شما نمایش داده شود. این‌ها URLهای منحصر به فردی هستند که با هر بار راه‌اندازی مجدد ngrok، ایجاد می‌شوند.

آموزش کار با ngrok

استفاده از ngrok برای تست وب هوک‌ها

زمانی که شما اپلیکیشنی را توسعه می‌دهید که از وب هوک استفاده می‌کند، به یک URL نیاز دارید که سرویس وب هوک را با آن تنظیم کنید. به طور معمول، این کار را در localhost انجام می‌دهید اما مشکل این‌جا است که در این صورت، سایر نقاط جهان به برنامه شما دسترسی نخواهند داشت، پس چطور می‌خواهید وب هوک خود را تست کنید؟

این جا ngrok اهمیت پیدا می‌کند. در ادامه به ۶ مورد از ویژگی‌های مثبت آن می‌پردازیم:

۱٫ استفاده و نصب آن خیلی ساده است

این ابزار با استفاده از زبان G نوشته شده برای همین پکیج آن برای هر پلتفرم اصلی، به صورت باینری است. برای نصب این برنامه کافی است:

  1. پکیج آن را مناسب با سیستم خود دانلود کنید.
  2. بسته را از حالت فشرده خارج کنید.

اگر سیستم شما مک یا لینوکس باشد، مرحله دیگری وجود ندارد. اما اگر از ویندوز استفاده می‌کنید، ممکن است لازم باشد کمی بیشتر زحمت بکشید. بعد از نصب این ابزار، به سادگی می‌توانید به آن بگویید که چه پورتی را شنود کند تا از آن برای ایجاد تونل به برنامه‌ای که در حال اجرا است، استفاده کنید.

پس از این که فایل اجرایی ngrock را از حالت فشرده خارج کردید، آن را به پوشه‌ای انتقال دهید که در فولدر $PATH شما قرار دارد. بعد از آن می‌توانید آن را از هر جایی که می‌خواهید اجرا کنید. فقط کافی است تایپ کنید:

۲٫ داشبورد دارد

هنگامی که ngrok را راه‌اندازی می‌کنید، URL‌ای که از طریق آن تونل می‌زنید و همچنین یک URL لوکال http://127.0.0.1:4040 را نشان می‌دهد. آن را باز کنید و وارد داشبورد خود شوید.

داشبورد به شما امکان می‌دهد که وضعیت تونل خود، درخواست‌هایی که از طریق آن ایجاد کرده‌اید و پاسخ‌هایی که از سمت اپلیکیشن شما برگشته است را ببینید. این یک ویژگی فوق‌العاده برای رفع مشکلات نقاط پایانی وب هوک است.

۳٫می‌توانید درخواست‌ها را دوباره پخش کنید

اگر نگاهی به داشبورد آن بیندازید، می‌بینید که نه تنها می‌توانید درخواست‌هایی را که از طریق تونل ngrok وارد شده‌اند را بازرسی کنید، بلکه می‌توانید آن‌ها را دوباره پخش کنید.

با استفاده از این ویژگی، وقتی که اندپوینت SMS شما رفتار اشتباهی از خود نشان می‌دهد، به جای ارسال یک پیام دیگر تا زمانی که درست شود، می‌توانید درخواست ورودی را از داشبورد دوباره پخش کنید.

۴٫می‌توانید تونل‌های خود را ایمن کنید

اگر نیاز به بازکردن یک تونل برای بررسی موضوعی دارید، دیگر نیازی نیست که نگران تجسس افراد باشید.

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

۵٫می‌توانید از زیردامنه‌های سفارشی استفاده کنید (مخصوص کاربران حرفه‌ای)

در صورت استفاده از سرویس پولی ngrok، می‌توانید از طریق خط فرمان، از یک زیردامنه سفارشی استفاده کنید.

۶٫ می‌توانید همه‌چیز را طوری تنظیم کنید که به صورت خودکار انجام شود (مخصوص کاربران حرفه‌ای)

Ngrok می‌تواند داده‌های مهم را از یک فایل پیکربندی بخواند. اگر از سرویس پولی این ابزار استفاده می‌کنید، می‌توانید توکن احراز هویت خود را اضافه کرده و فایل کانفیگ را در دایرکتوری $HOME خود ذخیره کنید. حالا می‌توانید کانفیگ زیردامنه را دوباره ایجاد کنید.

علاقمند به حوزه امنیت اطلاعات و آشنا به حوزه تست نفوذ
  • facebook
  • twitter
  • googleplus
  • linkedIn
  • flickr

۷ دیدگاه ها

  1. سلام من ngrok رو قبلا رو کالی روی vmware نصب کردم و مشکلی هم نداشت الان نه رو کالی نه رو ویندوز کانکت نمیشه و پیام ریکانکت میزنه هی
    مشکلش چیه

  2. سلام ادمین عزیز . بجای Ngrok چه برنامه ای میشه استفاده کرد که بشه باهاش مث ل ngrok پورت TCP و Http هم فوروارد کرد ؟؟
    ممنون میشم معرفی کنید 🙂

  3. ngrok با پایتون نوشته شده نه G!

دیدگاهتان را بنویسید

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