معرفی ابزار فوق العاده ngrok

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

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

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

معرفی ngrok

Spend more time programming. One command for an instant, secure URL to your localhost server through any NAT or firewall.

ngrok provides a real-time web UI where you can introspect all HTTP traffic running over your tunnels. Replay any request against your tunnel with one click.

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

ngrok tool

نصب ngrok به صورت global

برای نصب ngrok بر روی مک می‌توانید با استفاده از Homebrew با دستور زیر نصب کنید. در صورتیکه با استفاده از brew آن را نصب کنید به صورت global در دسترس است.


brew cask install ngrok

اگر با استفاده از brew آن را نصب نکردید می‌توانید به صورت زیر آن را به صورت global تعریف کنید.


# cd into your local bin directory
cd /usr/local/bin

# create symlink
ln -s /Applications/ngrok ngrok

برخی دستورات مهم ngrok

برخی از دستورات مهم ngrok را به صورت زیر می‌توانید مشاهده کنید.

۱. ایجاد یک آدرس ایمن ( Secure Tunnels )

با استفاده از این دستور آدرس لوکال خود را به صورت آنلاین در دسترس قرار دهید.


ngrok http 80

با اجرای دستور فوق نتیجه زیر مشاهده خواهد شد.

ngrok - secure tunnel

فرض کنید آدرس دامنه مجازی ما mekaeil.local هستش و روی پورت ۸۰۰۰ در دسترس است که با اجرای کامند زیرا تنها وقتی میتوانیم آن را در دسترس قرار دهیم که وبسرور را روی پورت ۸۰۰۰ در اجرا کنیم. مثلا پروژه ای که با لاراول پیاده سازی شده است را ابتدا php artisan serve اجرا میکنیم و بعد آن را با ngrok در دسترس قرار می‌دهیم.


ngrok http mekaeil.local:8000

نکته: با استفاده دکمه Ctr+ C میتوانید آن را متوقف و از دسترس خارج کنید.

۲. تعریف رمزعبور برای آدرس (Password Protected)

با استفاده از دستور زیر میتوانیم برای آدرس موردنظرمان رمز عبور تعریف کنیم.


ngrok http -auth "user:password" 80

۳. تعریف آدرس ایمن برای دامنه مجازی (Target virtual-host sites)


ngrok http -host-header=mekaeil.local 80

اگر برای آدرس دامنه مجازی رمز عبور تعریف کنیم به صورت زیر خواهد بود.


ngrok http -auth "user:pass" -host-header=mekaeil.local 80

 

برای مطالعه بیشتر داکیومنت ngrok را مطالعه نمائید.

 

وقتی که کامند‌ها را اجرا می‌کنید آدرس http://127.0.0.1:4040 نیز در دسترس است که با باز کردن آن می‌توانید جزئیات رکوست‌هایی که در دسترس قرار میگیرد و کاربران باز می‌کنند را نمایش می‌دهد به نوعی مانیتورینگ آدرس‌هایی است که کاربر روی آدرس آنلاین باز می‌کند. همچنین دکمه Replay را بزنید مجدد رکوست اجرا می‌شود.

ngrok request monitoring

 

تجربه: من خودم برای پروژه‌هایی که با لاراول است و دامنه مجازی ست کردم تست کردم بعد از کلیک با مشکلی مواجه میشدند و به دامنه مجازی ریدایرکت میشدند که ۴۰۴ میشد ولی بعد از اینکه php artisan serve را اجرا کردم و به صورت زیر لینک رو جنریت کردم به درستی پروژه کار میکنه.


ngrok http mekaeil.local:8000

 

 

Comments