Jak uruchomić dwie sesje X jednocześnie?

24

Chciałbym uruchomić dwie instancje X serwera jednocześnie.

Jedną z nich byłaby sesja interaktywna z wykorzystaniem myszy i klawiatury podłączonej do komputera. Druga to sesja „wirtualna”, z którą mógłbym się połączyć i korzystać z niej przez sieć.

Innymi słowy, chcę czegoś takiego jak telnet / ssh, który pozwoli mi zalogować się na mojej maszynie Ubuntu z innego miejsca. Chciałbym jednak mieć przynajmniej podstawowy wyświetlacz graficzny po zalogowaniu.

Nathan Osman
źródło
1
Zakładam, że chcesz uruchomić jednocześnie dwóch użytkowników na komputerze?
richzilla,
@rich: Tak, ale oba powinny mieć wyświetlacz graficzny.
Nathan Osman,

Odpowiedzi:

7

Jeśli prowadzisz sesję X w systemie Ubuntu na komputerze A, pojawi się ona na ekranie: 0 ( Ctrl+ Alt+ F7) na A.

Chcesz uruchomić zdalną sesję X z komputera B (na komputerze Lan) bez przerywania bieżącej sesji na A.

Przejdź do pierwszego ekranu konsoli ( Ctrl+ Alt+ F1) zaloguj się na konsoli, a następnie poproś Maszynę B, aby wysłała sesję X do ekranu: na A - tak

u@A:~$  X :1 -query IP-of-B

Xprosi o sesję X, :1mówi o umieszczeniu jej na ekranie 1, -queryprosi o sesję z w tym przypadku adresu IP B

Znajdziesz nową sesję na ekranie: 1 ( Ctrl+ Alt+ F8).

Nie jest to bezpieczne (bez ssh), ale jest szybkie i łatwe dla sieci domowej, gdy dźwięk nie jest wymagany przez połączenie.

Możesz użyć nxclient / server nomachine, co jest w porządku, ale działa w bieżącej sesji na ekranie A: 0 we własnym oknie. Zapewnia obsługę lokalnego dźwięku i lokalnego drukowania - kiedy ostatnio patrzyłem, Firefox nie uruchomiłby się, gdyby dźwięk był włączony.

Zanna
źródło
To zdecydowanie pomaga.
Nathan Osman,
5

ssh -X

Pierwszą i najłatwiejszą opcją byłoby z pewnością „ssh -X”, ale zadziała to tylko wtedy, gdy system, z którym się łączysz, już działa na serwerze X. Załóżmy, że używasz komputera z systemem Ubuntu i chcesz się połączyć z innym komputerem z systemem Ubuntu, możesz wpisać „ssh -X ipaddress” w konsoli. Spowoduje to pozostawienie konsoli, ale po uruchomieniu dowolnej aplikacji korzystającej z X z tej konsoli będzie ona wyświetlana w bieżącej sesji X.

XMing

Jeśli korzystasz z systemu Windows i chcesz rozpocząć sesję X na zdalnym komputerze Ubuntu, możesz użyć XMing. XMing to w zasadzie serwer X do uruchamiania w systemie Windows. Jest dostępny na sourceforge .

Aby korzystać z XMing, XDMCP musi być włączony na twoim komputerze Ubuntu. Można to łatwo zrobić w Ubuntu przed 10.04. W dzisiejszych czasach musisz zaktualizować /etc/gdm/custom.conf w następujący sposób. Najpierw wykonaj kopię zapasową! Nie chcesz tym zepsuć GDM;)

[daemon]
User=gdm
Group=gdm


[security]
DisallowTCP=true

[xdmcp]
Enable=true
DisplaysPerHost=2
HonorIndirect=false
MaxPending=4
MaxSessions=16
MaxWait=30
MaxWaitIndirect=30
PingIntervalSeconds=60
Port=177

[greeter]

[chooser]
Multicast=false

[debug]
Enable=false 
W. Goeman
źródło
+1 Dziękujemy za szczegółowe wyjaśnienie, jak to zrobić - czy inne dystrybucje Linuksa z systemem X będą w stanie wykonać sztuczkę „ssh -X”? Na przykład, jeśli mam skrzynkę Fedory, czy mogę połączyć się z moją maszyną Ubuntu i w ten sposób uruchamiać aplikacje na X? (Łapię tu za właściwą terminologię, ale mi się nie udaje :))
Nathan Osman,
Właśnie to wypróbowałem i działa świetnie.
Nathan Osman
@George: Pamiętaj, że X jest trochę do tyłu. Użytkownik uruchamia serwer lokalnie, z którym łączą się poszczególne aplikacje (klienci).
1
@George: Tak długo, jak w twoim Fedorze działa X serwer, będziesz mógł używać ssh -X. Zasadniczo ssh użyje serwera X na twoim Fedorze, aby pokazać ci aplikacje Ubuntu.
W. Goeman
3

Nie do końca odpowiedź na twoje pytanie, ale ...

Możesz uruchamiać programy X przez ssh, często używam tego, aby dać mi dostęp do chronionych / ograniczonych usług w mojej sieci LAN, kiedy jestem poza domem. Zasadniczo polega to na podłączeniu potoku z twojego komputera do serwera ssh i przekazaniu wyświetlacza z serwera do klienta, ale aplikacja działa na serwerze. Domyślnie klient SSH nie jest skonfigurowany do tego, ale można go włączyć za pomocą -Xopcji. Dawny:

ssh -X user@host firefox

Tak właśnie działa LTSP w dzisiejszych czasach. Możesz być w stanie znaleźć więcej informacji o tym, jak LTSP sobie radzi, gdy zdalnie używasz całej sesji zamiast jednej aplikacji.

LassePoulsen
źródło
3

Właściwie odkryłem inny sposób na osiągnięcie tego: xrdp Zainstaluj xrdp .

xrdpto serwer pulpitu zdalnego dla systemu Linux, który tworzy osobną sesję logowania (z X), do której można uzyskać dostęp za pomocą narzędzia Pulpit zdalny systemu Windows lub innych aplikacji zgodnych z RDP.

Nathan Osman
źródło
1

FreeNX również spełni twoje zadanie.

Z Ubuntu Wiki:

FreeNX to system, który umożliwia dostęp do pulpitu z innego komputera przez Internet. Możesz użyć tego do zalogowania się graficznie na pulpicie ze zdalnej lokalizacji. Jednym z przykładów jego zastosowania byłoby skonfigurowanie serwera FreeNX na komputerze domowym i graficzne logowanie się do komputera domowego z komputera służbowego przy użyciu klienta FreeNX. Komputer przy użyciu klienta FreeNX.

https://help.ubuntu.com/community/FreeNX

LFC_fan
źródło
1

Wygląda na to, że szukasz pakietu serwera VNC. Istnieją dwa rodzaje pakietów serwerów VNC - te, które współużytkują Twój istniejący ekran X i te, które zarządzają oddzielnym pulpitem X do zdalnego użytku. Ten ostatni wydaje się być tym, czego chcesz. Przykłady obejmują vnc4server i tightvncserver / tigervncserver.

Te pakiety pozwalają na uruchomienie dodatkowych wyświetlaczy X w tle. Aby je zobaczyć, używasz przeglądarki / klienta VNC. Istnieje wiele klientów dla Ubuntu i Windows , nie wspominając o Androidzie, PalmOS itp.

aap
źródło