Przewodnik po konfiguracji usługi reverse proxy Ngrok w ServBay
Ngrok to potężne narzędzie tunelujące, bazujące na technologii reverse proxy, umożliwiające przekroczenie ograniczeń NAT i firewalli poprzez mapowanie lokalnie uruchomionych usług do domeny publicznej. Ten przewodnik szczegółowo wyjaśnia, jak zintegrować i skonfigurować Ngrok w lokalnym środowisku ServBay, aby umożliwić dostęp do stron WWW, API lub innych usług przez internet — na potrzeby zdalnych prezentacji, pracy zespołowej czy testowania callbacków od usług trzecich.
Zasada działania
Podstawą działania Ngrok jest tworzenie szyfrowanego tunelu pomiędzy Twoją lokalną maszyną a serwerami Ngrok. Kiedy użytkownik spoza sieci odwiedza domenę dostarczoną przez Ngrok, żądanie trafia najpierw na serwer Ngrok, a następnie przez bezpieczny tunel jest przekierowywane do odpowiedniej usługi uruchomionej lokalnie w ServBay. Dzięki temu nawet bez publicznego adresu IP na komputerze lub przy istnieniu firewalla możesz wystawić swoje usługi na świat. W kontekście ServBay oznacza to możliwość natychmiastowego udostępniania lokalnych stron, backendowych API i innych usług HTTP/HTTPS do testowania lub prezentacji na zewnątrz.
Przygotowanie środowiska
Przed rozpoczęciem konfiguracji Ngrok upewnij się, że:
- Masz zainstalowany i działający ServBay: Aplikacja ServBay jest poprawnie zainstalowana, a witryna, którą chcesz udostępnić przez Ngrok, została skonfigurowana oraz działa. Zarządzanie lokalnymi konfiguracjami stron odbywa się w panelu „Witryny” ServBay.
- Zainstalowano klienta Ngrok: Wykonaj poniższe kroki, aby wdrożyć CLI Ngrok:
- Wejdź na oficjalną stronę pobierania Ngrok i pobierz instalator odpowiedni dla Twojego systemu operacyjnego.
- Po pobraniu rozpakuj archiwum. Przenieś lub skopiuj plik wykonywalny
ngrok
do katalogu uwzględnionego w zmiennej PATH systemu (np./usr/local/bin
w macOS), aby móc używać poleceniangrok
z dowolnego terminala.bash# Przykład dla macOS ARM64 sudo unzip ~/Downloads/ngrok-v3-stable-darwin-arm64.zip -d /usr/local/bin
1
2 - Zweryfikuj, czy instalacja się powiodła, uruchamiając
ngrok version
i sprawdzając wyświetloną wersję:bashngrok version # Przykładowy wynik: ngrok version 3.5.0
1
2
- Posiadasz konto Ngrok (opcjonalnie, ale zalecane): Konto (bezpłatne lub płatne) ułatwia zarządzanie tunelami i pozwala korzystać ze stałych domen oraz zaawansowanych funkcji. Zarejestruj się na stronie Ngrok i pobierz swój Token uwierzytelniający (
ngrok config add-authtoken <YOUR_AUTH_TOKEN>
), co zniesie limit czasu połączenia i udostępni dodatkowe możliwości. - Skonfigurowano lokalną stronę: W ServBay została dodana co najmniej jedna witryna, którą chcesz udostępnić przez Ngrok – przykładowo ze wskazanym lokalnym adresem domenowym jak
servbay.local
lubyourproject.servbay.demo
.
Praktyczna konfiguracja tunelu
Omówienie kluczowych parametrów
Podstawowa struktura polecenia do przypisywania usług wygląda następująco:
bash
ngrok http --domain=<NGROK_DOMAIN> <LOCAL_ENDPOINT> \
--request-header-add='host: <VIRTUAL_HOST>'
1
2
2
Składnik | Opis działania |
---|---|
http | Wskazuje utworzenie tunelu protokołu HTTP. Ngrok obsłuży ruch HTTP/HTTPS. |
--domain <NGROK_DOMAIN> | Określa przypisaną stałą domenę Ngrok (zamień na swój adres z panelu Ngrok). W planie bezpłatnym ten parametr jest opcjonalny, ponieważ Ngrok automatycznie przydzieli losową subdomenę. |
<LOCAL_ENDPOINT> | Adres usług lokalnych ServBay. Zazwyczaj to domena lokalnej strony (np. https://servbay.local ) lub http://localhost:port . |
--request-header-add='host: <VIRTUAL_HOST>' | [WAŻNE] Nadpisuje nagłówek Host w żądaniu. ServBay rozróżnia strony na podstawie nagłówka HTTP Host, dlatego konieczne jest jego ustawienie na lokalną domenę zdefiniowaną w ServBay (np. servbay.local ), by poprawnie kierować ruch na wybraną stronę. |
Przykład konfiguracji
Załóżmy, że masz w ServBay lokalną stronę o adresie domenowym servbay.local
i chcesz ją udostępnić na zewnątrz przez Ngrok. Korzystając z planu bezpłatnego, możesz utworzyć tunel do lokalnego adresu:
bash
# Wystawia stronę ServBay (servbay.local) pod losową domeną Ngrok
ngrok http https://servbay.local --request-header-add='host: servbay.local'
1
2
2
Jeśli w panelu Ngrok skonfigurowałeś stałą domenę, np. your-servbay-demo.ngrok-free.app
(lub wybrałeś własną jako użytkownik płatny), użyj parametru --domain
:
bash
# Wystawia stronę servbay.local pod wybraną domeną Ngrok
ngrok http --domain=your-servbay-demo.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local'
1
2
2
Po uruchomieniu powyższych komend, w terminalu klienta Ngrok zostaną wyświetlone informacje o stanie tunelu, w tym przydzielony adres publiczny (np. https://xxxx.ngrok-free.app
lub Twoja domena) oraz lokalny adres panelu monitorowania ruchu (http://127.0.0.1:4040
).
Weryfikacja działania usługi
Po zakończonej konfiguracji i uruchomieniu tunelu Ngrok, sprawdź dostępność usługi według poniższych kroków:
- Sprawdź publiczny adres: Znajdź linię
Forwarding
w terminalu Ngrok i zanotuj adres URL zaczynający się odhttps://
. - Odwiedź adres w przeglądarce: Użyj dowolnego połączonego z internetem urządzenia – sprawdź przeglądarką podany w poprzednim kroku adres (np.
https://cunning-lacewing-fresh.ngrok-free.app
lub własną domenę). - Zweryfikuj rezultaty:
- Strona hostowana w ServBay powinna prawidłowo się załadować przez przeglądarkę.
- Adres w pasku przeglądarki powinien mieć oznaczenie bezpiecznego połączenia HTTPS — Ngrok domyślnie wystawia ważny certyfikat SSL dla tunelu.
- Podglądaj logi żądań oraz statystyki w terminalu Ngrok lub interfejsie webowym (
http://127.0.0.1:4040
), aby potwierdzić, że żądania są prawidłowo przekazywane i obsługiwane przez ServBay.
Ilustracja: Udane połączenie przez tunel Ngrok w przeglądarce
Zaawansowane wskazówki i uwagi
Zarządzanie domenami:
- W planie darmowym Ngrok tunel korzysta domyślnie z losowej subdomeny
.ngrok-free.app
i ma ograniczenia czasowe połączenia. - Zakładając konto Ngrok oraz konfigurując domenę w panelu Ngrok Dashboard, uzyskujesz stały adres i unikasz zmieniającego się publicznego URL po każdym uruchomieniu tunelu.
- W planie płatnym dostępna jest obsługa własnych domen nadrzędnych oraz zwiększone limity przepustowości, połączeń i dodatkowe funkcje.
- W planie darmowym Ngrok tunel korzysta domyślnie z losowej subdomeny
Wystawianie wielu usług: Jeżeli chcesz ujawnić na zewnątrz kilka różnych usług bądź portów z ServBay, możesz uruchomić kilka osobnych procesów Ngrok lub wyznaczyć tunele w pliku konfiguracyjnym (
~/.config/ngrok/ngrok.yml
). Przykład tunelu do strony ServBay i oddzielnego serwisu na porcie 3000:bash# Wystawia servbay.local z SerbBay (HTTPS 443, routing po host-headerze) ngrok http --domain=servbay-website.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local' # W innym terminalu lub przez config — przekierowanie node.js na porcie 3000 ngrok http --domain=nodejs-api.ngrok-free.app http://localhost:3000
1
2
3
4
5Uwaga: dla lokalnych stron ServBay rekomendowane jest użycie
https://[nazwa_domeny]
wraz z parametrem--request-header-add
, a nie bezpośrednie tunelowanie na porty 80/443, ponieważ ServBay obsługuje tam ruch wszystkich skonfigurowanych domen.Diagnostyka:
ngrok config check
— sprawdza poprawność pliku konfiguracyjnego Ngrok (~/.config/ngrok/ngrok.yml
).ngrok logs
— wyświetla szczegółowe logi klienta Ngrok w terminalu – nieocenione przy diagnozie problemów połączenia lub trasowaniu żądań.
Bezpieczeństwo: Udostępnianie lokalnych usług publicznie wiąże się z ryzykiem! Dbaj o bezpieczeństwo ujawnianych zasobów i uruchamiaj tunel Ngrok tylko gdy to konieczne. Konta płatne umożliwiają stosowanie whitelist IP, ograniczeń dostępu i innych zaawansowanych zabezpieczeń.
Rozwiązywanie problemów
Objaw | Rozwiązanie |
---|---|
Timeout lub brak ładowania strony | Upewnij się, że docelowa strona ServBay działa poprawnie pod adresem lokalnym (np. w przeglądarce https://servbay.local ). Sprawdź działanie serwera webowego (np. Caddy lub Nginx) oraz czy zapora ogniowa nie blokuje połączeń wychodzących Ngrok. |
Błąd certyfikatu HTTPS (przeglądarka ostrzega) | Ngrok automatycznie generuje ważny certyfikat SSL dla przypisanego publicznego adresu. Problemy zwykle dotyczą konfiguracji tunelu lub sieci, a nie samego ServBay. Upewnij się, że odwiedzasz adres przypisany przez Ngrok (https:// ). Jeśli ostrzeżenie widzisz przy lokalnej domenie ServBay, sprawdź konfigurację SSL w ServBay. |
Przerwy w połączeniu lub niska prędkość | Zweryfikuj jakość połączenia internetowego – niestabilny internet może zrywać tunel. Najlepszą niezawodność daje połączenie kablowe. Z myślą o stabilności i wydajności rozważ płatny plan Ngrok. |
Wyświetlana domyślna strona ServBay, zamiast właściwej witryny | Upewnij się, że <LOCAL_ENDPOINT> jest poprawnie wskazany w poleceniu ngrok http , a w parametrze --request-header-add='host: <VIRTUAL_HOST>' wartość <VIRTUAL_HOST> dokładnie odpowiada domenie skonfigurowanej w ServBay. Jest to kluczowe do właściwego przekierowania żądań na określoną stronę. |
FAQ (najczęstsze pytania)
Q: Czy da się tunelować bazę danych przez ServBay?
A: Ngrok jest przeznaczony głównie do tunelowania HTTP/HTTPS. Co prawda obsługuje też tunele TCP dla takich usług jak bazy danych, ale nie jest to zalecane ze względów bezpieczeństwa i wykracza poza zakres tego przewodnika. W celu zdalnego dostępu do bazy danych bezpieczniej skorzystać z tunelu SSH lub innych, bardziej zabezpieczonych rozwiązań.
Q: Czy za każdym razem publiczna domena Ngrok się zmienia?
A: W darmowym planie Ngrok co uruchomienie tunelu otrzymasz nową, losową subdomenę
.ngrok-free.app
. By uzyskać stały adres, załóż konto i ustaw domeny w panelu dashboard Ngrok lub rozważ wykupienie planu płatnego.Q: Czy użycie Ngrok spowalnia ServBay?
A: Przesyłanie ruchu przez serwery Ngrok dodaje pewne opóźnienie, ale na potrzeby rozwoju, testów czy prezentacji jest to najczęściej akceptowalne. Wydajność samej aplikacji hostowanej w ServBay zależy od zasobów Twojego komputera i kodu strony.
Podsumowanie
Dzięki integracji Ngrok użytkownicy ServBay mogą bezpiecznie i wygodnie dzielić się efektami lokalnej pracy webowej bez konieczności złożonej konfiguracji sieci. Rozwiązanie to idealnie sprawdza się podczas współpracy zdalnej, prezentacji klientom, testowania na urządzeniach mobilnych czy integracji z usługami zewnętrznymi. Ngrok oferuje monitorowanie ruchu na żywo i zaawansowane opcje bezpieczeństwa (część funkcji w płatnych planach). W przypadku projektów biznesowych lub wymagających stałego adresu, rekomenduje się wykupienie płatnej wersji Ngrok dla niezawodności oraz większej funkcjonalności.