ngrok چیست؟
ngrok سرویسی برای ارایه محتوای هاست محلی (localhost) شما در اینترنت است. به عبارت دیگر این ابزار یک آدرس عمومی به هاست محلی شما اختصاص می دهد که میتوانید این آدرس را در اختیار دیگران قرار دهید تا به هاست محلی شما دسترسی داشته باشند.
این سرویس کاملا Open Source می باشد و میتوانید سورس آن را از آدرس https://github.com/inconshreveable/ngrok دریافت نمایید. البته لازم به ذکر است که این سرویس به وسیله زبان Go توسعه یافته است.
کاربرد ngrok
قطعا تبدیل شدن رایانه شما به یک وب سرور کار عاقلانه ای نیست. اما شاید این کار برای دمو یک پروژه یا تست آن بتواند برای شما مفید باشد. همچنین دانلود فایل ها به صورت مستقیم از رایانه شما، میتواند شما را از آپلود آن فایل ها بی نیاز کند و به این وسیله در زمان و مصرف اینترنت شما صرفه جویی کند.
ngrok چگونه کار میکند؟
این ابزار هاست محلی شما را پشت NAT یا firewall قرار میدهد و با استفاده از Tunneling protocol اجازه دسترسی سایرین را از طریق http و https به صورت رایگان به هاست محلی شما فراهم میکند. این ابزار هاست محلی شما را به وسیله تانل به سرویس خود متصل میکند و یک ساب دامین تصادفی روی ngrok.com برای شما ایجاد میکند. این ساب دامین با هر بار اجرای کلاینت این ابزار متفاوت خواهد بود مگر این که شما بعد از عضویت و خرید نسخه تجاری اقدام به ساخت ساب دامین ثابت نمائید. البته نسخه تجاری این سروس امکانات دیگری را نیز در اختیار شما قرار میدهد. همچنین این سرویس با ارایه تانل های مختلف، چندگانه و همزمان امکانات جالب دیگری را هم در اختیار شما قرار میدهد. به طور مثال میتوانید برای راه اندازی سرویس های دیگر از تانل TCP روی پورت دلخواه خود استفاده کنید.
دانلود و نصب
این ابزار برای پلتفرم های ویندوز، مک و لینوکس توسعه پیدا کرده است و میتوانید این ابزار را از سایت توسعه دهنده آن به آدرس https://ngrok.com/download به صورت رایگان دریافت کنید. پس از دریافت این ابزار صرفا کافیست آن را از حالت فشرده خارج کنید.
کار با ngrok
برای استفاده از این سرویس کافیست پس از راه اندازی هاست محلی خود(به طور مثال با استفاده از XAMPP) و اجرا این ابزار دستور زیر را وارد نمایید:
ngrok http 80
با اجرای دستور فوق پورت 80 رایانه شما یا همان وب سرور محلی تان در اینترنت قابل دسترس خواهد بود و میتوانید با ارایه Forwarding آدرس هایی که بعد از اجرای این دستور مشاهده می نمایید، به مخاطبین خود از این سرویس استفاده نمایید.
یکی دیگر از امکانات رایگانی که برای شما وجود دارد امکان احراز هویت به وسیله نام کاربری و رمز عبور می باشد.
برای این کار شما باید ابتدا با مراجعه به آدرس https://dashboard.ngrok.com/user/signup در سایت ngrok عضو شوید. با عضویت در این سایت یک توکن برای احزار هویت در اختیار شما قرار میدهد که میتوانید با استفاده از دستور زیر آن را به کلاینت خود معرفی کنید:
ngrok authtoken your_authtoken
حال در صورتی که بخواهید از احراز هویت استفاده نمایید باید از کد زیر برای ایجاد تانل استفاده نمائید:
ngrok http -auth="username:password" 80
برای استفاده از سایر سرویس ها بعد از راه اندازی آن میتوانید از کد زیر استفاده نمایید:
ngrok tcp #port_number
در صورتی که بخواهید درخواست ها و اتصال های صورت گرفته را بررسی نمایید میتوانید از اینترفیسی که این ابزار در آدرس محلی http://localhost:4040 برای شما راه انداری میکند استفاده نمایید.
برای اطلاعات بیشتر در مورد سایر کاربرد های این سرویس میتوانید مستندات ارایه شده آن را در آدرس https://ngrok.com/docs و همچنین صفحه پرسش های متداول را در آدرس https://ngrok.com/faq مطالعه نمایید.