Làm cách nào để thiết lập phiên xrdp sử dụng lại phiên hiện có?


57

Tôi đã cố gắng thiết lập một máy chủ đầu cuối RDP chính xác bằng xrdp và đã gặp sự cố đáng kể khi nhận cấu hình hoạt động. Khi người dùng đăng nhập, tôi cần kết nối với phiên hiện có của người dùng đó nếu nó tồn tại, nếu không thì bắt đầu một phiên mới và bất kỳ phiên bắt đầu nào cũng phải bắt đầu LXDE. Những thay đổi nào đối với cấu hình mặc định tôi cần thực hiện để làm việc này?


Trên cấu hình XRDP của tôi (ngoại trừ tôi đang chạy Unity trên các phiên trên máy tính để bàn và Unity2D cho các phiên từ xa), đăng nhập khi người dùng tự động chọn các phiên cũ của họ. Có phải mỗi người dùng nhận được một phiên mới mỗi lần họ kết nối?
agc93

Lời giải thích / giải pháp tốt nhất mà tôi đã tìm thấy trên internet có thể được tìm thấy tại địa điểm này c-nergy.be/blog/?p=2879 Give it a try Tôi hy vọng thông tin này giúp đỡ
gyest

Câu trả lời:


46

Tôi đã có vấn đề tương tự, và tôi chỉ tìm thấy một giải pháp dễ dàng. Ban đầu tôi chỉ cài đặt xrdp bằng cách sử dụng quy trình chuẩn:

apt-get install xrdp

Sau đó, tất cả là về tệp xrdp.ini của bạn, được đặt ở đây:

/etc/xrdp/xrdp.ini

Để mở và chỉnh sửa tệp cấu hình của xrdp, hãy sử dụng:

sudo nano /etc/xrdp/xrdp.ini

theo mặc định, tập lệnh xử lý phiên xrdp đầu tiên trông như thế này:

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

Dòng quan trọng là port=-1, điều này làm cho xrdp luôn tìm kiếm một cổng miễn phí để kết nối. Nếu bạn đặt một cổng cố định ở đây, xrdp sẽ luôn quay lại và kết nối với cùng một phiên. Tôi đã thay đổi của tôi để nó trông như thế này:

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

Đó là, tôi nghĩ rằng bạn có thể thoát khỏi chỉ với việc thay đổi port=-1thành port=5912. Xrdp của tôi luôn kết nối lại với phiên hiện có luôn sử dụng cùng một cổng.


2
Giải pháp này hoạt động tốt với tôi, nhưng tôi nên chỉ ra rằng bất kỳ ai kết nối với cùng một máy sẽ có cùng một phiên, ngay cả khi có người khác đăng nhập theo phiên đó.
VeeTheSecond

7
chỉ hoạt động nếu đã có một phiên hiện có. Lần đầu tiên trong, không có phiên nên nó không thành công để kết nối với cổng 5912.
Stu

4
có cùng một vấn đề .. có vẻ như theo mặc định, nó cố gắng mở một kết nối bằng cách sử dụng 5911port (bạn có thể nhận thấy nó khi xrpd đang kết nối). Vì vậy, tôi đã thay đổi từ port = -1 thành port = ask5911. Cách này 5911 được sử dụng theo mặc định nhưng bạn có thể thay đổi cổng đó khi bạn nhập người dùng / mật khẩu trong khi kết nối (vì vậy không cần phải cấu hình lại bất cứ điều gì trong trường hợp có lỗi ..)
Maxym

1
Hành vi này phụ thuộc hoàn toàn vào việc thực hiện máy chủ vnc. Theo centos tôi đang sử dụng tigervnc, luôn tham gia vào phiên hiện có hoặc tạo một phiên có cài đặt port = -1. Tuy nhiên, trong ubfox, mặc định là chặt chẽvncserver, không có hành vi tương tự. Chỉ cần chơi với triển khai vnc, nếu có gì.
Denys S.

1
Cổng mặc định là 5910, xem askubuntu.com/a/527975/592751
Pedi T.

16

Tôi muốn cải thiện câu trả lời hiện có. Câu trả lời được bình chọn hàng đầu là chỉnh sửa xrdp.initệp để thay đổi cổng thành giá trị cố định thay cho -1ký tự đại diện để tìm cổng mở.

Tôi đã thử điều đó, nhưng đã gặp lỗi khi kết nối lần đầu tiên, vì vậy cuối cùng tôi đã chuyển trở lại -1giá trị. Thất vọng nhanh chóng được thiết lập mặc dù với vấn đề còn lại là không tiếp tục nên tôi xem lại tệp ini.

Điều làm việc cho tôi, và thực sự chỉ là điều tôi tò mò là:

Chỉnh sửa /etc/xrdp/xrdp.ini

Dưới [xrdp1]nơi port=-1tôi nhận thấy tên người dùng và mật khẩu được thiết lập để ASK. Nếu bạn đặt, port=askbạn sẽ được cung cấp tùy chọn tại dấu nhắc đăng nhập với tên người dùng và mật khẩu để chọn một cổng.

Thay vì cài đặt các gói bổ sung, tôi thấy cách khắc phục dễ nhất là đặt tùy chọn hỏi, kết nối phiên FIRST (nếu tôi chưa có gói nào đang chạy) trên cổng -1 khi đăng nhập bằng tên người dùng và mật khẩu.
Sau khi ngắt kết nối phiên, để tiếp tục phiên hiện tại luôn đăng nhập vào cổng mặc định: 5910 và bạn sẽ tiếp tục phiên hiện tại cho đến khi bạn khởi động lại máy tính từ xa hoặc kết thúc phiên khi đăng xuất.

Để tóm tắt:

  • Chỉnh sửa xrdp.initập tin
  • bộ port = ask
  • kết nối từ máy từ xa và khi đăng nhập nếu bạn không có phiên hiện tại, chỉ định cổng -1
  • để tiếp tục một phiên nhập mặc định của 5910

Đã làm cho tôi. Mặc dù tôi sẽ không nhớ 5910 trong tương lai.
Vesanto

7
Tôi đã có thể thay đổi thành công mục nhập thành: [xrdp1]. . . port = ask5910 Điều này mặc định cổng thành 5910 vì vậy bạn không cần phải nhớ nó như Vesanto đã nói (tôi cũng sẽ không bao giờ nhớ nó, Vesanto!) nhưng cũng cung cấp cho bạn tùy chọn thay đổi nó nếu bạn muốn tạo ra một phiên máy tính để bàn mới trên, giả sử cổng 5911. Tôi đã thử nghiệm điều này trên Ubuntu 16.04.
hoekma

2
^ đó là giải pháp tốt nhất tôi đã tìm thấy là tốt.
Nacht - Tái lập Monica

Trên một Rpi3 mới được khởi động, tôi đã bắt đầu một phiên mới với cổng -1 và sau đó tôi đến với một máy tính khác và sử dụng cổng 5910 - nó đã chọn cùng một phiên. Khi bạn di chuyển mọi thứ trên một máy tính, bạn có thể thấy nó xảy ra trên máy tính khác.
SDsolar

Nếu sau đó bạn làm lại nhưng cung cấp cho nó số cổng -1 thì nó cung cấp cho bạn một phiên mới.
SDsolar

7

Tôi ghét phải là người chỉ cần bỏ một liên kết, nhưng tôi đã làm theo hướng dẫn ở đây và nó hoạt động rất tốt. Bây giờ tôi có thể đăng nhập vào phiên RDP từ máy chủ Linux và Windows và kết nối lại với phiên cũ nếu tôi đã đăng nhập trước đó. Đây là hướng dẫn tốt nhất để cài đặt tôi đã tìm thấy. Thật không may, cài đặt gói tiêu chuẩn gây ra nhiều vấn đề hơn so với thực hiện từ nguồn.

Tác giả của liên kết đó cũng đã tạo ra một công cụ tự động để cài đặt và định cấu hình nó, nhưng tôi chưa thử nó, vì vậy hãy cẩn thận.

Hy vọng điều đó giúp được bạn.


Cảm ơn bạn đã cung cấp các liên kết. Điều này có nghĩa là, không có gói deb hoạt động nào thoát cho xrdp?
1

Tôi đã nhìn thấy một lúc trước, nhưng nó không hoạt động chính xác với các phiên bản Ubuntu mới hơn. Theo như tôi biết, không có gói .deb nào hoạt động cho XRDP trên các phiên bản Ubuntu đăng ngày 10.04. Tất nhiên, rất vui khi được chứng minh là sai, vì phương pháp này gây khó chịu một cách đáng thất vọng.
agc93

kiểm tra giải pháp của tôi, siêu tự động trên tập lệnh cho Ubuntu 12 64 bithttp://askubuntu.com/questions/190838/how-to-install-x11rdp-on-ubuntu-12-04/190855#190855

Tôi nghĩ điều có ý nghĩa cho câu hỏi này là tạo .xsessiontập tin của riêng bạn trong thư mục nhà của bạn. Ví dụ: nếu bạn sử dụng gnome-desktop, hãy chạyecho gnome-session >> ~/.xsession
artificerpi

4

Vấn đề là xrdp không phải lúc nào cũng kết nối với cùng một cổng. Trong trường hợp không và bạn quên số cổng, bạn có thể đăng nhập một phiên ssh và tìm ra số đó bằng cách

netstat -tulpn | grep vnc

và bạn sẽ nhận được một cái gì đó như sau

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

và sau đó bạn biết 5911 là cổng bạn kết nối.


2

trên màn hình đăng nhập với hộp xrdp khi bạn kết nối lần đầu với máy tính để bàn từ xa, sẽ có một hộp thả xuống, từ đây chọn "vnc-any", sau đó nhập địa chỉ IP của máy tính và mật khẩu nhưng để lại cổng ở vị trí nào nó là, điều này sẽ giúp :)


Điều đó có vẻ như dễ nhất và làm việc cho tôi. Tuyệt quá. Không có cài đặt phức tạp, biên dịch, v.v.
josef


1

1. Modifiy bạn xrdp.ini:

sudo vi /etc/xrdp/xrdp.ini

2.Thay đổi cài đặt cổng port=ask-1trong quy tắc kết nối của bạn:

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

3. Khởi động lại dịch vụ xrdp của bạn

sudo service xrdp restart

Bạn sẽ thấy hình ảnh sau đây khi bạn đăng nhập bằng máy tính để bàn từ xa. nhập mô tả hình ảnh ở đây

1. Ở lần đăng nhập đầu tiên, bạn có thể thấy số cổng này. Ví dụ: 5912: nhập mô tả hình ảnh ở đây

Nếu bạn quên số cổng này, bạn có thể sử dụng lệnh sau để kiểm tra:

netstat -peant | grep 59 | grep Xvnc

2. Bạn có thể kết nối lại phiên cuối cùng bằng số cổng của mình. nhập mô tả hình ảnh ở đây


Tham chiếu: http://c-nergy.be/blog/?p=5305


0

Tôi gặp vấn đề này trên máy Debian. Đã sử dụng X11RDP-o-Matic để xây dựng các gói xrdp 0.7. Trước khi nâng cấp lên systemd, kết nối lại phiên xrdp hoạt động tốt.

Nhìn vào cây quy trình tôi có thể thấy rằng các phiên không còn là trẻ em nữa xrdp-sesman. Hóa ra là một vấn đề quyền khi sử dụng systemd. Google tìm thấy một bản vá khắc phục vấn đề.

Làm thế nào để bạn xác định một kết nối làm việc lại? Chạy ps axfvà nhìn vào cây quy trình cho xrdp-sesman. X11rdp, xrdp-chansrv, xrdp-sessvctất cả nên được chạy như một đứa trẻ Nếu họ không, xrdp-sesmansẽ không biết làm thế nào để kết nối lại với phiên.

Đây là những gì nó trông giống như khi làm việc:

quá trình phiên xrdp tốt


0

Đây là những gì tôi đã làm. Đảm bảo máy chủ tigervnc được cài đặt để chúng tôi có thể sử dụng Xvnc. Khởi chạy phiên VNC với cấu hình mặc định (tôi thực sự đã làm theo hướng dẫn thiết lập Arch Linux cho TigerVNC). Sau đó định cấu hình Xrdp của bạn để sử dụng phiên VNC đó mỗi lần. Đồng thời đặt TigerVNC để khởi động khi khởi động hoặc một cái gì đó. Đây là phần VNC duy nhất trong tệp xrdp.ini của tôi:

[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

Chủ đề UbuntuForum này có vẻ hữu ích - Tôi chưa tự mình kiểm tra điều này - tuy nhiên tôi đã sao chép giải pháp được đưa ra ở đây để hoàn thành câu trả lời này.

Thiết lập RealVNC

1. Gỡ cài đặt máy chủ Ubuntu VNC mặc định (Vino):

Truy cập: Hệ thống -> Quản trị -> Trình quản lý gói Synaptic Tìm kiếm gói "Vino", Đánh dấu để xóa, Áp dụng.

2. Cài đặt TightVNC và XRDP:

Trong khi bạn đang sử dụng Trình quản lý gói Synaptic, seacrh cho gói " chặt chẽ " (hãy cẩn thận, không phải " xtightvnc ") và Đánh dấu để cài đặt. Tương tự, tìm kiếm gói "xrdp" và Đánh dấu để cài đặt. Ứng dụng. PS: nếu bạn muốn, bạn có thể loại bỏ bất kỳ gói "vnc" nào khác mà bạn không cần!

3. Cấu hình của XRDP (Tùy chọn)

Mở một terminal và gõ ba lệnh sau:

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

Xóa các phần Xrdp2-Xrdp6, chỉ để lại phần Xrdp1. Xrdp.ini của bạn sẽ trông như thế này:

[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. Kết nối

Khởi động lại hệ thống và bạn đã sẵn sàng kết nối!

Để kết nối từ một máy Ubuntu khác, hãy sử dụng: Ứng dụng -> Internet -> Máy chủ đầu cuối, nhập IP của máy Ubuntu VNC của bạn, sử dụng RDPv5 hoặc RDP, nhấp vào Kết nối!

Để kết nối từ máy chạy trên Windows, hãy sử dụng: Bắt đầu -> Chạy -> mstsc, nhập IP của máy Ubuntu VNC của bạn, nhấp Kết nối.

Khi được kết nối, hãy sử dụng thông tin đăng nhập tài khoản người dùng Ubuntu của bạn (u / n và p / w) và đăng nhập từ xa vào máy tính để bàn của bạn.


Bạn đã thực sự thử nghiệm điều này? Có vẻ như bạn vừa sao chép và dán nguyên văn liên kết. Nếu bạn sao chép và dán, vui lòng xác nhận nguồn trong câu trả lời của bạn.
fossfreedom

@fossfreedom không, tôi chưa thử nhưng đã cố gắng giúp. BTW tôi đã đề cập đến nguồn trong this may help you.
Rahul Virpara

Có lẽ bạn nên rõ ràng hơn về nguồn của bạn và tính xác thực của câu trả lời. Xem chỉnh sửa của tôi.
fossfreedom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.