Ngrok به زبان ساده سرویسی برای ارایه سرویس های محلی (localhost) شما مانند SSH و وب سرور و FTP Server و … در اینترنت است. در این مقاله بررسی می کنیم Ngrok چگونه کار می کند و با کاربرد و مفهوم این سرویس نیز آشنا خواهیم شد، در ادامه همراه داتیس نتورک باشید.
Ngrok چیست؟
به زبان ساده سرویسی برای ارایه سرویس های محلی (localhost) شما مانند SSH و وب سرور و FTP Server و … در اینترنت است.
ngrok سرویسی برای ارایه محتوای هاست محلی (localhost) شما در اینترنت است. به عبارت دیگر این ابزار یک آدرس عمومی به هاست محلی شما اختصاص می دهد که میتوانید این آدرس را در اختیار دیگران قرار دهید تا به هاست محلی شما دسترسی داشته باشند.
در بیان دیگر این سرویس یک پروکسی معکوس (reverse proxy) است که یک تونل امن از یک نقطه پایانی عمومی (public endpoint) به یک وب سرویس در حال اجرا ایجاد می کند و تمام ترافیک تونل را ضبط و تجزیه و تحلیل می کند تا بعداً بازرسی و پخش شود.
زمانی که ngrok در حال اجرا است، به همان پورتی که سرور لوکال وب شما روی آن اجرا میشود گوش کرده و درخواستهای خارجی را به دستگاه لوکال شما پروکسی میکند.
به عبارتی یک ابزار سبک و فوقالعاده است که یک تونل امن روی دستگاه لوکال شما ایجاد میکند و یک URL عمومی به شما میدهد که میتوانید از آن برای دستیابی به سایت لوکال خود استفاده کنید.
به عبارت دیگر این ابزار یک آدرس عمومی به سرویس محلی شما اختصاص می دهد که میتوانید این آدرس را در اختیار دیگران قرار دهید تا به سرویس محلی شما دسترسی داشته باشند.
این سرویس کاملا Open Source می باشد و میتوانید سورس آن را از آدرس گیت هاب آن دریافت نمایید:
https://github.com/inconshreveable/ngrok
البته لازم به ذکر است که این سرویس به وسیله زبان Go توسعه یافته است.
Ngrok چگونه کار میکند؟
این ابزار هاست محلی شما را پشت NAT یا firewall قرار میدهد و با استفاده از Tunneling protocol اجازه دسترسی سایرین را از طریق http و https به صورت رایگان به هاست محلی شما فراهم میکند.
این ابزار هاست محلی شما را به وسیله تانل به سرویس خود متصل میکند و یک ساب دامین تصادفی روی ngrok.com برای شما ایجاد میکند.
این ساب دامین با هر بار اجرای کلاینت این ابزار متفاوت خواهد بود مگر این که شما بعد از عضویت و خرید نسخه تجاری اقدام به ساخت ساب دامین ثابت نمائید.
البته نسخه تجاری این سروس امکانات دیگری را نیز در اختیار شما قرار میدهد. همچنین این سرویس با ارایه تانل های مختلف، چندگانه و همزمان امکانات جالب دیگری را هم در اختیار شما قرار میدهد.
به طور مثال میتوانید برای راه اندازی سرویس های دیگر از تانل TCP روی پورت دلخواه خود استفاده کنید.
این سرویس چه کاربردی دارد؟
قطعا تبدیل شدن رایانه شما به یک وب سرور کار عاقلانه ای نیست. اما شاید این کار برای دمو یک پروژه یا تست آن بتواند برای شما مفید باشد.
همچنین دانلود فایل ها به صورت مستقیم از رایانه شما، میتواند شما را از آپلود آن فایل ها بی نیاز کند و به این وسیله در زمان و مصرف اینترنت شما صرفه جویی کند.
Ngrok چه ویژگی هایی دارد؟
در اینجا تعدادی از مزیت ها و امکاناتی که این سرویس دارد را بررسی خواهیم کرد:
1- استفاده و نصب آن خیلی ساده است
این ابزار با استفاده از زبان G نوشته شده برای همین پکیج آن برای هر پلتفرم اصلی، به صورت باینری است. برای نصب این برنامه کافی است:
پکیج آن را مناسب با سیستم خود دانلود کنید.
بسته را از حالت فشرده خارج کنید.
اگر سیستم شما مک یا لینوکس باشد، مرحله دیگری وجود ندارد. اما اگر از ویندوز استفاده میکنید، ممکن است لازم باشد کمی بیشتر زحمت بکشید.
بعد از نصب این ابزار، به سادگی میتوانید به آن بگویید که چه پورتی را شنود کند تا از آن برای ایجاد تونل به برنامهای که در حال اجرا است، استفاده کنید.
پس از این که فایل اجرایی ngrock را از حالت فشرده خارج کردید، آن را به پوشهای انتقال دهید که در فولدر $PATH شما قرار دارد.
بعد از آن میتوانید آن را از هر جایی که میخواهید اجرا کنید.
2- میتوانید تونلهای خود را ایمن کنید
اگر نیاز به بازکردن یک تونل برای بررسی موضوعی دارید، دیگر نیازی نیست که نگران تجسس افراد باشید.
حالا تونل شما با استفاده از HTTP محافظت میشود و هیچ کس نمیتواند در کار شما تجسس کند.
3- میتوانید درخواستها را دوباره پخش کنید
اگر نگاهی به داشبورد آن بیندازید، میبینید که نه تنها میتوانید درخواستهایی را که از طریق تونل ngrok وارد شدهاند را بازرسی کنید، بلکه میتوانید آنها را دوباره پخش کنید.
با استفاده از این ویژگی، وقتی که اندپوینت SMS شما رفتار اشتباهی از خود نشان میدهد، به جای ارسال یک پیام دیگر تا زمانی که درست شود، میتوانید درخواست ورودی را از داشبورد دوباره پخش کنید.
4- میتوانید همهچیز را طوری تنظیم کنید که به صورت خودکار انجام شود (مخصوص کاربران حرفهای)
Ngrok میتواند دادههای مهم را از یک فایل پیکربندی بخواند. اگر از سرویس پولی این ابزار استفاده میکنید، میتوانید توکن احراز هویت خود را اضافه کرده و فایل کانفیگ را در دایرکتوری $HOME خود ذخیره کنید.
حالا میتوانید کانفیگ زیردامنه را دوباره ایجاد کنید.
5- میتوانید از زیردامنههای سفارشی استفاده کنید (مخصوص کاربران حرفهای)
در صورت استفاده از سرویس پولی ngrok، میتوانید از طریق خط فرمان، از یک زیردامنه سفارشی استفاده کنید.
6- داشبورد دارد
هنگامی که ngrok را راهاندازی میکنید، URLای که از طریق آن تونل میزنید و همچنین یک URL لوکال http://127.0.0.1:4040 را نشان میدهد. آن را باز کنید و وارد داشبورد خود شوید.
داشبورد به شما امکان میدهد که وضعیت تونل خود، درخواستهایی که از طریق آن ایجاد کردهاید و پاسخهایی که از سمت اپلیکیشن شما برگشته است را ببینید.
این یک ویژگی فوقالعاده برای رفع مشکلات نقاط پایانی وب هوک است.
امیدواریم این مقاله مفید بوده باشد.
داتیس نتورک را در شبکه های اجتماعی خصوصا تلگرام و توییتر دنبال کنید.