Ngrok – Co to jest i jak wykorzystać go do tunelowania ruchu sieciowego

Co to jest ngrok i do czego służy?

Ngrok to narzędzie programistyczne, które umożliwia bezpieczne wystawianie lokalnych serwerów na świat poprzez stworzenie tunelu HTTPS do Twojego lokalnego środowiska. Jest niezwykle przydatne, gdy chcesz testować aplikacje lokalne lub prezentować ich działanie bez konieczności wdrażania ich na zewnętrzne serwery.

Ngrok łączy Twój lokalny komputer z publicznym adresem URL, dzięki czemu możesz szybko udostępnić aplikację na portach takich jak localhost:3000 czy localhost:8080. Narzędzie obsługuje również ruch HTTPS, co czyni je świetnym wyborem do testowania aplikacji w bezpiecznych środowiskach.

Jak działa ngrok?

  1. Instalacja: Pobierz ngrok ze strony ngrok.com i zainstaluj na swoim komputerze.
  2. Autoryzacja: Utwórz konto na stronie ngrok i wygeneruj token autoryzacyjny, aby korzystać z większości funkcji narzędzia.
  3. Tworzenie tunelu: W terminalu uruchom komendę: ngrok http 3000 Zamiast portu 3000 wpisz port, na którym działa Twoja lokalna aplikacja.
  4. Uzyskaj publiczny URL: Po uruchomieniu ngrok wygeneruje publiczny adres URL (np. https://abcd1234.ngrok.io), który możesz udostępnić innym użytkownikom.

Przykłady zastosowania ngrok:

  1. Testowanie webhooków: Webhooki wymagają publicznego adresu URL do wysyłania żądań. Zamiast wdrażać aplikację na serwer, możesz skonfigurować lokalny serwer i wystawić go przy pomocy ngrok. To szczególnie przydatne podczas pracy z API Stripe, PayPal czy Twilio.
  2. Prezentacje klientom: Możesz szybko pokazać postępy w projekcie klientowi, wysyłając mu tymczasowy URL, bez konieczności publikowania aplikacji.
  3. Testowanie aplikacji mobilnych: Jeśli Twoja aplikacja mobilna komunikuje się z lokalnym backendem, ngrok pozwala jej uzyskać dostęp do tego serwera z sieci zewnętrznej.
  4. Współdzielenie lokalnych stron: Udostępnij stronę ładowaną na localhost współpracownikom bez konieczności przesyłania plików na hosting.

Przykład użycia w PHP:

Załóżmy, że pracujesz nad aplikacją w PHP, która odbiera webhooki z systemu PayPal. Lokalnie uruchamiasz serwer PHP za pomocą komendy:

php -S localhost:8000

Następnie uruchamiasz ngrok, aby udostępnić ten serwer publicznie:

ngrok http 8000

Ngrok wygeneruje URL, np. https://abcd1234.ngrok.io. Teraz możesz skonfigurować PayPal, aby wysyłał webhooki na adres https://abcd1234.ngrok.io/webhook.php.

Kod w webhook.php może wyglądać tak:

<?php
// Odbieranie webhooka
$payload = file_get_contents('php://input');
$headers = getallheaders();

// Logowanie danych
file_put_contents('webhook.log', date('Y-m-d H:i:s') . "\n" . $payload . "\n\n", FILE_APPEND);

// Odpowiedź dla serwera
http_response_code(200);
echo 'OK';
?>

Po odebraniu webhooka dane zostaną zapisane w pliku webhook.log, co pozwoli Ci testować funkcjonalność lokalnie, bez konieczności publikowania aplikacji.

Kiedy wybrać ngrok?

Ngrok jest idealnym rozwiązaniem w sytuacjach, gdy:

  • Musisz testować webhooki.
  • Potrzebujesz szybkiego sposobu na udostępnienie aplikacji klientom lub współpracownikom.
  • Pracujesz nad aplikacją mobilną, która wymaga dostępu do lokalnego backendu.
  • Chcesz przetestować aplikację w środowisku HTTPS bez konieczności konfiguracji certyfikatów SSL lokalnie.

Cennik ngrok:

Ngrok oferuje plan darmowy oraz płatne opcje:

  • Darmowy:
    • Publiczny URL.
    • Ograniczenie do jednej instancji tunelu.
    • Losowo generowane subdomeny.
  • Płatne plany:
    • Dedykowane subdomeny.
    • Większa przepustowość.
    • Możliwość uruchamiania wielu tuneli jednocześnie.
    • Funkcje dodatkowe, takie jak inspekcja ruchu i ochrona hasłem.

Szczegółowe informacje o planach znajdziesz na stronie: ngrok.com.

Podsumowanie:

Ngrok to potężne narzędzie dla deweloperów, którzy potrzebują szybko i bezpiecznie udostępniać swoje lokalne aplikacje. Jest łatwe w obsłudze i oferuje szereg funkcji, które czyną je przydatnym w wielu scenariuszach, od testowania webhooków po udostępnianie projektów klientom. To niezawodne rozwiązanie, które znaczną oszczędza czas podczas pracy nad projektami.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *