VNC automatisch starten
VNC automatisch starten
Hallo zusammen,
ich hab am Wochenende eine Prerelease von Debian Sarge installiert.
Um remote auf KDE zuzugreifen, hab ich VNC über den Paketmanager nachträglich installiert.
Den VNC-Server starte ich über folgenden Befehl:
vncserver -depth 16 -geometry 800x600
Das ist ja auch kein Problem, jedoch nach jedem Neustart muss ich über ssh den Server wieder neu starten.
Wie kann ich es machen, damit er automatisch VNC nach einem Neustart startet?
Danke, gruß Maetzi
ich hab am Wochenende eine Prerelease von Debian Sarge installiert.
Um remote auf KDE zuzugreifen, hab ich VNC über den Paketmanager nachträglich installiert.
Den VNC-Server starte ich über folgenden Befehl:
vncserver -depth 16 -geometry 800x600
Das ist ja auch kein Problem, jedoch nach jedem Neustart muss ich über ssh den Server wieder neu starten.
Wie kann ich es machen, damit er automatisch VNC nach einem Neustart startet?
Danke, gruß Maetzi
Eine Variante währe ein entsprechenes Runlevel Skript im Verzeichnis /etc/init.d/ zu erzeugen. Ein Grundgerüst für ein Skript findes du in der Datei /etc/init.d/skeleton .
Wenn du allerdings als Benutzer beim Starten deiner KDE Session automatisch VNC aktiven willst, dann sollte ein kleines Start Skript im Verzeichnis ~/.kde/Autostart liegen.
eagle
Wenn du allerdings als Benutzer beim Starten deiner KDE Session automatisch VNC aktiven willst, dann sollte ein kleines Start Skript im Verzeichnis ~/.kde/Autostart liegen.
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams
Hi,
ich hab im Netz ein init-Skript für den VNC-Server gefunden. Könnte bitte einmal jemand von euch sich das anschauen und mir sagen ob das funktionieren könnte. Okay, was noch fehlt sind dann die Verknüpfungen in den Runlevels. Muss eigentlich immer ein Start und Stop im Runlevel für ein Prozess enthalten sein?
Danke, gruß Maetzi
ich hab im Netz ein init-Skript für den VNC-Server gefunden. Könnte bitte einmal jemand von euch sich das anschauen und mir sagen ob das funktionieren könnte. Okay, was noch fehlt sind dann die Verknüpfungen in den Runlevels. Muss eigentlich immer ein Start und Stop im Runlevel für ein Prozess enthalten sein?
Danke, gruß Maetzi
Code: Alles auswählen
#! bin/bash
case "$1" in
start)
vncserver :1 -depth 16 -geometry 800x600
echo "vnc gestartet"
;;
case "$1" in
stop)
vncserver -kill :1
echo "vnc gestoppt"
;;
*)
echo "nur start oder stop bitte"
;;
esac
exit 0
ich würde den vncserver nicht unter root laufen lassen.
D.h.:
D.h.:
Code: Alles auswählen
#! bin/bash
USER=myname
DISPLAY=:1
case "$1" in
start)
echo "starte vncserver"
su - "$USER" -c "vncserver$DISPLAY -depth 16 -geometry 800x600"
;;
case "$1" in
stop)
echo "stoppe vncserver"
su - "$USER" -c "vncserver -kill $DISPLAY"
;;
*)
echo "nur start oder stop bitte" >&2
exit 1
;;
esac
exit 0
Das wuerde aber bedeuten, dass der VNC Server nur gestartet wird, wenn KDE vorher gestartet wird. Dem OP war es aber bereits zu viel, sich per SSH einzuloggen, ich denke, dann will er noch weniger vorher das KDE starten, um danach per VNC connecten zu koenneneagle hat geschrieben:Wenn du allerdings als Benutzer beim Starten deiner KDE Session automatisch VNC aktiven willst, dann sollte ein kleines Start Skript im Verzeichnis ~/.kde/Autostart liegen.
Ich starte den VNC Server bei mir ueber den inetd und das funktioniert super. Hab 2 Instanzen davon konfiguriert (mit unterschiedlicher Geometrie) und kann mich entweder auf Port 5900 (800x600) oder 5901 (950x700) verbinden, um einen der beiden Server bei Bedarf zu starten.
Durch Nutzung der "-once" Option des VNC Servers kann man auch sicherstellen, dass niemand eine VNC Sitzung startet, diese vergisst und nicht beendet, so dass sie evtl. durch andere uebernommen werden kann. Der VNC Server ist so konfiguriert, dass er sich mit dem lokal laufenden Display-Manager (wdm) verbindet. Dadurch ist sichergestellt, dass jeder VNC Nutzer sich mit Username und Passwort identifizieren muss.
Als Kroenung des Ganzen tunnel ich den VNC Traffic durch einen SSH Tunnel
Hi QT,
kannst du mir bitte dein Eintrag in die inetd-Datei posten. Hast schon recht. Ich will mich nicht erst an KDE anmelden. Deine Lösung finde ich viel besser. Bei mir läuft als Displaymanager der von Gnome (gdm).
Ich es auch möglich, dass du die Config von VNC anhängst.
Wäre echt cool.
Danke, gruß Maetzi
kannst du mir bitte dein Eintrag in die inetd-Datei posten. Hast schon recht. Ich will mich nicht erst an KDE anmelden. Deine Lösung finde ich viel besser. Bei mir läuft als Displaymanager der von Gnome (gdm).
Ich es auch möglich, dass du die Config von VNC anhängst.
Wäre echt cool.
Danke, gruß Maetzi
Leider kann ich meinen eigenen Artikel zu dem Thema hier im Forum nicht mehr finden. Die "eigene Beitraege" Funktion ist leider deaktiviert bzw. es erscheint nur 1 Seite der eigenen Beitraege und daher kann ich ihn derzeit nicht finden.
Egal, die Grundlage fuer meine Vorgehensweise bildete ein Artikel des LinuxMAG [1] und ich habe das nur etwas abgeaendert und angepasst und dazu noch die Sache mit einem SSH Tunnel eingerichtet, um die VNC Server vor unbefugter Nutzung zu schuetzen. Den VNC Server kann man derzeit nur via SSH bei mir starten, das erhoeht die Sicherheit sehr, denn erstens kommen nur Leute ran, die einen lokalen Account haben und zweitens werden die Anmeldedaten beim Anmelden zum Display-Manager verschluesselt uebertragen.
Schau Dir einfach mal den Artikel an und bei Fragen melde Dich wieder.
Gruesse.
[1] http://www.linux-mag.com/content/view/1298/2205/
EDIT: Link aktualisiert.
Egal, die Grundlage fuer meine Vorgehensweise bildete ein Artikel des LinuxMAG [1] und ich habe das nur etwas abgeaendert und angepasst und dazu noch die Sache mit einem SSH Tunnel eingerichtet, um die VNC Server vor unbefugter Nutzung zu schuetzen. Den VNC Server kann man derzeit nur via SSH bei mir starten, das erhoeht die Sicherheit sehr, denn erstens kommen nur Leute ran, die einen lokalen Account haben und zweitens werden die Anmeldedaten beim Anmelden zum Display-Manager verschluesselt uebertragen.
Schau Dir einfach mal den Artikel an und bei Fragen melde Dich wieder.
Gruesse.
[1] http://www.linux-mag.com/content/view/1298/2205/
EDIT: Link aktualisiert.
Zuletzt geändert von QT am 22.07.2005 20:21:41, insgesamt 1-mal geändert.
Hi QT,
ich hab gestern versucht den unter deinem Link erklärten VNC-Server zu konfigurieren. Nun leider hat es nicht ganz funktioniert.
Anbei eine kurze Erläuterung was ich alles gemacht hab. Vielleicht hab ich ja etwas vergessen:
Schritt 1:
In der Datei /etc/X11/gdm.conf im Bereich xdmcp auf enable=true gesetzt
Schritt 2:
In der Datei /etc/services folgenden Eintrag hinzugefügt: vnc-800x600 5900/tcp
Schritt 3:
In der Datei /etc/inetd.conf folgendes eingetragen:
vnc-800x600 stream tcp nowait nobody /usr/sbin/tcpd /usr/X11R6/bin/Xvnc :1 -inetd
-query localhost -geometry 800x600 -depth 24 -once -fp unix/:7100
Dabei hat ich die in der Doku angegebenen ganz rechten Back-Slashes nicht mit eingetragen (ich glaub die sollen nur ein Zeilenumburch symbolisieren).
Nach einem Neustart des Rechners war keine Fehlermeldung von VNC beim Booten zu erkennen.
Wenn ich mich jetzt mit einem VNC-Viewer von Windows aus, auf den Rechner verbinde, erhalte ich folgende Fehlermeldung:
"Connection failed - Error reading Protocol Version ..."
Versuch ich es mit localhost von Linux entsteht folgende Meldung:
"ReadFromRFBServer:rdr::EndofStream"
Leider find auch mit "ps ax" kein Prozess der von VNC sein könnte. Er müsste jedoch laufen, dass sagt er mir zumindestens wenn ich versuche auf der Arbeitsfläche 1 ein neuen VNC-Server zu starten.
Was hab ich denn falsch gemacht?
Danke, gruß Maetzi.
ich hab gestern versucht den unter deinem Link erklärten VNC-Server zu konfigurieren. Nun leider hat es nicht ganz funktioniert.
Anbei eine kurze Erläuterung was ich alles gemacht hab. Vielleicht hab ich ja etwas vergessen:
Schritt 1:
In der Datei /etc/X11/gdm.conf im Bereich xdmcp auf enable=true gesetzt
Schritt 2:
In der Datei /etc/services folgenden Eintrag hinzugefügt: vnc-800x600 5900/tcp
Schritt 3:
In der Datei /etc/inetd.conf folgendes eingetragen:
vnc-800x600 stream tcp nowait nobody /usr/sbin/tcpd /usr/X11R6/bin/Xvnc :1 -inetd
-query localhost -geometry 800x600 -depth 24 -once -fp unix/:7100
Dabei hat ich die in der Doku angegebenen ganz rechten Back-Slashes nicht mit eingetragen (ich glaub die sollen nur ein Zeilenumburch symbolisieren).
Nach einem Neustart des Rechners war keine Fehlermeldung von VNC beim Booten zu erkennen.
Wenn ich mich jetzt mit einem VNC-Viewer von Windows aus, auf den Rechner verbinde, erhalte ich folgende Fehlermeldung:
"Connection failed - Error reading Protocol Version ..."
Versuch ich es mit localhost von Linux entsteht folgende Meldung:
"ReadFromRFBServer:rdr::EndofStream"
Leider find auch mit "ps ax" kein Prozess der von VNC sein könnte. Er müsste jedoch laufen, dass sagt er mir zumindestens wenn ich versuche auf der Arbeitsfläche 1 ein neuen VNC-Server zu starten.
Was hab ich denn falsch gemacht?
Danke, gruß Maetzi.
Ich vermute mal, es liegt an der fp Option. Nimm die mal raus und versuch es dann nochmal. Bei mir sieht es eigentlich ähnlich aus wie bei Dir.maetzi hat geschrieben:Schritt 3:
In der Datei /etc/inetd.conf folgendes eingetragen:
vnc-800x600 stream tcp nowait nobody /usr/sbin/tcpd /usr/X11R6/bin/Xvnc :1 -inetd
-query localhost -geometry 800x600 -depth 24 -once -fp unix/:7100
Code: Alles auswählen
$ grep Port /etc/X11/wdm/wdm-config
DisplayManager.requestPort: 177
$ grep vnc /etc/services
vnc-800x600 5900/tcp
vnc-950x700 5901/tcp
$ grep vnc /etc/inetd.conf
vnc-800x600 stream tcp nowait nobody /usr/sbin/tcpd /usr/X11R6/bin/Xvnc :1 -inetd -query localhost -geometry 800x600 -depth 24 -once
vnc-950x700 stream tcp nowait nobody /usr/sbin/tcpd /usr/X11R6/bin/Xvnc :1 -inetd -query localhost -geometry 950x700 -depth 24 -once
Achja, der EIntrag in der inetd.conf muss natürlich aus nur 1 Zeile bestehen!
Hi QT,
danke für deine Antwort. Der VNC-Dienst läuft jetzt soweit. Wenn ich mich jedoch mit dem VNC-Viewer verbinde, bekomm ich nur den Bildschirm vom X-Server (grauer Bildschirm mit X-Cursor) angezeigt und nicht den gdm Anmeldebildschirm.
Ich hoffe es kann mir jemand bei diesem Problem helfen.
Danke, gruß Maetzi
danke für deine Antwort. Der VNC-Dienst läuft jetzt soweit. Wenn ich mich jedoch mit dem VNC-Viewer verbinde, bekomm ich nur den Bildschirm vom X-Server (grauer Bildschirm mit X-Cursor) angezeigt und nicht den gdm Anmeldebildschirm.
Ich hoffe es kann mir jemand bei diesem Problem helfen.
Danke, gruß Maetzi
Das klingt danach, als hätte der VNC Probleme, sich mit dem GDM zu verbinden. Steht denn etwas in /var/log/gdm? Alternativ mal "ls -ltr /var/log/" machen und dann in die aktuellen Dateien mal reinschauen. Ich hatte eben, als ich meinen VNC Link von remote über meine DSL Strecke nutzen wollte, ein ähnliches Problem. Grund bei mir war, dass der wdm nicht lief. Lies sich dann schnell beheben
Ansonsten hab ich da nun auch keine bessere Idee. Such mal in Deinen Logs, ob sich da ein Hinweis finden lässt.....
Ansonsten hab ich da nun auch keine bessere Idee. Such mal in Deinen Logs, ob sich da ein Hinweis finden lässt.....
Sorry, geht jetzt.
Hab ausversehen in der Datei /etc/inetd.conf die Option "-query localhost" vergessen.
Ich hab jetzt nur noch ein Problem mit dem SSH-Tunnel.
In den meisten Dokumentation steht, dass ich den Befehl "ssh -L 5903:localhost:5901 benutzer@IP" eingeben soll. Windows hat aber jedoch standardmäßig kein mitgelieferten SSH-Client.
Geht das überhaupt, dass ich eine SSH-Verschlüsselte Remote-Verbindung von Windows aus aufbauen kann?
Hab ausversehen in der Datei /etc/inetd.conf die Option "-query localhost" vergessen.
Ich hab jetzt nur noch ein Problem mit dem SSH-Tunnel.
In den meisten Dokumentation steht, dass ich den Befehl "ssh -L 5903:localhost:5901 benutzer@IP" eingeben soll. Windows hat aber jedoch standardmäßig kein mitgelieferten SSH-Client.
Geht das überhaupt, dass ich eine SSH-Verschlüsselte Remote-Verbindung von Windows aus aufbauen kann?
Prima, dass es nun geht!
Ja, das mit dem Portforwarden geht wunderbar mit PuTTY. Ich forwarde aber nicht port 5903 auf remote 5901 sondern auch lokal 5901 auf remote 5901. In PuTTY kann man das unter den SSH Optionen einstellen. Sobald das Portforwarding eingerichtet ist und Du mit PuTTY eingeloggt bist, kannst Du dann eine VNC Verbindung auf host localhost:1 starten. Versuche das mal......
Ja, das mit dem Portforwarden geht wunderbar mit PuTTY. Ich forwarde aber nicht port 5903 auf remote 5901 sondern auch lokal 5901 auf remote 5901. In PuTTY kann man das unter den SSH Optionen einstellen. Sobald das Portforwarding eingerichtet ist und Du mit PuTTY eingeloggt bist, kannst Du dann eine VNC Verbindung auf host localhost:1 starten. Versuche das mal......
Prima, dass nun alles klappt und auch dass Du scheinbar rundum zufrieden bist mit der vorgschlagenen Methode! Ich finde diese Art und Weise den VNC zu betreiben einfach genial. Er laeuft nur bei Bedarf (via inetd), man kann verschiedene Aufloesungen hinterlegen, man MUSS sich am DM anmelden mit User und Passwort, durch die once Option kann es nicht mehr passieren, dass man VNC Sitzungen vergisst und diese weiterlaufen und zu guter letzt kann man es so einrichten, dass der komplette VNC Traffic durch den SSH Tunnel geht. IMO genial!
Jedenfalls 1000mal besser als irgendein Init-Script oder so....
Jedenfalls 1000mal besser als irgendein Init-Script oder so....
ich würde auch gerne diesen artikel lesen und nach machen!QT hat geschrieben:Leider kann ich meinen eigenen Artikel zu dem Thema hier im Forum nicht mehr finden. Die "eigene Beitraege" Funktion ist leider deaktiviert bzw. es erscheint nur 1 Seite der eigenen Beitraege und daher kann ich ihn derzeit nicht finden.
Egal, die Grundlage fuer meine Vorgehensweise bildete ein Artikel des LinuxMAG [1] und ich habe das nur etwas abgeaendert und angepasst und dazu noch die Sache mit einem SSH Tunnel eingerichtet, um die VNC Server vor unbefugter Nutzung zu schuetzen. Den VNC Server kann man derzeit nur via SSH bei mir starten, das erhoeht die Sicherheit sehr, denn erstens kommen nur Leute ran, die einen lokalen Account haben und zweitens werden die Anmeldedaten beim Anmelden zum Display-Manager verschluesselt uebertragen.
Schau Dir einfach mal den Artikel an und bei Fragen melde Dich wieder.
Gruesse.
[1] http://www.linux-mag.com/cgi-bin/printe ... ticle=guru
http://www.linux-mag.com/content/view/1298/2205/d4rkm3n hat geschrieben:ich würde auch gerne diesen artikel lesen und nach machen!
Beim linux-mag.com scheint eine Reorganisation stattgefunden zu haben und daher funktionierte der alte Link nicht mehr. Aber auf die Hauptseite gehen und dort in die Suchmaske 'VNC' einzutippen, hat sofort den neuen Ort zum Vorschein gebracht
Moin!d4rkm3n hat geschrieben:danke! kannst du mir auch erklären wie das mit den shh-tunnel geht? das wäre sehr interessant für mich,da ich sehr viel mit ssh arbeite(n werde).
Das ist doch in diesem Thread hier erklärt worden. Am besten, Du fängst einfach mal damit an, das zu versuchen und wenn es Probleme gibt, meldest Du Dich wieder
Bring erstmal das mit dem VNC zum Laufen und dann ist die SSH Geschichte wirklich nicht sonderlich schwer. Du musst einfach nur die passenden Ports tunneln und an Deinem VNC viewer statt den remote Hostnamen halt localhost verwenden.
HTH.
Das geht so, wie ich es hier im Thread erklärt hatte. Du musst die passenden Ports forwarden und dann am VNC Viewer in Windows als Host den 'localhost' eintragen.d4rkm3n hat geschrieben:ok ok ich habe vnc jetzt am laufen (einwandfrei), aber wie kann ich jetzt von windows aus druch den ssh tunnel auf vnc zurgreifen?
http://www.debianforum.de/forum/viewtop ... 725#216725