TL; DR : Ich suche ein Skript oder einen Cron-Job, der regelmäßig auf einem Linux-Host (Fedora auf Himbeer-Pi) ausgeführt wird und prüft, ob im Router noch eine Portweiterleitungsregel vorhanden ist, und füge sie hinzu, wenn dies nicht der Fall ist . Ziel ist es, von jedem Rechner im Internet außerhalb meines Heimnetzwerks über SSH, VNC und das Übertragungs-Webinterface immer auf den Himbeer-Pi-Linux-Host zuzugreifen. Das Setup ist unten angegeben:
Router :
Beetel 440Tx1 ADSL2 Router + Modem + WLAN.
Setup :
Der Router ist mit dem Internet verbunden (ISP Broadband) und verfügt über eine dynamische externe IP. Es bietet meinen Computern ein privates Heimnetzwerk mit den internen IP-Adressen 192.168.xy, die auch als DHCP fungieren.
Gastgeber :
Ein Himbeer-Pi-ARM-Host mit Fedora Linux, der die ganze Zeit über mit SSH-, VNC- und Transmission-Daemon-Servern ausgeführt wird und beim Booten gestartet wird. Es hat auch den dyndns-freien DUC (Dynamic Update Client) von no-ip.com, der routinemäßig die externe IP überprüft und sie an den Host-String bindet. So kann ich die externe IP meines Routers immer durch Auflösen meines dyndns-Strings wie myrouter.no-ip.org finden . Der pi hat eine statische interne IP wie 192.168.1.z.
Port-Weiterleitung :
Sie müssen sich nur dann mit der GUI / dem Browser mit den werkseitigen Anmeldeinformationen beim Router anmelden, wenn Sie über ein Ethernet-Kabel oder ein passwortgeschütztes Wi-Fi-Netzwerk mit diesem Netzwerk verbunden sind
http://192.168.1.1/html/index1.html
Ich richte die Regel ein, indem ich mich anmelde, um Datenverkehr an den Ports 22, 5900, 9091 der externen IP an die entsprechenden Listener-Programme (sshd, vncserver, transmission-daemon) auf dem pi unter 192.168.1.z weiterzuleiten.
Problem :
Dieser Router verliert die oben genannte Portweiterleitungsregel, wenn er (der Router) neu gestartet wird, oder selbst wenn die Stromversorgung kurzzeitig ansteigt und die USV kurz einspringen muss, und erhält normalerweise dynamisch eine andere externe IP von meinem ISP.
Anforderung :
Ein Skript oder ein Cron-Job, der auf meinem Fedora-Linux-Pi ausgeführt werden kann und der sich bei meinem Router anmelden und in regelmäßigen Abständen die Existenz dieser Portweiterleitungsregel abfragen und diese erstellen kann, wenn sie fehlt. Hilfe geschätzt.
Antworten:
MiniUPnP ist ein Befehlszeilen-UPnP-Client, mit dem Sie die Portweiterleitung aktivieren können. Die Quelle ist verfügbar, sodass Sie sie auf dem Pi kompilieren können sollten.
Ich denke, das ist die Syntax, die Sie benötigen, aber ich habe keine Maschine, auf der ich sie testen kann. Sie würden einfach Folgendes in ein Skript einfügen, das die uPnP-Ports für Sie einrichtet
quelle
@reboot <cmd>
in Ihrem Crontab verwendenifconfig ...
Teil hat bei mir nicht funktioniert, also habe ichifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
gemäß dieser Antwort verwendet .