
Ich habe ein Problem mit der Einrichtung meines Netzwerks. Es funktioniert fast ... aber nicht ganz :)
Ich möchte Zugriff auf die Kamera im Gebäude auf dem Land haben. Ich habe Zugriff auf das Internet ohne öffentliche IP, also habe ich beschlossen, VPN zu erstellen. Im Haus auf dem Land habe ich einen RaspberryPI (VPN-Client) und einen LTE-Router (Huawei B315), die mit der IP-Kamera verbunden sind. In meinem Haus, wo ich ein Modem mit öffentlicher IP habe, habe ich einen weiteren RPI (VPN-Server). VPN ist im Routing-Modus (RPIs erstellen separate Netzwerke).
Um es zusammenzufassen:
- Gateway - Modem bei mir zu Hause
- RPI1 – VPN-Server mit dem Modem bei mir zu Hause verbunden (IP: eth0-192.168.0.6 (lokales Netzwerk), tun0-10.8.0.1 (VPN-Netzwerk))
- PRI2 – VPN-Client mit Modem im anderen Haus verbunden (IP: eth0-192.168.0.100, tun0-10.8.0.2)
- Kamera – Planet ICA-4150 (mit Active-X-Weboberfläche) – verbunden mit Modem im anderen Haus (IP: 192.168.0.10)
VPN funktioniert – ich kann beide RPIs gegenseitig anpingen und von meinem Haus aus per SSH zu RPI1 und dann zu RPI2 gelangen.
Ich möchte die Weboberfläche der Kamera folgendermaßen öffnen können: example.ddns.net:9000. DDNS ist eingerichtet und funktioniert.
Auf meinem Hausmodem habe ich Port 9000 von außen an die lokale IP 192.168.0.6:9000 (RPI1) weitergeleitet.
Meine iptables-Einstellungen: RPI1:
iptables -A PREROUTING -t nat -p tcp --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
iptables -A PREROUTING -t nat -p udp --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
iptables -A FORWARD -p tcp -d 10.8.0.2 --dport 9000 -j ACCEPT
iptables -A FORWARD -p udp -d 10.8.0.2 --dport 9000 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
RPI2:
iptables -A PREROUTING -t nat -p tcp --dport 9000 -j DNAT --to-destination 192.168.0.10:80
iptables -A PREROUTING -t nat -p udp --dport 9000 -j DNAT --to-destination 192.168.0.10:80
iptables -A FORWARD -p tcp -d 192.168.0.10 --dport 80 -j ACCEPT
iptables -A FORWARD -p udp -d 192.168.0.10 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
Wenn ich die richtige Adresse in den Browser eingebe, kann ich die Weboberfläche sehen, kann mich aber nicht anmelden. Natürlich kann ich mich anmelden, wenn mein Laptop lokal mit der Kamera verbunden ist. Und ich habe auch experimentiert, indem ich die Kamera an das LAN in meinem Haus angeschlossen und einen Port in meinem Hausmodem direkt zur Kamera exportiert habe, und das funktioniert auch, aber nur, wenn ich sowohl TCP- als auch UDP-Ports umleite. Ich kann mich auch nicht anmelden, wenn ich 192.168.0.6:9000 in den Browser von meinem lokalen Heimnetzwerk eingebe.
Ich habe auch versucht, Port 9000 auf 24000 zu ändern, ohne Erfolg.
Hat jemand eine Idee, was ich falsch mache? Vielleicht habe ich in iptables etwas übersehen?
Antwort1
Ich denke, das liegt daran, dass Sie die Webseite über Port 9000 in Ihrem Browser abrufen, die Kamera, die den Server hostet, jedoch eine Anforderung über Port 80 sieht. Wenn also die Post-Aktion eine absolute URL eingibt, wird sie an Port 80 gesendet. Sie können dies auf der Registerkarte „Netzwerke“ Ihres Browsers überprüfen. Wenn dies der Fall ist, fügen Sie ein iptable-Dnat für die Ziel-IP und den Dport 80 hinzu.