Webserver (Raspberry) über anderen lokalen Webserver über das Internet erreichen

Homofürst

Lt. Junior Grade
Registriert
Feb. 2011
Beiträge
397
Moin,

ich habe einen RaspberryPi mit Kamera und mit motion eine Überwachunskamera eingerichtet, die bei Bewegung ein Video aufnimmt und mir einen Screenshot per Mail zusendet (wen es Interessiert: http://www.instructables.com/id/Raspberry-Pi-as-low-cost-HD-surveillance-camera/&ALLSTEPS).

Ich will nun den Bilderstream von Motion und ein paar Befehle zum Steuern über das Internet erreichen. Ich habe bereits einen anderen Server im lokalem Netz für Owncloud und ähnliches. Dieser Server soll nun auf den Integrierten Kamera-Webserver zugreifen und eine einfache Website mit Bilderstream und Steuerlinks anzeigen. Die Website habe ich schon soweit fertig. Hier ein Screenshot:
Unbenannt.PNG

Und hier der Code:
Code:
<html>

<head>

<title>PiCam</title>

</head>

<body>
	<img src=http://192.168.178.57:8080/ alt="Live-Bild">
	<br>
	<br>
	<a href=http://192.168.178.57:8081/0/detection/status>Status</a><br>
	<br>
	<a href=http://192.168.178.57:8081/0/detection/pause>Erkennung pausieren</a><br>
	<br>
	<a href=http://192.168.178.57:8081/0/detection/start>Erkennung forfahren</a><br>

</body>
</html>

Diese Website liegt in einem Unterverzeichnis auf meinem normalen Webserver, der wie gesagt über das Internet erreichbar ist und über die Links auf den lokalen Raspberry mit der Kamera zugreifen soll. Abgesichert ist das Unterverzeichnis mit einer .htaccess und Digest-Auth.
Soweit funktioniert auch fast alles.

Zu meinem Problem:
Wenn ich auf die Website über die DNS-Internetadresse auf das entsprechende Unterverzeichnis von einem PC im lokalen Netz zugreife (https://akjdfhgkfdg.de/picam/) passt alles. Ist der PC außerhalb des lokalen Netzes (ich teste das immer mit Mobilfunk über das Handy) geht der Zugriff nicht, dann wird der Stream nicht angezeigt und die Steuerung funktioniert nicht.
Vermutlich liegt das daran, dass in der Website lokale Netzadressen stehen. Ich hatte angenommen, dass das geht, weil ab der Stelle die Kommunikation zum Kamera-Server innerhalb des lokalen Netzes stattfindet. Mein Webserver ist also eine Art Proxy. Offensichtlich habe ich mich geirrt.

Jemand eine Idee wie ich das lösen kann?
Habe ich das Problem verständlich dargestellt?

Danke im Voraus.
 
192.168.178.57 kann natürlich nicht gehen. Kannst du ein Portforwarding vom Router Port 8081 auf Port 8081 des RPi machen?
Dann die externe Internetadresse akj...de:8081 und es wird gehen.

Andere Möglichkeit: server side scripting (php oder so) und die Daten die du willst vom RPi auf den normalen Webserver laden. Vorteil: nicht noch ein zusätzlicher Webserver im Internet via Portforwarding (der 8081 Server).
 
Danke schon mal. Genau, einen zweiten Server, der über das Internet erreichbar ist, will ich eben vermeiden. Der andere Server ist mit ssl und digest-auth bereits eingerichtet, weshalb ich das darüber machen will.
Ich werde mir mal Server-Side-Scripting anschauen. Hört sich aber kompliziert an.
 
Ich werde mir mal Server-Side-Scripting anschauen. Hört sich aber kompliziert an.
Das ist schlicht Programmieren.
 
Eben. Von PHP und Konsorten habe ich kein Plan.

Dachte eher an so eine Lösung: https://thomas-leister.de/internet/apache-reverse-proxy-mit-ssl-support-einrichten/
Aber da werden ja einfach alle Anfragen umgeleitet.

Edit: ich hab es jetzt mit dieser Art gelöst: https://thomas-leister.de/internet/...rt-weiterleiten-z-b-bei-etherpad-ghost-searx/

So sieht mein zusätzlicher virtueller Host aus:

<VirtualHost *:80>

ServerName picam.xxxxx.tld

ProxyPreserveHost On
ProxyRequests Off
ProxyVia Off
ProxyPass / http://192.168.178.57:8080/
ProxyPassReverse / http://192.168.178.57:8080/

</VirtualHost>

Leider kann man dann direkt auf dem Stream zugreifen (über picam.xxxxx.tld) und die Absicherung über die .htaccess kann so umgangen werden. Zum Glück gibt es eine zusätzliche Authentifizierung bei Motion.
 
Zuletzt bearbeitet:
Zurück
Oben