Hallo zusammen Ich benötige Hilfe bei folgender Situation. (Windows XP) Auf PC-A läuft eine Programmiersoftware welche über zwei Ports kommuniziert. Das zu programmierende Gerät ist in einem entfernten Netzwerk. Um es nun zu warten oder zu programmieren wäre eine Lösung eine VPN Verbindung. Ich suche nun eine Alternative. Ein erster Versuch mit einer einfachen Portforwarding Software durch einen Teamviewer VPN Tunnel war nicht zufriedenstellend. Meine Idee war nun mit einer Virutellen Schnittstelle (tun/tap von openvpn) auf Rechner A zu installieren dann auf dem PC-B (welcher im selben Netzwerk ist wie das zu programmierende Gerät) ein Socket Server/Client Programm welches die Daten in empfang nimmt und weiterleitet. So das es aussieht als ob die Programmiersoftware auf PC-B arbeitet. Idea wäre wenn diese Kommunikation über nur einen Port läuft vorzugsweise Port 80. Kennt jeman so eine Software? Ist es überhaupt möglich? Was sagt ihr zu meiner Idee? Andere Lösungen/Ansatze/Gedanken? Vielen Dank
Theoretisch sollten 3 einfache Sachen dafür reichen: - Dateifreigabe (um das Kompilat von PC-A für den Programmier-PC freizugeben) - Die Programmiersoftware, mit der der Programmier-PC den Controller (?) flasht - "Polling-Software", die ständig den Inhalt der Dateifreigabe überprüft, ob eine Änderung des Datums vorliegt. Sähe dann so aus: - Programm wird kompiliert. Kompilat kommt in die Freigabe. Die Freigabeverzeichnisse werden vom "Polling-Programm" sekündlich/minütlich/... überwacht, welches bei einer Datumsdifferenz oder jedwelcher Änderung über einen DOS-Befehl (meist lässt sich über einen Übergabeparameter ein jedes graphische Tool überlisten) den Programmierprozess der Hardware anstößt. Fertig.
@ Johannes scheitert ja schon am 1. Punkt (die 2 Rechner sind nicht im selben Netz) @TO: was spricht gegen ein VPN Verbindung? (ich meine jetzt nicht teamviewer, sondern selber gemacht...) OpenVPN usw. ? sonst eben SSH (das scheint es auch für windows zu geben) da kann man einzelne ports forwarden http://sshwindows.sourceforge.net/information/ interessant wäre jetzt noch, ob es SICHER (also verschlüsselt) sein muss?
Ist der Programmier-PC ein Windows- oder Linux-System? Dann gäbe es noch die Möglichkeit, über ein Skript fürs eMail-Programm die Inhalte der Mail abzufragen. Sollte sich mit einem Outlookmakro oder einem Thunderbird-Skript bewerkstelligen lassen.
1 | if (IncomingMail.Header == *Program*) { execute(flash.exe) } |
Ansonsten: Warum kein FTP? Im Linuxfall: ein kleines Shellskript schreiben, welches alle Minuten die Aktualität der Daten auf einem Server abruft. Liegt eine neue Datei drauf, holt sich das Skript die zu "flashende" Datei (z.b. *.Hex) vom Server und macht dann das Gleiche wie oben beschrieben. Nach der Methode habe ich mal einen Gießroboter übers Internet gesteuert. µC <--- PC (mit Pollprogramm) <-> INTERNET <--- Anwender (Webseite) ... und es hat prächtig funktioniert! ;o)
Martin schrieb: > Das zu programmierende Gerät ist in einem entfernten Netzwerk. > Um es nun zu warten oder zu programmieren wäre eine Lösung eine VPN > Verbindung. Ich suche nun eine Alternative. Ein erster Versuch mit einer > einfachen Portforwarding Software durch einen Teamviewer VPN Tunnel war > nicht zufriedenstellend. > Meine Idee war nun mit einer Virutellen Schnittstelle (tun/tap von > openvpn) auf Rechner A zu installieren dann auf dem PC-B (welcher im > selben Netzwerk ist wie das zu programmierende Gerät) ein Socket > Server/Client Programm welches die Daten in empfang nimmt und > weiterleitet. So das es aussieht als ob die Programmiersoftware auf PC-B > arbeitet. > Idea wäre wenn diese Kommunikation über nur einen Port läuft > vorzugsweise Port 80. Warum soll ein VPN funktionieren wenn die Systeme nicht miteinander reden können weil die in unterschiedlichen Netzen stehen ?
Mir stellt sich erst mal die Frage wie das Netz auf der "Zielseite" aussieht. Das Netz wird ja nicht offen sein sondern durch irgendeine Firewall abgesichert sein. Kann diese Firewall z.B. IPSec, SSL, L2TP. Kann diese z.B. IPSec könntest Du mit einem passenden Client wie von Shrewsoft einen Tunnel aufbauen. Der Vorteil die FW als Gegenstelle zu benutzen ist daß man keinen PC am Remote-Standort benötigt sondern ein Gerät verwendet das "sowieso" immen eingeschaltet ist.
Nachtrag:Die Sache mit dem FTP von Johannes Knöller (anamollo) ist auch nicht schlecht, heutzutage würde ich aber eher SCP oder sFTP verwenden.
Danke erstmal für die vielen Vorschläge. Die Lösungen mit FTP oder Datei Freigabe funktionieren nach meiner Meinung nicht oder nur schlecht da auch Live auf das System geschaut werden möglich sein soll. Das gäbe extrem viele Schreib/Lese Zyklen. VPN ist absolut möglich. Nur leider ist es nicht nur eine Anlage und nicht immer ein Router vor Ort der das kann. Deshalb wäre eine andere Lösung toll. SSH werde ich mir anschauen Danke. Hab schon mal angefangen meine Idee umzusetzten. Kenne mich leider nicht aus mit C# und der asynchronen Programmierung. Bekomme immer den Fehler :"Eine bestehende Verbindung wurde softwaregesteuert.....abgebrochen" Denke es liegt an dem asynchron Ding. Für weiter Ideen mit ich hoffen. Vielen Dank
Martin schrieb: > Andere Lösungen/Ansatze/Gedanken? Programmiersoftware auf PC B laufen lassen und per Remote Desktop (vorzugsweise) oder VNC (wenn es anders nicht geht) darauf zugreifen. Das erfordert einfach nur eine Portweiterleitung auf Port 3389 (RDP) oder 5900 (VNC), und die Software kostet nix. fchk
>VPN ist absolut möglich. Nur leider ist es nicht nur eine Anlage und >nicht immer ein Router vor Ort der das kann. und überall ein anderer Systemadmin, der dir das alles nicht erlauben wird ;-) nachtrag: am einfachsten wäre, wenn sich der PC vom Kunden automatisch zu DIR verbindet .. (z.b. indem ein mitarbeiter dort, openVPN startet usw. )
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.