TL; DR : Szukam skryptu lub zadania cron, które będą okresowo uruchamiane na hoście Linux (fedora na Raspberry pi), który sprawdzi, czy reguła przekierowania portów nadal istnieje w routerze i doda go, jeśli nie jest . Celem jest zawsze mieć dostęp do hosta Raspberry Pi Linux przez SSH, VNC i interfejs sieci transmisyjnej, z dowolnej maszyny w Internecie poza moją siecią domową. Konfiguracja jest podana poniżej:
Router :
Beetel 440Tx1 ADSL2 router + modem + Wi-Fi.
Konfiguracja :
Router jest podłączony do Internetu (ISP Broadband) i ma dynamiczny zewnętrzny adres IP. Zapewnia prywatną sieć domową moim komputerom z wewnętrznymi adresami IP 192.168.xy, działając również jako DHCP.
Host :
Raspberry pi ARM host z Fedorą Linux, działający cały czas z serwerami ssh, vnc, demonami transmisji uruchomionymi w czasie uruchamiania. Ma również no-ip.com dyndns wolnego DUC (klient aktualizacji dynamicznej), który rutynowo sprawdza zewnętrzny adres IP i wiąże go z łańcuchem hosta. Dlatego zawsze mogę znaleźć zewnętrzny adres IP routera, rozwiązując ciąg znaków dyndns, taki jak myrouter.no-ip.org . Pi ma statyczny wewnętrzny adres IP, taki jak 192.168.1.z.
Przekazywanie portów :
Musisz zalogować się do routera za pomocą graficznego interfejsu użytkownika / przeglądarki z fabrycznymi poświadczeniami tylko wtedy, gdy jest podłączony do tej sieci za pomocą kabla Ethernet lub Wi-Fi chronionego hasłem
http://192.168.1.1/html/index1.html
Konfiguruję regułę, logując się, aby przekazywać dowolny ruch na portach 22, 5900, 9091 w zewnętrznym adresie IP do odpowiednich programów nasłuchujących (sshd, vncserver, transmisja-demon) na pi pod 192.168.1.z.
Problem :
Router traci powyższą zasadę przekierowania portów, gdy jest ponownie uruchamiany (router), a nawet jeśli występuje gwałtowny wzrost energii elektrycznej, a UPS musi chwilowo wkroczyć i zwykle dynamicznie otrzymuje inny zewnętrzny adres IP.
Wymagania :
Zadanie skryptu lub crona, które można uruchomić na moim fedora linux pi, które może zalogować się do mojego routera i okresowo sprawdzać, czy istnieje reguła przekierowania portów i utworzyć ją, jeśli jej brakuje. Pomoc doceniona.
Odpowiedzi:
MiniUPnP to klient UPnP z linii poleceń, który umożliwia włączenie przekierowania portów. Źródło jest dostępne, więc powinieneś być w stanie skompilować go do Pi.
Myślę, że jest to składnia, której potrzebujesz, ale nie mam komputera do jej przetestowania. Po prostu umieściłbyś w skrypcie następujące ustawienia, które skonfigurowałyby porty uPnP
źródło
@reboot <cmd>
w swoim crontabifconfig ...
część nie działa na mnie tak kiedyśifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
, jak na tę odpowiedź .