ไม่สามารถทำเดสก์ท็อประยะไกลโดยใช้ xrdp


13

ฉันมีเครื่องเสมือน Ubuntu ที่ฉันต้องใช้กับเดสก์ท็อประยะไกล ฉันไม่สามารถเข้าถึงเครื่องนั้นได้และฉันสามารถทำได้เฉพาะ ssh กับเครื่องเท่านั้น ฉันต้องการทำเดสก์ท็อประยะไกลและมีตัวเลือกมากมาย (vnc, xrdp, opennx) ฉันใช้ xrdp และฉันติดตั้งแพ็คเกจที่จำเป็นในเครื่องอูบุนตู (xrdp และขึ้นอยู่กับ) จากนั้นฉันเปิดใช้งานการเข้าถึงระยะไกลในอูบุนตูโดยใช้ตัวเลือกบรรทัดคำสั่งต่อไปนี้

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

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

จากนั้นฉันรีสตาร์ท xrdp (/etc/init.d/xrdp start) แต่เมื่อฉันพยายาม rdp โดยใช้ windows client (mstsc) ฉันได้รับข้อผิดพลาดดังต่อไปนี้ ไม่ได้เปิดใช้งานการเข้าถึงระยะไกลไปยังเซิร์ฟเวอร์

ฉันจะแก้ปัญหานี้ได้อย่างไร กรุณาช่วย

ราชา

คำตอบ:


13

ในไฟล์ /etc/xrdp/xrdp.ini เพิ่มที่อยู่ = 0.0.0.0 ซึ่งเป็นที่อยู่เริ่มต้นของ xrdp

นอกจากนี้คุณต้องอนุญาตให้ไฟร์วอลล์ฟังการเชื่อมต่อบนพอร์ต 3389 ที่ xrdp กำลังทำงานอยู่ สำหรับการดำเนินการนี้:

sudo ufw allow 3389

หากไม่ได้ผล:

  1. รีสตาร์ทพีซี
  2. ปิดใช้งานไฟร์วอลล์ ( sudo ufw disable) บนเซิร์ฟเวอร์ pc จากนั้นตรวจสอบอีกครั้ง (อาจต้องรีสตาร์ทอีกครั้ง)

ในกรณีที่คุณพลาดฉันจะแสดงรายการขั้นตอนทั้งหมดด้านล่าง (ซึ่งเป็นความเจ็บปวดในการรวบรวม) คุณจะสบายดีถ้าคุณทำตามขั้นตอน (สัญญา!)


Remote Desktop ระหว่างคำแนะนำทีละขั้นตอนของระบบปฏิบัติการใด ๆ

ผม Windows ถึง / จาก Windows:

ใช้ซอฟต์แวร์ Windows Remote Desktop

II . Linux / Unix ไปยัง / จากที่ใดก็ได้

ทำสิ่งต่อไปนี้บนคอมพิวเตอร์เซิร์ฟเวอร์ที่คุณจะเชื่อมต่อผ่านเดสก์ท็อประยะไกล:

- 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 to Linux จาก terminal พร้อมการรองรับกราฟิก

- 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 for better) Windows to Linux พร้อมรองรับ GUI เต็มรูปแบบ นี่คือสิ่งที่คุณต้องการ

- 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 . * ระวังถึง / จาก * ระวัง

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

IV . ทำให้การเชื่อมต่อปลอดภัย (ขั้นตอนเพิ่มเติม - ใช้กับการกำหนดค่าใด ๆ )

โปรโตคอล VNC & xrdp ไม่ปลอดภัยซึ่งหมายความว่าไม่ได้เข้ารหัส

ในการทำให้การเชื่อมต่อปลอดภัยให้แก้ไขไฟล์ /etc/xrdp/xrdp.ini เพื่อให้ที่อยู่กลายเป็น 127.0.0.1 นี่จะเป็นที่อยู่ localhost ของเซิร์ฟเวอร์ ssh การเข้ารหัส SSH จะถูกใช้ภายใต้อุโมงค์ในการรับส่งข้อมูล vnc

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

หากข้างต้นไม่ทำงาน:

  1. คุณอาจต้องรีสตาร์ทคอมพิวเตอร์ทั้งสองเครื่อง
  2. ปิดใช้งานไฟร์วอลล์ ( sudo ufw disable) บนเซิร์ฟเวอร์ pc จากนั้นตรวจสอบอีกครั้ง (อาจต้องรีสตาร์ทอีกครั้ง)
  3. หากด้านบนไม่ทำงานคุณจะทำให้ระบบของคุณสับสนโดยการติดตั้งแพ็คเกจที่ขัดแย้งกัน คุณต้องแก้ไขปัญหาด้วยตนเองในเรื่องนั้น (ไม่น่าเป็นไปได้ที่คุณจะมาถึงขั้นตอนนี้ถ้าคุณทำตามคำแนะนำอย่างถูกต้อง)

แหล่งที่มาและเครดิต:


หากคุณใช้ Ubuntu 18.04.2 หรือ Ubuntu 18.04.3 การติดตั้ง xorgxrdp-hwe-18.04 อาจช่วยแก้ปัญหาของคุณได้ (มันแก้ปัญหาได้) ดูโพสต์บล็อกนี้: c-nergy.be/blog/?p=13972
jhin

4

ฉันไม่คุ้นเคยกับ xrdp เป็นพิเศษ แต่สิ่งแรกที่ฉันจะตรวจสอบคือดูว่าพอร์ตที่ใช้อยู่นั้นเป็น) การฟังการเชื่อมต่อและ b) เปิดสู่โลกภายนอกหรือไม่ พอร์ตเริ่มต้นสำหรับ RDP เป็น3389

อันแรกนั้นง่ายต่อการตรวจสอบ; เรียกใช้งานในเทอร์มินัลบนเครื่องที่คุณพยายามเชื่อมต่อ (เปลี่ยน 3389 หาก xrdp กำลังฟังบนพอร์ตอื่น):

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

หากคุณได้รับสิ่งที่คล้ายกับต่อไปนี้อย่างน้อย (หวังว่า xrdp) กำลังฟังการเชื่อมต่อ:

tcp        0      0 127.0.1.1:3389            0.0.0.0:*               LISTEN

หากคุณไม่ได้รับเอาต์พุตใด ๆ ให้ลองเริ่มต้น xrdp อีกครั้งหรือตรวจสอบให้แน่ใจว่าคุณมีพอร์ตที่ถูกต้อง

ถัดไปคุณต้องตรวจสอบให้แน่ใจว่าเครื่องสามารถเข้าถึงอินเทอร์เน็ตบนพอร์ตนั้นซึ่งเกี่ยวข้องกับสองสิ่ง: ตรวจสอบให้แน่ใจว่าไฟร์วอลล์ในเครื่องนั้นไม่ได้ปิดกั้นการเชื่อมต่อกับพอร์ตนั้นและตรวจสอบให้แน่ใจว่าอุปกรณ์เครือข่ายใด ๆ เช่นเราเตอร์) ระหว่างคอมพิวเตอร์ที่คุณพยายามเชื่อมต่อและอินเทอร์เน็ตไม่ได้ปิดกั้นการเชื่อมต่อ PortForward.comสามารถช่วยได้หลัง; สิ่งแรกจะขึ้นอยู่กับประเภทของไฟร์วอลล์ที่ติดตั้งในเครื่องของคุณ (ถ้ามี)

หวังว่านี่จะช่วยได้!


1
ด้านล่างเป็นผลลัพธ์ของ netstat .. ฉันจะตรวจสอบส่วนที่สองและให้คุณรู้ .. tcp 0 0 0.0.0.0:3389 0.0.0.0:* ฟัง
user1667630

ตกลงดีหมายความว่า xrdp กำลังฟังการเชื่อมต่ออยู่ คุณพูดว่าคุณสามารถเข้าถึงเครื่องเสมือนบนพอร์ต 22 ได้เท่านั้นซึ่งอาจเป็นสาเหตุที่ไคลเอ็นต์ RDP ไม่สามารถเชื่อมต่อได้ คุณใช้ซอฟต์แวร์เครื่องเสมือนอะไรอยู่
stevenmirabito

ฉันขอโทษ .. คุณช่วยบอกสิ่งที่คุณหมายถึงโดย "ซอฟต์แวร์เครื่องเสมือน" ... ในอูบุนตูฉันเพิ่งติดตั้ง xrdp ..
user1667630

คุณพูดใน OP: I have a virtual machine (ubuntu) to which i need to do remote desktop.ซอฟต์แวร์เครื่องเสมือนทำงานภายใต้อะไร (VirtualBox, VMware, Virtuozzo, Xen, OpenVZ และอื่น ๆ ) นี่เป็นเครื่องบนคอมพิวเตอร์ท้องถิ่นของคุณหรือเป็น VPS ที่โฮสต์อยู่ที่ไหนสักแห่ง?
stevenmirabito

ขอโทษ .. ใช่ .. มันเป็น VPS ที่โฮสต์อยู่ที่ไหนซักแห่ง !! โดยทั่วไปจะใช้โซลูชันของ Apache Software Foundation .. ห้องปฏิบัติการคอมพิวเตอร์เสมือนจริง !!
user1667630

2

ในที่สุดฉันก็ได้สิ่งนี้มาใช้กับฉัน การตั้งค่า: แล็ปท็อปรุ่นเก่าที่รันอูบุนตู 13.10 ทำงานเป็นเอกภาพ ฉันได้ติดตั้ง cairo dock (ซึ่งทำให้ฉันใช้งานได้มากกว่า); ยังไม่คุ้นเคยกับแถบแอปด้านซ้าย

มันคงจะดีถ้าฉันสามารถใช้ระบบ win7 ของฉันเพื่อ rdp ในอูบุนตู 13.10 นี้ฉันเลยใช้เวลาสองชั่วโมงในเช้านี้เพื่อทำการค้นคว้า นี่คือสิ่งที่ฉันทำ:

sudo apt-get update
sudo apt-get install xrdp

หรือคุณสามารถใช้ศูนย์ซอฟต์แวร์อูบุนตูเพื่อติดตั้ง

การติดตั้งดูเหมือนจะโอเคและปรากฏว่าบริการ xrdp เริ่มต้นขึ้น

จากกล่อง win7 ของฉันฉันเปิดหน้าต่าง rdp และใช้ที่อยู่ IP ของแล็ปท็อปเพื่อเข้าใช้ หน้าต่างเปิดขึ้น แต่เป็นหน้าจอมาตรฐาน x11 windows (รูปแบบ cross-hatch พร้อมเคอร์เซอร์ x) ไม่มีลิงก์ไอคอนหรือเมนูที่จะใช้

การวิจัย google เพิ่มเติม ฉันติดตั้ง gnome-session-fallback:

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

สิ่งนี้ไม่ทำงาน ฉันได้หน้าจอเปล่าเดียวกัน แต่พบ URL อื่นที่แนะนำหน้าต่างเซสชั่น mgr อื่น ๆ เช่น XFCE ดังนั้นฉันจึงติดตั้งเดสก์ท็อป xubuntu:

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

อย่าลืมsudo /etc/init.d/xrdp restartหลังจากการเปลี่ยนแปลงทั้งหมด

สิ่งนี้ใช้ได้ผล ตอนแรกในช่วงเริ่มต้นของเซสชัน rdp ฉันได้รับหน้าจอว่างเปล่าเหมือนเดิม แต่หลังจากผ่านไป 10 วินาที (อาจเป็นเพราะฉันใช้ win7 VDI ที่ทำงานจากสถานที่ห่างไกล) ทำให้เดสก์ท็อป xfce xubuntu ใช้งานได้; ไม่ดีเท่าคำพังเพย แต่ใช้ได้ดีมาก

หวังว่าข้อมูลนี้จะเป็นประโยชน์เนื่องจากฉันไม่สามารถเริ่มต้นทำงานให้ฉันได้

เดฟ


1

ยินดีต้อนรับสู่ชุมชน Ubuntu

ก่อนอื่นตรวจสอบการตั้งค่าเครือข่ายของ windows Virtual Machine ใน Virtual Box เลือก Bridge Connection ในการตั้งค่าเครือข่ายตรวจสอบว่า RDP ได้รับอนุญาตให้ผ่านไฟร์วอลล์ของ Window Client


สวัสดี .. ฉันสามารถทำ ssh คุณช่วยกรุณาบอกวิธีการใช้งานว่า RDP ได้รับอนุญาตให้ผ่านไฟร์วอลล์หรือไม่
1667630

Ya, เปิดการตั้งค่าไฟร์วอลล์ในไคลเอนต์ Windows คุณจะได้รับรายชื่อโปรแกรมและบริการที่ได้รับอนุญาตให้ผ่านค้นหา RDP คลิกที่แก้ไขเปิดใช้งานและนำไปใช้
Ketan Patel

เปิดใช้งานแล้ว !! ฉันตรวจสอบแล้ว .. มีวิธีอื่นในการรับ UI ของอูบุนตูหรือไม่ ปัญหาอีกอย่างหนึ่งคือเปิดใช้งานพอร์ต 22 เท่านั้นใน ubuntu ..
user1667630

ปิด Ubuntu Firewall โดยใช้คำสั่ง iptables หยุด
Ketan Patel

1
sudo ufw disable 

จากนั้นลองเข้าสู่ระบบโดยใช้ซอฟต์แวร์ไคลเอ็นต์ rdp .. ของคุณ ฉันอยู่ในกระบวนการตั้งค่านี้เป็น 12.04 linux vps จนถึงตอนนี้ฉันเชื่อมต่อแล้ว แต่ไม่เห็นเดสก์ท็อปเพียงหน้าต่างคำสั่ง

สวัสดีตาคุณบอกว่าคุณเชื่อมต่อและสิ่งที่คุณเห็นคือหน้าต่างเทอร์มินัลฉันไม่รู้ว่าการตั้งค่าทั้งหมดของคุณคืออะไร แต่ที่นี่ฉันหวังว่ามันจะช่วยได้

ตรวจสอบให้แน่ใจว่า vncserver ของคุณทำงานvncserver :1 ต่อไปnanoเพื่อ ~/.vnc/xstartupนำคุณไปสู่ถังขยะ !! ไฟล์ bla bla ที่ซึ่งคุณเห็นบรรทัดสุดท้าย ( & -x-window-manager) ให้เพิ่ม & /etc/X11/Xsession &

ตอนนี้เข้าไปในไฟล์นี้/etc/xrdp/startwm.shและให้แน่ใจว่ามีบรรทัดสุดท้ายของคุณคือ

. /etc/X11/Xsession

หลังจากทำเช่นนั้นรีสตาร์ท vncserver โดยทำเช่นนี้

vncserver -kill :1 

จากนั้นรีสตาร์ท

vncserver :1

โดยวิธีการที่ฉันต้องติดตั้งมากกว่าเพียงแค่ Xrdp และฉันได้ทำคำสั่งอีกสองสามคำสั่งสำหรับการถอยกลับถ้า Xrdp ล้มเหลวทุกคนดูดีในนาทีสำหรับฉันให้มันไปให้แน่ใจและช่วยให้รู้ว่าการปรุงอาหารคืออะไรหรือไม่ โชคดี. ปล. ตกหล่นมันเยี่ยมเมื่อใช้งานอยู่กับมัน


0

หากอนุญาตให้ใช้พอร์ต 22 เท่านั้นผ่านไฟร์วอลล์และคุณไม่สามารถควบคุมเส้นทางเครือข่ายของคุณได้คุณอาจต้องการใช้ ssh tunneling เพื่อสร้างช่องทางพอร์ตที่คุณเลือกในกล่องรีโมตผ่านระบบท้องถิ่นของคุณ

หากทำสิ่งนี้จากกล่อง Linux / Unix ดูที่แฟล็ก -L สำหรับ ssh:

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

โดยที่ 3390 แรกคือหมายเลขพอร์ตโลคัลและหมายเลข 3389 ที่สองคือหมายเลขพอร์ตรีโมต จากนั้นคุณจะต้อง RDC ถึง 127.0.0.1:3390 เพื่อเชื่อมต่อ โปรดทราบว่าช่องสัญญาณจะเชื่อมโยงกับเซสชัน ssh - หากคุณปิดเซสชัน ssh ช่องสัญญาณจะปิดและการเชื่อมต่อกับเดสก์ท็อประยะไกลของคุณจะลดลง ตรวจสอบให้แน่ใจว่าคุณใช้พอร์ตที่ไม่ได้ใช้สำหรับด้านโลคัล

หากเชื่อมต่อจากระบบ Windows ให้ใช้ putty และเปิดใช้งานตัวเลือก ssh tunneling สำหรับเซสชันของคุณ (ดูที่การเชื่อมต่อ -> SSH-> Tunnels ในตัวเลือกการกำหนดค่าเซสชัน)

เมื่อสร้างอุโมงค์คุณสามารถใช้ไคลเอนต์ RDP ที่คุณเลือกเพื่อเชื่อมต่อ คำตอบอื่น ๆ หลายคำตอบเป็นส่วนหนึ่งของการตั้งค่านี้ (โดยส่วนตัวแล้วฉันจะทำตามคำแนะนำของเซสชัน xfce4)


0

เรียกใช้คำสั่งในเทอร์มินัล:

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.