Skip to content
Go back

Remote Desktop ด้วย Moonlight&Sunshine

 at  11:50 PM Published

By : Pickyzz | 5 min read

Cover image for blog post "Remote Desktop ด้วย Moonlight&Sunshine" by Pickyzz

ที่มาที่ไป

เรื่องนี้เกิดจากปัญหาการจัดห้องที่ไม่ลงตัวของผมเอง และด้วยพื้นที่ในห้องนอนที่แบ่งไว้นั่งทำงานด้วยส่วนหนึ่งจึงเป็นพื้นที่จำกัดสักหน่อย บวกกับอาการขี้เกียจหันตัวสลับจอไปมา ในหลายๆครั้งที่ต้องเปิดทั้งพีซีและแม็ค ก็เลยมองหา Remote Desktop มาลองใช้หลายๆตัวก็พบว่าไม่ค่อยตอบโจทย์การใช้งานสักเท่าไรนัก

ปัญหาหลักที่พบใน Remote Desktop

  • การทำงานค่อนข้างมีอาการหน่วง
  • บริโภคทรัพยากรในเครื่องเวลาใช้งาน ทั้ง Host และ Client

จากนั้นก็นึกขึ้นได้ว่าเคยเห็นการทำ Remoteplay ภายในบ้าน ที่เอาภาพจากเครื่องคอนโซลยิงออกมาเล่นผ่านอุปกรณ์ต่างๆ

เอามาทำกับ PC ได้ไหม ?

ตั้งคำถามไว้แล้วก็ต้องหาคำตอบ ซึ่งผมได้ไปเจอเข้ากับ Repository หนึ่งชื่อว่า Moonlight [Link]อ่าน Readme ดูแล้วน่าสนใจ และน่าจะตอบโจทย์ในสิ่งที่ผมกำลังอยากทำพอดี

แนวคิดโดยสรุป

  • PC เป็นเครื่องที่ไว้สำหรับรับการเชื่อมต่อ (Server) (ต้องติดตั้งโปรแกรมสำหรับ Host)
  • Macbook เป็นรีโมทเชื่อมต่อไปควบคุม PC (ต้องทำการติดตั้ง Moonlight)

แล้วเจ้า Moolight คืออะไร

ทางผู้พัฒนาอธิบายไว้ว่าเป็นการทำงานด้วยหลักการเดียวกับเครื่อง Nvidia Shield คือทำหน้าที่เป็นเครื่องลูก (Client) เชื่อมต่อไปที่เครื่องที่ทำหน้าที่เป็นเซิร์ฟเวอร์อีกที ซึ่งในกรณีของผมเป็นเครื่อง Macbook

สามารถ Download เวอร์ชันล่าสุดจากผู้พัฒนาได้ที่ Link

เมื่อติดตั้งเสร็จแล้ว เราพักเครื่อง Client ไว้ก่อน แล้วเราข้ามไปฝั่งเครื่อง Server กันบ้าง

เตรียมเครื่อง Server ที่จะ Remote

ทางผู้พัฒนาเขาได้ให้ทางเลือกไว้ 2 ทาง คือ

  • ทางที่ง่ายที่สุดคือ ทำการติดตั้ง Nvidia Geforce Experience และเปิดฟังก์ชัน Gamestream

gfe-gamestream-enable-small.png

หมายเหตุ เมื่อปลายปี 2022 ที่ผ่านมาได้มีประกาศการหยุดสนับสนุนฟังก์ชั่น Gamestream จากทาง Nvidia ออกมาว่าจะหยุดซัพพอร์ทในช่วงเดือนกุมภาพันธ์ 2023 ทำให้ผมตัดสินใจย้ายไปใช้ Sunshine แทน

  • ทางที่ Advance ขึ้นมานิดหน่อย ติดตั้ง Sunshine

    สามารถ Download เวอร์ชันล่าสุดได้ที่ Link

    หมายเหตุ ในกรณีที่เล่นเกมแล้วเครื่องมองไม่เห็น Controller แนะนำให้ติดตั้ง ViGEmBus

    • เมื่อติดตั้งโปรแกรมเสร็จแล้วให้เปิด browser แล้วไปที่ url
    localhost:47990

    ในครั้งแรก sunhine จะให้เราตั้ง username และ password เพื่อไว้ login ไว้เพื่อความปลอดภัย เสร็จแล้วหน้าเว็บจะรีเฟรช 1 ครั้ง ให้เราล็อกอิน

    ในเวอร์ชั่น 0.17 จะไม่ detect หน้า desktop ให้เรา แก้ไขได้โดยไปที่แถบ Application จากนั้นให้เพิ่มแอพใหม่ ตั้งชื่อว่า Desktop โดยไม่ต้องใส่รายละเอียดใดๆ

    01.png

    จบสิ้นการเตรียมเครื่องฝั่ง Server แล้ว

    ทำการเชื่อมต่อจาก Client

    • ทำการเปิดโปรแกรม Moonlight ขึ้นมาหากเครื่องอยู่ในวง network เดียวกันตัว moonlight จะเจอเองโดยอัตโนมัติครับ แต่ถ้าไม่เจอสามารถ add ได้เองโดยกดปุ่มเครื่องหมาย + มุมบนขวาแล้วใส่ ip เครื่อง server ที่ต้องการ

      02.png

    • คลิกที่เครื่องที่ต้องการเชื่อมต่อ จะมีหน้าต่างเด้งรหัส PIN ขึ้นมาให้เราไปเปิด browser บนเครื่อง server แล้วไปที่ localhost:47990 จากนั้นไปที่เมนู PIN แล้วกรอกตัวเลขชุดเดียวกันลงไป

      03.png

      04.png

    กลับมาที่เครื่อง Client ของเราอีกทีจะพบว่าไอค่อนที่ตอนแรกติดล็อคอยู่ได้ถูกปลดล็อคแล้ว และเมื่อคลิกเข้าไปจะพบ Desktop ที่เราเพิ่มไว้อยู่ด้วย (หากลืมเพิ่มไว้ในขั้นตอนแรก ให้มาเพิ่มทีหลังได้เหมือนกัน)

    05.png

    หมายเหตุ หากเชื่อมต่อแล้วหน้าจอโปรแกรมดำสนิทให้ลองขยับเมาส์นิดหน่อยภาพจะกลับมาเหมือนเดิม

    ทดสอบใช้จริง

    ผมได้ทดลองใช้ในหลายๆรูปแบบทั้งการทำงานบางส่วน และการเล่นเกม พบว่าแทบจะไม่มีดีเลย์ อาจจะมีแต่ไม่ส่งผลต่อความรู้สึกจนหงุดหงิดอะไร ทั้งนี้ในการตั้งค่าความละเอียดของภาพเราสามารถตั้งที่ตัว Moonlight ได้เลย

    โดยส่วนตัวมองว่าตอบโจทย์เลย สามารถเปิดคอมทิ้งไว้โดยที่ไม่ต้องล็อกอินก่อน เพราะตัว server สามารถยิงภาพได้ตั้งแต่ logscreen เลย เราสามารถรีโมทไปล็อกอินจากเครื่องลูกก็ได้

    ส่วนที่น่าหงุดหงิดหน่อยจะเป็นในส่วนของช่วงการอัพเดทเวอร์ชันฝั่งเครื่อง server แล้วส่งผลให้เสียงหายในเครื่องลูก ส่วนตัวผมแก้โดย เวลาอัพเดทผมจะลบตัวโปรแกรมฝั่งเซิร์ฟเวอร์ออกจนเกลี้ยง ไม่เก็บพวกไฟล์ตั้งค่าไว้เลย ก่อนทำการติดตั้งเวอร์ชันใหม่ ซึ่งแก้ปัญหานี้ได้พอสมควร

    หมายเหตุ ในกรณีที่เน็ตเวิร์คที่บ้านมีอุปกรณ์ที่ใช้ร่วมกันหลายอุปกรณ์ (บ้านผมมีกล่อง internetTV อยู่ 2 ตัว) ควรมีการแยกวง network ใหม่เพื่อทำ Streaming เนื่องจากใช้แบนวิดธ์ค่อนข้างสูง

    จบแล้วครับ จริงๆวิธีนี้ผมใช้มาสักระยะแล้วตั้งแต่ช่วงปลายปีที่แล้วแต่ว่าไม่ได้เขียนให้เสร็จสักที ติดอะไรหลายๆอย่างเลยผลัดไปก่อน ตอนนี้ว่างแล้วก็เลยได้เขียนให้เสร็จสักที ซึ่งจริงๆผมทดสอบด้วยการต่อผ่าน internet ไว้ด้วย แต่ขอติดไว้ก่อนนะครับ เอาไว้จะมาเขียนวิธีการแยกต่างหาก สุดท้ายนี้ขอขอบคุณผู้อ่านทุกท่านครับ

    Reference


Older Post
2022 in review
Later Post
แยก Repositoroy เก็บ Content