Linux Rechner über Netzwerk steuern

Message
Author
Sebastian Ude

Re: Linux Rechner über Netzwerk steuern

#16 Post by Sebastian Ude »

Aaaalso Sellmi ...

1.) Wie du weist ist X-Windows-System ein Client/Server-Modell.

2.) Eine X-Anwendung muss nicht auf dem lokalen X-Server ausgegeben werden.

Soweit klar ? Gut <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">.

Nun überlegen wir uns das mal für die Praxis.
Um es nicht zu verkomplizieren, gehen wir davon aus wir hätten zwei Linux-Rechner, auf denen jeweils irgendeine XFree-Version läuft.

Nun startest du auf Rechner 1 netscape.
Selbstverständlich wird das netscape-Fenster dann auch auf Rechner 1 angezeigt.
Wie wir schon am Anfang fest gestellt haben, müsste es aber möglich sein, netscape auf Rechner 1 zu starten, wobei das netscape-Fenster auf Rechner 2 angezeigt wird (und umgekehrt).

Schön, dann werden wir das einmal versuchen.
Zunächst müssen wir dem X-Server auf Rechner 2 sagen, dass er Verbindungen von Rechner 1 annehmen darf.
Wenn das nicht so wäre, könnte Dir ja jeder wenn Du Online bist ein Fenster auf deinen Desktop zaubern.
Wir machen also auf Rechner 2 folgendes: "xhost +192.168.1.1", wobei 192.168.1.1 die IP von Rechner 1 ist. Nun haben wir den X-Server auf Rechner 2 also angewiesen, Verbindungen von Rechner 1 (192.168.1.1) anzunehmen.

Jetzt müssen wir unserem netscape auf Rechner 1 allerdings noch klar machen, dass er seine Fenster auf Rechner 2 darstellen soll. Dies geht generell bei allen X-Anwendungen über die Umgebungsvariable DISPLAY.
Wir gehen mal davon aus, dass auf Rechner 1 eine (ba)sh-Shell läuft (um es nicht zu verkomplizieren). Wir schreiben nun "export DISPLAY=192.168.1.2:0.0". 192.168.1.2 ist logischerweise die IP von Rechner 2.
Wieso "export DISPLAY=" und nicht einfach nur "DISPLAY=" ?. Nun, durch das "export DISPLAY=" ist der Wert der Umgebungsvariablen DISPLAY auch für alle Subshells gesetzt.
Wir könnten jetzt in der selben Shell den netscape (oder jede andere X-Anwendung) starten, und er würde auf Rechner 2 angezeigt.

Nochmal zum mitschreiben:

Wir haben auf Rechner 2 den X-Server angewiesen, Verbindungen von Rechner 1 entgehenzunehmen:

xhost +192.168.1.1 (192.168.1.1 = Rechner 1)

Dann haben wir auf Rechner 1 die DISPLAY-Umgebungsvariable gesetzt und für alle Subshells exportiert:

export DISPLAY=192.168.1.2:0.0 (192.168.1.2 = Rechner 2)

Nun können wir auf Rechner 1 (wohlgemerkt in der selben Shell in der wir die DISPLAY-Umgebungsvariable gesetzt hatten) netscape (oder eine beliebige andere X-Anwendung) starten, und sie würde auf Rechner 2 angezeigt.


Gut, das Prinzip dürfte nun klar sein.
Nun gibt es X-Server auch für Windows (etwas weiter oben lesen), und daher kann man das ganze auch von einem Linux-Rechner auf eine Windows-Kiste machen.
Auch hier bleibt gleich: Die Umgebungsvariable DISPLAY muss auf dem Linux-REchner gesetzt werden. Wie man dem jeweiligen Windows-X-Server klar macht, von dem Linux-Rechner Verbindungen anzunehmen, muss man dann sehen. WinaXe nimmt z.B. soweit ich weis by default von allen Clienten Verbindungen an.


Ich hoffe das war verständlich ...

Jan aka Quest

Re: Linux Rechner über Netzwerk steuern

#17 Post by Jan aka Quest »

@Sebastian: Vielen Dank für die ausführlichen Erklärungen! Ich bin totaler Linux-Neuling und wußte nichts von dieser Art, einen PC fernzusteuern.

Für mich wäre jetzt noch interessant, ob denn der PC1 auch so träge fernzusteuern ist (Bildaufbau), wie es bei VNC der Fall ist? Oder ist das, als ob man direkt am PC1 arbeitet?

Gruß und Dank - Jan

Sebastian Ude

Re: Linux Rechner über Netzwerk steuern

#18 Post by Sebastian Ude »

@ Jan:

Im Gegenteil.
Bei einem 10MBit-Lan merkst du garnicht, dass du nicht lokal arbeitest. Es geht wirklich ziemlich flüssig. Manche Leute behaupten sogar, es sei schneller als lokal ... naja, das ist etwas übertrieben <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">.

Lahm wird es erst, wenn du soetwas über ISDN / 56k Modem machst. Aber auch da gibt es Möglichkeiten (in SSH tunneln und dadurch gleich komprimieren + verschlüsseln).

Post Reply