Bagaimana cara mengatur sesi xrdp yang menggunakan kembali sesi yang ada?


57

Saya telah mencoba untuk mengatur server terminal RDP pada penggunaan xrdp yang tepat dan telah mengalami masalah yang signifikan dalam mendapatkan konfigurasi yang berfungsi. Ketika seorang pengguna log on, saya membutuhkannya untuk terhubung ke sesi yang ada pengguna jika ada, jika tidak memulai sesi baru, dan setiap sesi yang dimulai harus memulai LXDE. Perubahan apa pada konfigurasi default yang harus saya lakukan agar ini berfungsi?


Pada konfigurasi XRDP saya (kecuali saya menjalankan Unity pada sesi desktop dan Unity2D untuk sesi jarak jauh), masuk sebagai pengguna secara otomatis mengambil sesi lama mereka. Apakah setiap pengguna mendapatkan sesi baru setiap kali mereka terhubung?
agc93

Penjelasan / solusi terbaik yang saya temukan di internet dapat ditemukan di lokasi ini c-nergy.be/blog/?p=2879 Cobalah. Semoga informasi ini membantu
gyest

Jawaban:


46

Saya memiliki masalah yang sama, dan saya baru saja menemukan solusi yang mudah. Saya awalnya hanya menginstal xrdp menggunakan prosedur standar:

apt-get install xrdp

Setelah itu, semua tentang file xrdp.ini Anda, yang terletak di sini:

/etc/xrdp/xrdp.ini

Untuk membuka dan mengedit file konfigurasi xrdp gunakan:

sudo nano /etc/xrdp/xrdp.ini

secara default skrip penanganan sesi xrdp pertama terlihat seperti ini:

[xrdp1]
name=sesman-vnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

Baris yang penting adalah port=-1, ini membuat xrdp selalu mencari port gratis untuk terhubung. Jika Anda mengatur port tetap di sini, xrdp akan selalu kembali dan terhubung ke sesi yang sama. Saya mengubah milik saya sehingga terlihat seperti ini:

[xrdp1]
name=customsessionname
lib=libvnc.so
username=myusername
password=ask
ip=127.0.0.1
port=5912

Itu, saya pikir Anda bisa lolos hanya dengan mengubah port=-1ke port=5912. Xrdp saya selalu menghubungkan kembali ke sesi yang ada selalu menggunakan port yang sama.


2
Solusi ini berfungsi baik untuk saya, tetapi saya harus menunjukkan bahwa siapa pun yang terhubung ke mesin yang sama akan mendapatkan sesi yang sama, bahkan jika orang lain masuk di bawah sesi itu.
VeeTheSecond

7
itu hanya berfungsi jika sudah ada sesi yang sudah ada. Pertama kali di, tidak ada sesi sehingga gagal untuk terhubung ke port 5912.
stu

4
mendapatkan masalah yang sama .. sepertinya secara default ia mencoba untuk membuka koneksi menggunakan 5911port (Anda dapat melihatnya ketika xrpd sedang terhubung). Jadi saya berubah dari port = -1 ke port = ask5911. 5911 cara ini digunakan secara default tetapi Anda dapat mengubah port itu ketika Anda memasukkan pengguna / kata sandi saat menghubungkan (jadi tidak perlu mengkonfigurasi ulang apa pun jika terjadi kesalahan ..)
Maxym

1
Perilaku ini sangat tergantung pada implementasi server vnc. Di bawah centos saya menggunakan tigervnc, yang selalu bergabung dengan sesi yang ada atau membuat satu dengan pengaturan port = -1. Namun, di bawah ubuntu defaultnya adalah tightvncserver, yang tidak memiliki perilaku yang sama. Hanya bermain dengan implementasi vnc, jika ada.
Denys S.

1
Port default adalah 5910, lihat askubuntu.com/a/527975/592751
Pedi T.

16

Saya ingin memperbaiki jawaban yang ada. Jawaban pilihan teratas adalah mengedit xrdp.inifile untuk mengubah port ke nilai tetap sebagai -1pengganti wildcard untuk menemukan port terbuka.

Saya mencoba itu, tetapi mendapat kesalahan saat menghubungkan pertama kali, jadi akhirnya beralih kembali ke -1nilai. Frustasi dengan cepat terjadi meskipun dengan masalah yang tersisa dari tidak melanjutkan jadi saya melihat file ini lagi.

Apa yang berhasil untuk saya, dan benar-benar hanya sesuatu yang saya ingin tahu adalah ini:

Edit /etc/xrdp/xrdp.ini

Di bawah [xrdp1]tempat port=-1saya perhatikan nama pengguna dan kata sandi disetel ke ASK. Jika Anda mengatur, port=askAnda akan diberikan opsi pada prompt login dengan nama pengguna dan kata sandi untuk memilih port.

Daripada menginstal paket tambahan, saya menemukan perbaikan yang paling mudah adalah dengan mengatur opsi ask, hubungkan sesi PERTAMA (jika saya belum memiliki yang sudah berjalan) pada port -1 pada login dengan nama pengguna dan kata sandi.
Setelah memutuskan sesi, untuk melanjutkan kembali sesi yang ada selalu masuk pada port default: 5910 dan Anda akan melanjutkan kembali sesi yang ada sampai Anda me-restart komputer jarak jauh atau mengakhiri sesi ketika log off.

Untuk meringkas:

  • Edit xrdp.inifile
  • set port = ask
  • terhubung dari mesin jarak jauh, dan saat login jika Anda tidak memiliki sesi yang ada, tentukan port -1
  • untuk melanjutkan sesi, masukkan default dari 5910

Bekerja untukku. Meskipun saya tidak akan ingat 5910 maju.
Vesanto

7
Saya berhasil mengubah entri menjadi: [xrdp1]. . . port = ask5910 Ini secara default port ke 5910 sehingga Anda tidak harus mengingatnya seperti kata Vesanto (saya juga tidak akan pernah mengingatnya, Vesanto!) tetapi juga memberi Anda opsi untuk mengubahnya jika Anda ingin menelurkan sesi desktop baru pada, katakan port 5911. Saya menguji ini di Ubuntu 16.04.
hoekma

2
^ itu adalah solusi terbaik yang saya temukan juga.
Nacht - Pasang kembali Monica

Pada Rpi3 yang baru di-boot, saya memulai sesi baru dengan port -1 dan saya kemudian datang dengan komputer yang berbeda dan menggunakan port 5910 - ia mengambil sesi yang sama. Ketika Anda memindahkan sesuatu di satu komputer, Anda dapat melihatnya terjadi di komputer lain.
SDsolar

Jika Anda melakukannya lagi tetapi berikan nomor port -1 itu memberi Anda sesi baru.
SDsolar

7

Saya benci menjadi orang yang baru saja menjatuhkan tautan, tetapi saya mengikuti panduan di sini dan itu bekerja dengan sangat baik. Sekarang saya bisa masuk ke sesi RDP dari Linux dan host Windows dan menghubungkan saya kembali ke sesi lama saya jika saya sudah login sebelumnya. Ini adalah panduan terbaik untuk pemasangan yang saya temukan. Sayangnya, pemasangan paket standar menyebabkan lebih banyak masalah daripada melakukannya dari sumber.

Penulis tautan itu juga membuat alat otomatis untuk menginstal dan mengkonfigurasinya, tetapi saya belum mencobanya, jadi berhati-hatilah.

Semoga itu bisa membantu Anda.


Terima kasih telah memberikan tautannya. Apakah ini menyiratkan, bahwa tidak ada paket deb yang berfungsi untuk xrdp?
Jan

Saya memang melihatnya beberapa waktu yang lalu, tetapi tidak berfungsi dengan benar dengan versi Ubuntu yang lebih baru. Sejauh yang saya ketahui, tidak ada paket deb. Untuk XRDP pada versi Ubuntu post 10.04. Senang dibuktikan salah tentu saja, karena metode ini mengecewakan.
agc93

periksa solusi saya yang super otomatis pada skrip untuk ubuntu 12 64bithttp://askubuntu.com/questions/190838/how-to-install-x11rdp-on-ubuntu-12-04/190855#190855

Saya pikir apa yang masuk akal untuk pertanyaan ini adalah membuat .xsessionfile Anda sendiri di direktori home Anda. Misalnya, jika Anda menggunakan gnome-desktop, jalankanecho gnome-session >> ~/.xsession
artificerpi

4

Masalahnya adalah xrdp tidak selalu terhubung ke port yang sama. Jika tidak dan Anda lupa nomor port, Anda bisa masuk sesi ssh dan mencari tahu nomornya

netstat -tulpn | grep vnc

dan Anda akan mendapatkan sesuatu seperti berikut ini

tcp        0      0 127.0.0.1:5911          0.0.0.0:*               LISTEN      5365/Xvnc

dan kemudian Anda tahu 5911 adalah port yang terhubung dengan Anda.


2

pada layar login dengan kotak xrdp ketika Anda pertama kali terhubung ke remote desktop harus ada kotak drop down, dari sini pilih "vnc-any" lalu masukkan alamat ip komputer dan kata sandi tetapi tinggalkan port apa itu, ini akan membantu :)


Itu terlihat seperti yang paling mudah dan berfungsi untuk saya. Bagus. Tidak ada pemasangan yang rumit, kompilasi dll.
josef


1

1. Ubah Anda xrdp.ini:

sudo vi /etc/xrdp/xrdp.ini

2. Ubah pengaturan port port=ask-1pada aturan koneksi Anda:

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask-1

3. Mulai kembali Layanan xrdp Anda

sudo service xrdp restart

Anda akan melihat gambar berikut ketika Anda login dengan desktop jarak jauh. masukkan deskripsi gambar di sini

1. Pada login pertama Anda dapat melihat nomor port ini. Contoh: 5912: masukkan deskripsi gambar di sini

Jika Anda lupa nomor port ini, Anda dapat menggunakan perintah berikut untuk memeriksa:

netstat -peant | grep 59 | grep Xvnc

2. Anda dapat menghubungkan kembali sesi terakhir dengan nomor port Anda. masukkan deskripsi gambar di sini


Ref: http://c-nergy.be/blog/?p=5305


0

Saya mengalami masalah ini pada mesin Debian. Digunakan X11RDP-o-Matic untuk membangun paket xrdp 0.7. Sebelum meningkatkan ke systemd, sambungkan kembali sesi xrdp bekerja dengan baik.

Melihat pohon proses saya bisa melihat bahwa sesi tidak lagi anak-anak xrdp-sesman. Ternyata menjadi masalah izin saat menggunakan systemd. Google menemukan tambalan yang memperbaiki masalah.

Bagaimana Anda mengidentifikasi koneksi kembali yang berfungsi? Jalankan ps axfdan lihat pohon proses untuk xrdp-sesman. X11rdp, xrdp-chansrv, xrdp-sessvcsemua harus berjalan sebagai seorang anak. Jika tidak, tidak xrdp-sesmanakan tahu cara menyambung kembali ke sesi.

Begini tampilannya saat bekerja:

proses sesi xrdp yang baik


0

Inilah yang saya lakukan. Pastikan tigervnc-server diinstal sehingga kami dapat menggunakan Xvnc. Luncurkan sesi VNC dengan konfigurasi default (saya benar-benar mengikuti panduan pengaturan Linux Arch untuk TigerVNC). Kemudian konfigurasikan Xrdp Anda untuk menggunakan sesi VNC itu setiap waktu. Juga atur TigerVNC ke startup saat boot atau apalah. Ini adalah satu-satunya bagian VNC di file xrdp.ini saya:

[vnc-any]
name=vnc-any
lib=libvnc.so
ip=localhost
port=5901
username=na
password=YOURPASSWORD
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000

-1

Utas UbuntuForum ini terlihat berguna - saya belum menguji ini sendiri - namun saya telah menyalin solusi yang diberikan di sini untuk menyelesaikan jawaban ini.

Pengaturan RealVNC

1. Penghapusan server default VNC Ubuntu (Vino):

Pergi ke: System -> Administration -> Synaptic Package Manager Cari paket "Vino", Tandai Untuk Dihapus, Terapkan.

2. Pemasangan TightVNC dan XRDP:

Saat Anda menggunakan Synaptic Package Manager, cari untuk paket "tightvnc" (hati-hati, jangan " xtightvnc ") dan Tandai Untuk Instalasi. Demikian juga, cari paket "xrdp" dan Tandai juga Untuk Instalasi. Menerapkan. PS: jika mau, Anda dapat membuang paket "vnc" lain yang tidak Anda butuhkan!

3. Konfigurasi XRDP (Opsional)

Buka terminal dan ketikkan tiga perintah berikut:

 cd /etc/xrdp
 cp xrdp.ini xrdp.ini.bak 
 sudo gedit /etc/xrdp/xrdp.ini

Hapus bagian Xrdp2-Xrdp6, hanya tersisa bagian Xrdp1. Xrdp.ini Anda akan terlihat seperti ini:

[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1

[xrdp1]
name=RDP_To_TightVNC
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

4. Menghubungkan

Mulai ulang sistem dan Anda siap terhubung!

Untuk terhubung dari mesin Ubuntu lain, gunakan: Aplikasi -> Internet -> Terminal Server Client, ketikkan IP mesin Ubuntu VNC Anda, gunakan RDPv5 atau RDP, klik Connect!

Untuk terhubung dari mesin berbasis Windows, gunakan: Start -> Run -> mstsc, ketikkan IP mesin Ubuntu VNC Anda, klik Connect.

Saat terhubung, gunakan kredensial akun pengguna Ubuntu Anda (u / n dan p / w) dan login dari jarak jauh ke desktop Anda.


Sudahkah Anda benar-benar menguji ini? Sepertinya Anda baru saja menyalin dan menempelkan tautan kata demi kata. Jika Anda menyalin dan menempel, harap beri tahu sumbernya dalam jawaban Anda.
fossfreedom

@fossfreedom nggak, saya belum diuji tetapi mencoba untuk membantu. BTW Saya sudah menyebutkan sumber di this may help you.
Rahul Virpara

Anda mungkin harus lebih eksplisit mengenai sumber dan kebenaran jawaban Anda. Lihat hasil edit saya.
fossfreedom
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.