−25%

Windows รายปี ถึง 31 ต.ค. ดูแพ็กเกจ

EQVPS
เริ่มต้นใช้งาน

วิธีติดตั้งเดสก์ท็อปบน Linux VPS และเชื่อมต่อด้วย Remote Desktop (XFCE + xrdp)

เดสก์ท็อปแบบกราฟิกบน VPS ที่ใช้ Ubuntu 24.04 ซึ่งเปิดได้ด้วยแอป Remote Desktop ทั่วไป: XFCE และ xrdp ค่าเริ่มต้นสองอย่างที่ทำให้ใช้ไม่ได้ (เซสชันผิด ไม่มี TLS) และการตั้งค่าที่พอร์ต 3389 ไม่เคยเปิดออกสู่อินเทอร์เน็ต พร้อมผลวัดพื้นที่ดิสก์และ RAM ต่อเซสชัน

เซิร์ฟเวอร์ Linux ไม่มีหน้าจอ และส่วนใหญ่ก็ไม่จำเป็นต้องมี แต่บางครั้งก็จำเป็น เช่น เบราว์เซอร์ที่ต้องทำงานจากที่อยู่ของเซิร์ฟเวอร์เอง เครื่องมือที่มีแต่หน้าจอกราฟิก หรือเดสก์ท็อปที่เปิดทิ้งไว้แล้วกลับมาใช้ต่อจากคอมพิวเตอร์เครื่องไหนก็ได้ คู่มือนี้เพิ่มเดสก์ท็อปน้ำหนักเบา XFCE และ xrdp ให้ Ubuntu 24.04 เพื่อให้คุณเปิดได้ด้วยแอป Remote Desktop ตัวเดียวกับที่ใช้กับเซิร์ฟเวอร์ Windows

เราทดสอบทุกขั้นตอนบนอิมเมจ Ubuntu 24.04 ของเรา ค่าเริ่มต้นสองอย่างทำให้ครั้งแรกล้มเหลว และด้านล่างเราแก้ทั้งสองอย่าง คุณต้องมีผู้ใช้ทั่วไปที่มี sudo โดยคู่มือตั้งค่า Ubuntu จะสร้างให้ ในตัวอย่างผู้ใช้ชื่อ deploy

1. ติดตั้ง XFCE และ xrdp

sudo apt update
sudo apt install -y xfce4 xfce4-goodies xrdp

บนเซิร์ฟเวอร์ 2 GB ของเรา ขั้นตอนนี้ใช้เวลาราวสี่นาทีครึ่งและกินดิสก์ 1.7 GB (ก่อนติดตั้งใช้ไป 2.7 GB หลังติดตั้ง 4.4 GB) จะได้ xrdp 0.9.24 ซึ่งเริ่มทำงานทันทีและรอรับที่พอร์ต 3389

2. ให้ xrdp เปิด XFCE ไม่ใช่ GNOME

ล็อกอินเป็นผู้ใช้ที่จะใช้เดสก์ท็อป แล้วรัน:

echo xfce4-session > ~/.xsession

ถ้าไม่มีไฟล์นี้ การล็อกอินครั้งแรกของเราเปิด GNOME แทน XFCE และเซสชันดับทันทีพร้อมข้อความ "Oh no! Something has gone wrong" แพ็กเกจในขั้นตอนที่ 1 ติดตั้งตัวจัดการเซสชันของ GNOME มาด้วย และ Ubuntu ตั้งให้เป็นค่าเริ่มต้น เมื่อมี ~/.xsession แล้ว xrdp จะเปิด XFCE

3. ให้ xrdp ใช้ TLS

xrdp ทำงานในนามผู้ใช้ของตัวเองชื่อ xrdp และผู้ใช้นี้อ่านกุญแจส่วนตัวของเซิร์ฟเวอร์ไม่ได้ การเชื่อมต่อครั้งแรกของเราใช้ได้ แต่ /var/log/xrdp.log แสดงให้เห็นว่าทำไมไม่ควรเชื่อใจมัน:

Cannot read private key file /etc/xrdp/key.pem: Permission denied
Non-TLS connection established from ::ffff:127.0.0.1

เมื่อไม่มีกุญแจ xrdp จะถอยกลับไปใช้การเข้ารหัส RDP แบบเก่าแทน TLS ให้สิทธิ์เข้าถึงแล้วรีสตาร์ต:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

การเชื่อมต่อครั้งต่อไปในล็อกของเราแสดงเป็น TLS connection established ... TLSv1.3 คุณตรวจเซิร์ฟเวอร์ของคุณได้ด้วยวิธีเดียวกัน:

sudo grep -E "TLS connection|Non-TLS" /var/log/xrdp.log | tail -2

4. อย่าให้พอร์ต 3389 เปิดสู่อินเทอร์เน็ต

หลังติดตั้ง xrdp จะรอรับบนทุกที่อยู่ ต่างจาก Windows ตรงที่ xrdp ไม่มี Network Level Authentication ใครที่เข้าถึงพอร์ตได้ก็จะได้หน้าจอล็อกอินไว้เดารหัสผ่าน ให้มันรอรับบนตัวเซิร์ฟเวอร์เท่านั้น:

sudo sed -i 's|^port=3389$|port=tcp://127.0.0.1:3389|' /etc/xrdp/xrdp.ini
sudo systemctl restart xrdp
ss -ltn | grep 3389

บรรทัดสุดท้ายควรแสดง 127.0.0.1:3389 ในการทดสอบของเรา หลังจากนั้นการเชื่อมต่อตรงไปยังที่อยู่ของเซิร์ฟเวอร์ที่พอร์ต 3389 ถูกปฏิเสธ ส่วน tunnel ในขั้นตอนถัดไปยังใช้ได้

5. เชื่อมต่อผ่าน SSH

เปิด tunnel บนคอมพิวเตอร์ของคุณ บน Windows ก็มีคำสั่ง ssh แบบเดียวกันใน PowerShell:

ssh -L 13389:localhost:3389 deploy@YOUR.SERVER.IP

ในแพ็กเกจ NAT ให้เพิ่ม -p และพอร์ต SSH ส่วนตัวจากแดชบอร์ด เปิดหน้าต่างนั้นค้างไว้ จากนั้นตั้งแอป Remote Desktop ไปที่ localhost:13389 แล้วล็อกอินเป็น deploy ด้วยรหัสผ่านของผู้ใช้นั้น:

  • Windows: Remote Desktop Connection (mstsc)
  • macOS: Windows App จาก App Store
  • Linux: Remmina หรือ xfreerdp /v:localhost:13389 /u:deploy

พอร์ตฝั่งเครื่องเราใช้ 13389 ไม่ใช่ 3389 เพราะพอร์ต 3389 บนคอมพิวเตอร์ของคุณอาจถูก Remote Desktop ของเครื่องนั้นใช้อยู่แล้ว ครั้งแรกแอปจะเตือนเรื่องใบรับรองที่ไม่รู้จัก นั่นคือใบรับรองแบบเซ็นเองของเซิร์ฟเวอร์ และการเชื่อมต่อก็ถูกเข้ารหัสอยู่ภายใน SSH อยู่แล้ว

6. สิ่งที่คุณได้

คุณได้เดสก์ท็อป XFCE ที่มีแผงควบคุม ตัวจัดการไฟล์ และเทอร์มินัล บนเซิร์ฟเวอร์ของเรา หนึ่งเซสชันเพิ่ม RAM ราว 360 MB คือใช้ 388 MB ก่อนเชื่อมต่อ และ 747 MB ระหว่างเซสชัน

การปิดหน้าต่าง Remote Desktop ไม่ได้ทำให้ออกจากระบบ ในการทดสอบของเรา คำสั่งที่รันนานยังทำงานต่อหลังตัดการเชื่อมต่อ เมื่อเชื่อมต่อใหม่ xrdp พาเรากลับเข้าเซสชันเดิม (reconnected session ... display :10 ในล็อกของมัน) ถ้าต้องการจบเซสชันจริง ๆ ให้ใช้ Log Out ในเมนูของ XFCE

เลือกแพ็กเกจไหน

เดสก์ท็อปต้องการ RAM มากกว่า CPU Micro (2 vCPU, 2 GB, 25 GB, $5/เดือน) รัน XFCE และเครื่องมือเบา ๆ ได้สบาย ถ้าจะเปิดเว็บเบราว์เซอร์ค้างไว้ในเซสชัน ให้เลือก Small ที่มี 4 vCPU และ 4 GB ราคา $8/เดือน ทั้งสองเป็นแพ็กเกจ NAT และไม่เป็นปัญหาตรงนี้ เพราะ Remote Desktop วิ่งผ่านพอร์ต SSH ของคุณ

ถ้าสิ่งที่คุณต้องการจริง ๆ คือซอฟต์แวร์ Windows Windows VPS รันได้โดยตรง และ Windows-Small เริ่มต้นที่ $11/เดือน Ubuntu 24.04 อยู่ในหน้า Ubuntu VPS และเลือกได้ในทุกแพ็กเกจ Linux ที่ VPS ชำระเงินด้วย USDT, USDC หรือ ETH บนเครือข่าย Base, Ethereum หรือ Polygon

คำถามที่พบบ่อย

เชื่อมต่อด้วยแอป Remote Desktop ปกติของ Windows ได้ไหม?

ได้ xrdp ใช้โปรโตคอล RDP ดังนั้น Remote Desktop Connection ที่มากับ Windows, Windows App บน macOS และ Remmina หรือ xfreerdp บน Linux ใช้ได้ทั้งหมด คุณเชื่อมต่อกับ localhost ผ่าน SSH tunnel แทนที่จะต่อไปยังที่อยู่ของเซิร์ฟเวอร์

ใช้กับแพ็กเกจ NAT ได้ไหม?

ได้ การเชื่อมต่อ RDP วิ่งอยู่ภายใน SSH และ SSH ก็คือพอร์ตเดียวที่แพ็กเกจ NAT ส่งต่อมายังเซิร์ฟเวอร์ของคุณ คู่มือนี้แนะนำวิธีนี้กับทุกแพ็กเกจอยู่แล้ว เพราะพอร์ต 3389 จะยังปิดต่ออินเทอร์เน็ต

เดสก์ท็อปใช้ RAM เท่าไร?

บนเซิร์ฟเวอร์ทดสอบของเรา เซสชัน XFCE หนึ่งเซสชันเพิ่มขึ้นราว 360 MB หน่วยความจำที่ใช้เพิ่มจาก 388 MB เป็น 747 MB แพ็กเกจ Micro 2 GB พอสำหรับเดสก์ท็อปและเครื่องมือเบา ๆ ถ้าจะเปิดเว็บเบราว์เซอร์ในเซสชัน 4 GB จะสบายกว่า

เจอจอดำหรือข้อความ "Oh no! Something has gone wrong" เกิดอะไรขึ้น?

xrdp เปิด GNOME แทน XFCE แพ็กเกจในขั้นตอนที่ 1 ติดตั้งตัวจัดการเซสชันของ GNOME มาด้วย และ Ubuntu ตั้งให้เป็นค่าเริ่มต้นของระบบ สร้างไฟล์ ~/.xsession ที่มีคำว่า xfce4-session ให้ผู้ใช้ที่ล็อกอิน แล้วเชื่อมต่อใหม่

ล็อกอินผ่าน RDP ด้วย root ได้ไหม?

ค่าเริ่มต้นของ xrdp อนุญาต (AllowRootLogin=true ใน /etc/xrdp/sesman.ini) แต่ควรใช้ผู้ใช้ทั่วไปที่มี sudo มากกว่า ถ้าต้องการบล็อก root ให้ตั้ง AllowRootLogin=false แล้วรีสตาร์ต xrdp

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง