Nie można wykonać zdalnego pulpitu za pomocą xrdp

13

Mam maszynę wirtualną Ubuntu, na której muszę wykonać zdalny pulpit. Nie mam fizycznego dostępu do tej maszyny i mogę tylko ssh na maszynie. Chciałem zrobić zdalny pulpit i wymyśliłem wiele opcji (vnc, xrdp, opennx). Użyłem xrdp i zainstalowałem niezbędne pakiety na maszynie Ubuntu (xrdp i zależne). Następnie włączyłem dostęp zdalny w ubuntu za pomocą następującej opcji wiersza poleceń.

gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true

gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false

Następnie zrestartowałem xrdp (/etc/init.d/xrdp start). Ale kiedy próbuję wykonać rdp za pomocą klienta Windows (mstsc), pojawia się następujący błąd. Zdalny dostęp do serwera nie jest włączony.

Jak to rozwiązać? Uprzejma pomoc.

Raj

użytkownik1667630
źródło

Odpowiedzi:

13

W pliku /etc/xrdp/xrdp.ini dodaj adres = 0.0.0.0, który jest domyślnym adresem xrdp.

Musisz także zezwolić zaporze ogniowej na nasłuchiwanie połączeń na porcie 3389, na którym działa xrdp. W tym celu wykonaj:

sudo ufw allow 3389

Jeśli to nie działa:

  1. Uruchom ponownie komputery
  2. Wyłącz zaporę ( sudo ufw disable) na komputerze serwera, a następnie sprawdź ponownie (może nawet wymagać ponownego uruchomienia).

Jeśli go przegapiłeś, wymienię całą procedurę poniżej (co było uciążliwe w montażu). Będziesz z tym dobrze, jeśli będziesz postępować krok po kroku (obiecaj!).


Pulpit zdalny między przewodnikiem krok po kroku dowolnego systemu operacyjnego

Ja . Windows do / z Windows:

Użyj oprogramowania Windows Remote Desktop

II . Linux / Unix do / z dowolnego miejsca

Najpierw wykonaj następujące czynności na serwerze, który połączysz za pośrednictwem zdalnego pulpitu:

- Allow other users to view your desktop
- Best to require a password
- service ssh status
- To allow computers to connect with X11 graphics system capabilities as well, you need to 
    install an X11 server on the computer that is trying to connect (client). So
    * for a Windows computer use XMing
    * for a Linux Ubuntu computer use XQuartz

IIa . Windows do Linux z terminala z obsługą grafiki

- Launch XMing on Windows client
- Launch Putty
    * Fill in basic options
    * Connection -> SSH -> X11
        -> Enable X11 forwarding
        -> X display location = :0.0
        -> MIT-Magic-Cookie-1
        -> X authority file for local display = point to the Xming.exe executable

IIb . (b dla lepszego) Windows do Linux z pełną obsługą GUI. Tego chce większość z was.

- install xrdp which uses the remote desktop protocol to present a GUI to the user. 
    It can provide a fully functional Linux terminal server, capable of accepting connections 
    from rdesktop, freerdp, and Microsoft's own terminal server / remote desktop clients. 
    xrdp is the daemon that handles RDP remote desktop access from Windows machines to Linux 
- edit the "/etc/xrdp/xrdp.ini" file to include the line:
    address=0.0.0.0
    right under #background=626x72 line. 0.0.0.0 is the local server address of xrdp
- Restart xrdp service
- allow xrdp port (probably 3389) through firewall
- We also need a VNC server. Install tightvncserver on Linux server machine. 
- run tightvncserver (no need to create a view-only password)
- "netstat -lvp | grep vnc" to check out the ports that tightvnc is listening on for 
    connections
- allow the vncserver port from the firewall: sudo ufw allow #
- allow the xrdp server
- Install xfce4 desktop environment an update to xfce, minimalistic faster and lightweight
    sudo apt-get install xfce4
- sudo apt-get install xfce4-terminal : way better than xterm
- sudo apt-get install gnome-icon-theme-full tango-icon-theme : installs icon sets
- Now we modify 2 files to make sure xrdp uses xfce4
    * echo xfce4-session >~/.xsession
    * secondly we modify startup file for xRDP located at /etc/xrdp/startwm.sh
        so it will start xfce4. Replace the last line with 
        startxfce4 
        (before it had something which started with a ., but no matter whatever it is, just 
        replace the last line)
    * restart xrdp service: sudo service xrdp restart
- Now you are ready to log into the computer from client using Remote Desktop (mstsc.exe). 
    Just supply the ipv4 or hostname of the VNC server.

III . * nix do / z * nix

- ssh -X [preferedUserName]@[targetIpv4Address] : -X flag enales X11 forwarding
- accept security certificates from trusted hosts when prompted

IV . Zabezpieczanie połączenia (krok opcjonalny - dotyczy dowolnej konfiguracji)

Protokoły VNC i xrdp nie są bezpieczne, co oznacza, że ​​nie są szyfrowane.

Aby połączenie było bezpieczne, edytuj plik /etc/xrdp/xrdp.ini, aby adres zmienił się na 127.0.0.1. Będzie to adres localhost serwera ssh. Szyfrowanie SSH zostanie użyte pod tunelowaniem ruchu VNC.

- sudo service xrdp restart
- sudo service ssh restart
- pkill Xtightvnc
- tightvncserver
- putty -> Connection -> SSH -> Tunnels 
    * Source port: 5555
    * Destination: localhost:3389

Jeśli powyższe nie działają:

  1. Może być konieczne ponowne uruchomienie obu komputerów,
  2. Wyłącz zaporę ( sudo ufw disable) na komputerze serwera, a następnie sprawdź ponownie (może nawet wymagać ponownego uruchomienia).
  3. Jeśli powyższe nie działa, oznacza to, że popsułeś system, instalując konfliktowe pakiety. W tym celu musisz wykonać ręczne rozwiązywanie problemów (bardzo mało prawdopodobne jest wykonanie tego kroku, jeśli postępujesz zgodnie z instrukcjami).

Źródła i kredyty:

Nikos
źródło
Jeśli używasz Ubuntu 18.04.2 lub Ubuntu 18.04.3, zainstalowanie xorgxrdp-hwe-18.04 może rozwiązać twój problem (rozwiązał mój). Zobacz ten post na blogu: c-nergy.be/blog/?p=13972
jhin
4

W szczególności nie jestem zaznajomiony z xrdp, ale pierwszą rzeczą, którą sprawdzam, jest sprawdzenie, czy używany przez niego port to: a) nasłuchiwanie połączeń i b) otwarty na świat zewnętrzny. Domyślny port RDP to 3389 .

Pierwszy jest dość łatwy do sprawdzenia; po prostu uruchom to w terminalu na komputerze, z którym próbujesz się połączyć (zmień 3389, jeśli xrdp nasłuchuje na innym porcie):

netstat -an | grep "LISTEN " | grep ":3389"

Jeśli otrzymasz coś podobnego do następującego, coś przynajmniej (mam nadzieję, że xrdp) nasłuchuje połączeń:

tcp        0      0 127.0.1.1:3389            0.0.0.0:*               LISTEN

Jeśli nie otrzymujesz żadnych danych wyjściowych, spróbuj (ponownie) uruchomić xrdp lub sprawdź, czy masz odpowiedni port.

Następnie musisz upewnić się, że komputer jest dostępny przez Internet na tym porcie, co wymagało dwóch rzeczy: upewnienia się, że zapora ogniowa na samym komputerze nie blokuje połączeń z tym portem i upewnij się, że jakiekolwiek urządzenie sieciowe ( np. router) między komputerem, z którym próbujesz się połączyć, a Internetem nie blokuje połączeń. PortForward.com może pomóc z tym drugim; pierwszy zależy od tego, jaki rodzaj zapory ogniowej jest zainstalowany na twoim komputerze, jeśli taki istnieje.

Mam nadzieję że to pomoże!

stevenmirabito
źródło
1
Poniżej znajduje się wynik netstat .. Sprawdzę drugą część i pozwolę ci wiedzieć .. tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
user1667630
OK, dobrze, to znaczy, że xrdp nasłuchuje połączeń. Powiedziałeś jednak, że możesz uzyskać dostęp do maszyny wirtualnej tylko przez port 22, i właśnie dlatego klient RDP nie może się połączyć. Z jakiego oprogramowania maszyny wirtualnej korzystasz?
stevenmirabito
Przepraszam .. czy możesz powiedzieć, co masz na myśli przez „oprogramowanie maszyny wirtualnej” ... W Ubuntu właśnie zainstalowałem xrdp ..
user1667630
W swoim OP powiedziałeś: I have a virtual machine (ubuntu) to which i need to do remote desktop.Jakie oprogramowanie jest uruchomione na maszynie wirtualnej (VirtualBox, VMware, Virtuozzo, Xen, OpenVZ itp.)? Czy to komputer na twoim komputerze lokalnym, czy jest to gdzieś hostowany VPS?
stevenmirabito
przepraszam .. tak .. to gdzieś jest VPS !! Zasadniczo korzysta z rozwiązania Apache Software Foundation .. Virtual Computing Lab !!
user1667630
2

W końcu udało mi się to dla mnie; setup: starszy laptop z systemem Ubuntu 13.10 i standardową jednością; Zainstalowałem dok Cairo (co czyni go o wiele bardziej użytecznym); nadal nie jest przyzwyczajony do paska aplikacji po lewej stronie;

Byłoby miło móc użyć mojego systemu win7 do rdp w tym Ubuntu 13.10, więc spędziłem kilka godzin dziś rano na badaniach. Oto co zrobiłem:

sudo apt-get update
sudo apt-get install xrdp

lub możesz użyć centrum oprogramowania Ubuntu do instalacji.

Wygląda na to, że instalacja przebiegła pomyślnie i wyglądało na to, że usługa xrdp została uruchomiona poprawnie.

Z mojego okna win7 otworzyłem okno rdp i użyłem adresu IP laptopa, aby się tam dostać; okno się otworzyło, ale tylko standardowy ekran okien x11 (wzór kreskowania z kursorem x); brak linków, ikon lub menu do użycia.

Więcej badań Google. Zainstalowałem awarię sesji gnome:

$ sudo apt-get install gnome-session-fallback
$ echo "gnome-session --session=gnome-fallback" > ~/.xsession

To nie działało; Mam ten sam pusty ekran, ale znalazłem inny adres URL, który sugerował inny program sesji mgr, taki jak XFCE, więc zainstalowałem pulpit xubuntu:

$ sudo apt-get install xubuntu-desktop
$ echo "xfce4-session" > ~/.xsession

Nie zapomnij o sudo /etc/init.d/xrdp restartwszystkich zmianach.

To zadziałało. Na początku, przy pierwszym uruchomieniu sesji rdp, dostałem ten sam pusty ekran, ale po 10 sekundach (prawdopodobnie dlatego, że używam VDI Win7 w pracy ze zdalnej lokalizacji) wyskoczył użyteczny pulpit xfce xubuntu; nie tak miły jak gnom, ale bardzo użyteczny.

Mam nadzieję, że te informacje będą przydatne, ponieważ nie mogłem uzyskać pierwszych prób pracy dla mnie.

Dave

użytkownik224176
źródło
1

Witamy w społeczności Ubuntu.

Przede wszystkim sprawdź ustawienia sieciowe Windows Virtual Machine w Virtual Box. Wybierz Połączenie mostkowe w Ustawieniach sieci. Sprawdź, czy RDP może przechodzić przez Zaporę klienta Windows.

Ketan Patel
źródło
Cześć .. jestem w stanie zrobić ssh. Czy możesz mi powiedzieć, jak sprawdzić, czy
protokół
Tak, Otwórz ustawienia zapory w kliencie Windows, Otrzymasz listę programów i usług, które mogą przejść, Znajdź RDP, Kliknij edytuj, Włącz i zastosuj.
Ketan Patel
To było już włączone !! Sprawdziłem to. Czy jest jakiś inny sposób na uzyskanie interfejsu użytkownika Ubuntu. Jeszcze jednym problemem jest to, że tylko port 22 jest włączony w Ubuntu ..
użytkownik1667630
Wyłącz zaporę Ubuntu za pomocą iptables stop usługi komend
Ketan Patel
1
sudo ufw disable 

następnie spróbuj zalogować się przy użyciu oprogramowania klienckiego rdp .. Jestem w trakcie ustawiania tego na 12.04 Linux VPS, do tej pory mam połączenie, ale nie widzę na pulpicie tylko okna poleceń.

Cześć kolego, powiedziałeś, że masz połączenie i wszystko, co widzisz, to okno terminalu. Nie wiem, co to za kompletna konfiguracja, ale tutaj jest moja, mam nadzieję, że to pomoże.

Mieć pewność, że vncserver jest uruchomiony przez vncserver :1 następne nanodo ~/.vnc/xstartuptego doprowadza cię do kosza !! plik bla bla, w którym widzisz ostatnią linię ( & -x-window-manager), dodaj & /etc/X11/Xsession &

Teraz przejdź do tego pliku /etc/xrdp/startwm.shi bądź pewien, że masz tam ostatni wiersz

. /etc/X11/Xsession

po wykonaniu tej czynności zrestartuj serwer vncserver, wykonując to.

vncserver -kill :1 

następnie uruchom ponownie

vncserver :1

Nawiasem mówiąc, musiałem zainstalować więcej niż tylko Xrdp i wykonałem kilka innych poleceń, aby cofnąć się, jeśli Xrdp się nie powiedzie, wszystko wydaje mi się w tej chwili dobre, dajcie mu pewność i daj znać, co gotuje, czy nie. Powodzenia. Ps .. jego piegi są świetne, kiedy to działa, pozostań przy nim.

jamjam
źródło
0

Jeśli tylko zapora jest dozwolona przez port 22 i nie masz kontroli nad ścieżką sieciową, możesz użyć tunelowania ssh do tunelowania wybranego portu na zdalnym urządzeniu przez system lokalny.

Jeśli robisz to z okna Linux / Unix, spójrz na flagę -L dla ssh:

ssh -L 3390:127.0.0.1:3389 -l remote_user remote_host

gdzie pierwszy 3390 jest numerem portu lokalnego, a drugi 3389 jest numerem portu zdalnego; następnie RDC do 127.0.0.1:3390 w celu połączenia. Zauważ, że tunel jest powiązany z sesją ssh - jeśli zamkniesz tę sesję ssh, tunel również się zamknie, a twoje połączenie ze zdalnym pulpitem zostanie zerwane. Upewnij się, że używasz nieużywanego portu po stronie lokalnej.

Jeśli łączysz się z systemu Windows, użyj putty i włącz opcje tunelowania ssh dla swojej sesji (spójrz na połączenie-> SSH-> Tunele w opcjach konfiguracji sesji).

Po utworzeniu tunelu możesz połączyć się z wybranym klientem RDP. Kilka innych odpowiedzi dotyczy tej części konfiguracji (osobiście skończyłem zgodnie z sugestią sesji xfce4).

użytkownik292300
źródło
0

Uruchom polecenia w terminalu:

sudo apt-get install xrdp
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get install ubuntu-mate-core ubuntu-mate-desktop


echo mate-session >~/.xsession
sudo service xrdp restart
Antony Ruddy
źródło