Skip to Content
Dostęp zdalnySzablon portów

Konfigurowanie portów

Zdefiniuj które usługi aplikacja udostępnia do zdalnego dostępu tworząc plik port-template.yml w katalogu .ironflock/.

Podstawowy przykład

ports: - name: Interfejs webowy port: 5000 main: true protocol: https

Udostępnia port 5000 do zdalnego dostępu. Użytkownicy mogą włączyć tunel z ustawień aplikacji na urządzeniu.

Pełny przykład

ports: - name: Interfejs webowy port: 1100 main: true protocol: http - name: Strumień wideo port: 1200 protocol: http - name: Pulpit zdalny port: 5900 protocol: tcp - name: Brama LoRaWAN port: 1700 protocol: udp

Dokumentacja pól

PoleWymaganeOpis
nameTakEtykieta pokazywana w ustawieniach aplikacji urządzenia
portTakNumer portu lokalnego, na którym nasłuchuje usługa
mainNieJeśli true, ten port jest używany dla ikony szybkiego dostępu na liście aplikacji urządzenia
protocolNiehttp (domyślny), https, tcp lub udp

Wstrzykiwane zmienne środowiskowe

Dla każdego zadeklarowanego portu platforma wstrzykuje do kontenerów aplikacji zmienne środowiskowe, dzięki którym kod może ustalić, gdzie usługa jest faktycznie osiągalna — bez wpisywania adresów na sztywno:

ZmiennaOpis
DEVICE_LAN_IPAdres IP urządzenia w sieci lokalnej
DEVICE_PORT_FOR_<port>Port na urządzeniu, pod którym zadeklarowany port jest opublikowany w sieci lokalnej
REMOTE_PORT_FOR_<port>Publiczny port przydzielony przez serwer tuneli, gdy tunel jest aktywny (TCP i UDP)
REMOTE_PORT_FOR_<port>_CLOUDPort dostępny z internetu, gdy urządzenie działa w instancji IronFlock przekazującej tunele przez chmurę (TCP i UDP)

<port> to numer portu zadeklarowany w port-template.yml. Dla powyższego przykładu pulpitu zdalnego aplikacja otrzyma DEVICE_PORT_FOR_5900 oraz — gdy jej tunel jest aktywny — REMOTE_PORT_FOR_5900.

Na tym samym urządzeniu może działać jednocześnie wiele aplikacji, dlatego zadeklarowane porty są automatycznie mapowane na wolny port urządzenia. Zawsze buduj adresy w sieci lokalnej na podstawie wstrzykniętych wartości, zamiast zakładać, że obowiązuje zadeklarowany port:

import os lan_ip = os.environ.get("DEVICE_LAN_IP") lan_port = os.environ.get("DEVICE_PORT_FOR_5900") # usługa jest osiągalna w sieci lokalnej pod adresem {lan_ip}:{lan_port}

Zmienne są ustawiane przy starcie kontenera. Porty tuneli mogą się zmieniać w trakcie działania aplikacji (na przykład gdy tunel się ponownie połączy), dlatego aktualne wartości są dodatkowo utrzymywane jako pliki w /data/env/<VARIABLE_NAME>.txt — SDK IronFlock odczytują je automatycznie.

Jak działają protokoły

HTTP / HTTPS

Dla usług webowych. IronFlock tworzy publiczny adres URL, który przekazuje ruch do lokalnego portu urządzenia. Użytkownicy otwierają URL w przeglądarce.

TCP

Dla protokołów takich jak VNC (pulpit zdalny) lub bezpośrednie połączenia socketowe. IronFlock przydziela port zdalny na serwerze tuneli i udostępnia go aplikacji jako REMOTE_PORT_FOR_<port>.

UDP

Dla protokołów takich jak komunikacja LoRaWAN lub tunele VPN. Podobnie jak w TCP — port zdalny jest przydzielany i udostępniany jako REMOTE_PORT_FOR_<port>.

Osadzanie w boardach

Możesz osadzić tunel zdalnego dostępu urządzenia bezpośrednio w boardzie za pomocą widżetu Embed. Zapewnia to spójne doświadczenie, w którym użytkownicy mogą:

  • Monitorować globalne dane ze wszystkich urządzeń
  • Wchodzić w interakcję z pojedynczymi urządzeniami przez osadzone interfejsy webowe

Wszystko w ramach tego samego dashboardu.

Skonfigurowanie zdalnego dostępu w port-template.yml nie aktywuje tuneli automatycznie. Tylko uprzywilejowani użytkownicy mogą włączać i wyłączać tunele na swoich urządzeniach.

Last updated on