หากคุณใช้เซิร์ฟเวอร์ X บน Windows อยู่แล้ว (เช่นเดียวกับ Xming) แล้วฝั่ง Windows นั้นส่วนใหญ่แล้วจะทำ (แต่ดูรายละเอียดที่สำคัญด้านล่าง) กุญแจสำคัญที่เหลืออยู่คือบอกแอพ X11 บน pi เพื่อส่งข้อมูล X11 ไปยังพีซี Windows ของคุณ
สิ่งนี้ทำผ่านDISPLAY
ตัวแปรสภาพแวดล้อม โดยปกติหากเซิร์ฟเวอร์ X และแอปทำงานบนคอมพิวเตอร์เครื่องเดียวกัน DISPLAY จะระบุหมายเลขเซิร์ฟเวอร์ (เช่น:0
หากคุณใช้เซิร์ฟเวอร์ X เพียงเครื่องเดียว) หรืออาจเป็นเซิร์ฟเวอร์และหน้าจอ (เช่น:0.0
) เนื่องจากไม่มีที่อยู่ IP สิ่งนี้จะบอกไลบรารี X ของแอปว่าเซิร์ฟเวอร์เป็นแบบโลคัลและการเชื่อมต่อจะถูกสร้างขึ้นตามความเหมาะสม
หากต้องการบอกให้แอปส่งข้อมูล X11 ไปยังโหนดระยะไกลให้ระบุที่อยู่ IP ในDISPLAY
ตัวแปร ตัวอย่างเช่นexport DISPLAY=192.168.1.10:0
. สิ่งนี้จะบอกแอป X11 ใด ๆ ที่พวกเขาต้องการเพื่อเปิดการเชื่อมต่อ TCP ไปยัง X server # 0 บนโหนด 192.168.1.10 ชื่อโฮสต์ DNS ใช้ได้ที่นี่หากคุณมีชื่อเหล่านั้นในเครือข่ายของคุณ
สองปัญหาที่อาจเกิดขึ้น
อย่างที่ฉันเขียนไว้ในย่อหน้าแรกการรัน Xming อาจไม่เพียงพอ อาจมีการกำหนดค่าเพิ่มเติมที่จำเป็น
ประการแรกคือเซิร์ฟเวอร์ X11 ของคุณต้องได้รับการกำหนดค่าให้ยอมรับการเชื่อมต่อจากโหนดระยะไกลผ่าน TCP เซิร์ฟเวอร์ X จำนวนมากกระจายวันนี้ (ฉันไม่รู้เกี่ยวกับ Xming) ยอมรับเฉพาะการเชื่อมต่อจากแอพที่ใช้งานในเครื่องเท่านั้นเว้นแต่คุณจะกำหนดค่าไว้อย่างชัดเจน นี่เป็นคุณลักษณะด้านความปลอดภัยเนื่องจากซ็อกเก็ตที่เปิดอยู่ทุกตัวนั้นเป็นเวกเตอร์ที่มีศักยภาพสำหรับการโจมตี
ประการที่สองคือเซิร์ฟเวอร์ X11 ของคุณรักษาฐานข้อมูลของโฮสต์ / ผู้ใช้ที่ได้รับอนุญาตให้เชื่อมต่อ คุณต้องขึ้นบัญชีขาวที่อยู่ IP ของ Raspberry Pi ของคุณ คุณสามารถทำได้โดยการรันxhost
คำสั่งจาก Xming บน Windows ตัวอย่างเช่นจากคอนโซลที่รันใน xterm นอกจากนี้คุณยังสามารถพิมพ์xhost +
เพื่อปิดการใช้งานการตรวจสอบความปลอดภัยนี้ แต่มันอันตรายเพราะจะอนุญาตให้แอปจากที่ใดก็ได้ในโลกเปิดการเชื่อมต่อไปยังจอแสดงผลของคุณ หากคุณอยู่หลังไฟร์วอลล์บน LAN ที่คุณเชื่อใจทุกคน (เช่นบ้านของคุณเอง) นั่นเป็นวิธีที่ง่ายที่สุด แต่ใช้เวลาในการกำหนดค่าอย่างเหมาะสมxhost
หากคุณไม่ได้ใช้
ทางเลือก: ssh -Y
ด้วยวิธีการข้างต้นแอป X11 ของคุณจะพยายามเปิดการเชื่อมต่อ TCP ไปยังเซิร์ฟเวอร์ X ของคุณ การเชื่อมต่อเหล่านี้ไม่ปลอดภัย ใครบางคนในกลุ่มการสอดแนม LAN ของคุณสามารถดักจับพวกเขาได้
เพื่อแก้ปัญหานี้แทนที่จะตั้งค่าตัวแปร DISPLAY บน Raspberry pi ให้ใช้-Y
พารามิเตอร์เมื่อเชื่อมต่อกับมัน (เช่นslogin -Y hostname
) พารามิเตอร์ -Y (เช่น -X) จะสร้างช่องสัญญาณระหว่างโหนดสำหรับการรับส่งข้อมูล X11 วิธีนี้จะทำให้การรับส่งข้อมูล X11 เข้ารหัสและปลอดภัย นอกจากนี้ยังจะกำหนดตัวแปรสภาพแวดล้อม DISPLAY ของตัวเองเพื่อให้แอปใช้อุโมงค์ นอกจากนี้ยังอาจขจัดความจำเป็นในการยุ่งเหยิงxhost
ตั้งแต่ (เท่าที่เซิร์ฟเวอร์ X ของคุณเป็นกังวล) การเชื่อมต่อนั้นมีต้นกำเนิดจากภายในเครื่อง (จากด้านต้นทางของอุโมงค์ SSH)