GUI-Programm im Netzwerk



  • Hallo.
    Ich habe eine Frage zu folgenden Situation: Es gibt 2 Linux-Rechnern in einem Netwerk auf einem läuft X-Server(Rechner A) auf dem andren(Rechner 😎 nicht.
    Jetzt gibt es auf dem Rechner B ein Programm das auf dem Rechner B laufen muss aber X-Server braucht (halt ein GUI-Programm).
    Die Frage ist jetzt ist es irgendwie möglich das dieses Programm den X-Server auf dem Rechner A benutzt ?

    Ich hoffe, ich habe das Problem verständlich dargelegt.
    Ich würde mich über jede Hilfestellung freuen.



  • Marcin schrieb:

    Die Frage ist jetzt ist es irgendwie möglich das dieses Programm den X-Server auf dem Rechner A benutzt ?

    Klar, X ist netzwerkfähig.
    Rechner A für Zugriff von B freigeben (xhost hostb) und auf Rechner DISPLAY=hosta:0 oä machen und das Programm dann starten.

    Oder via ssh von Rechner A aus:

    ssh -CX user@hostB
    [Passwort eingeben]
    starte_meinprogramm
    


  • Vielen Dank für Antwort.
    Also über ssh funktioniert es problemlos.
    Die andere Methode habe ich noch nicht hinbekommen, das Programm meldet
    Gtk-WARNING **: cannot open display, aber das ist mir momentan nicht so wichtig.
    Noch mal danke.



  • ssh ist vermutlich eh günstiger.
    Via X sollte es so gehen:

    auf Rechner A:

    xhost hostb
    echo $DISPLAY
    

    auf Rechner B:

    export DISPLAY=hosta:DISPLAYNUMMER
    

    (Wobei DISPLAYNUMMER natürlich der Zahl aus dem "echo $DISPLAY" oben entspricht.)



  • Oh, btw, falls Dich das interessiert, kannst Du Dir natürlich auch noch den man: lbxproxy(1) ansehen, der kann ganz praktisch sein.



  • Also ich habe es so gemacht:
    Rechner A hat Adresse 192.168.0.2, Rechner B 192.168.0.1.

    Zugriff für Rechner B freigegeben:

    @192.168.0.2:~> xhost 192.168.0.1
    192.168.0.1 being added to access control list /*ok*/
    

    Sich vergewissert das DISPLAY 0.0 ist

    @192.168.0.2:~> echo $DISPLAY
    :0.0          /*ok*/
    

    über ssh auf dem Rechner B eingeloggt:

    @192.168.0.2:~> ssh -l root 192.168.0.1
    

    DISPLAY Variable gesetzt.

    @192.168.0.1:~> export DISPLAY=192.168.0.2:0.0
    

    Versucht Programm zu starten

    @192.168.0.1:~> ./main
    

    Leider kein Erfolg gehabt

    Gtk-WARNING **: cannot open display:
    

    lbxproxy reagiert auch ähnlich:

    @192.168.0.1:~> lbxproxy -display 192.168.0.2:0.0
    
    Fatal lbxproxy error: could not connect to display '192.168.0.2:0.0'
    

    Also irgend einem Grund funktioniert es nicht.
    Vielleicht deshalb weil die Rechner über einen Router mit der Adresse 192.168.0.253 verbunden sind, aber das scheint sonst kein Problemm zu sein ssh funktioniert , nfs auch.
    Naja, dann werde ich vorerst bei ssh bleiben.



  • Oder du startest SSH mit X Forewarding.

    Einfach SSH mit dem Parameter -X starten und dann das Programm.

    ssh -X root@192.168.0.1
    


  • besser ssh -Y



  • ProgChild schrieb:

    Oder du startest SSH mit X Forewarding.

    Einfach SSH mit dem Parameter -X starten und dann das Programm.

    ssh -X root@192.168.0.1
    

    Habe ich am 12. Juli 2006 um 23:14 schon vorgeschlagen. 😉

    edit: btw, "PermitRootLogin yes" ist böse.



  • @ProgChild
    Danke, aber wie gesagt über ssh wurde schon vorgeschlagen und geht es, nur mit der zweiten Methode klappte es nicht.



  • nman schrieb:

    ProgChild schrieb:

    Oder du startest SSH mit X Forewarding.

    Einfach SSH mit dem Parameter -X starten und dann das Programm.

    ssh -X root@192.168.0.1
    

    Habe ich am 12. Juli 2006 um 23:14 schon vorgeschlagen. 😉

    edit: btw, "PermitRootLogin yes" ist böse.

    Bei mit klappt X11 erst seit heute wieder... Habs gestern von der Console aus übersehen...



  • Marcin schrieb:

    nur mit der zweiten Methode klappte es nicht.

    Hm, das kann gut sein, vor ein paar X-Versionen hat sich mit dem Sicherheitsmodell ein bisschen was geändert. Versuch mal (nur zum Testen), die Zugriffskontrollen im LAN ganz auszuschalten, via "xhost +".

    ProgChild: Kein Problem, wollte nur nicht als "ssh -X"-Nichtkenner dastehen. 😉


Anmelden zum Antworten