ฉันใช้การส่งต่อ X11 sshเพื่อเรียกใช้แอพ Linux ในกล่อง Windows ของฉันและเมื่อเครือข่ายลดลงแอปจะสูญเสียทุกอย่างที่กำลังทำงานอยู่ มีอะไรคล้ายกับscreenX11 บ้างไหม?
screenงานได้กับแอป gui
ฉันใช้การส่งต่อ X11 sshเพื่อเรียกใช้แอพ Linux ในกล่อง Windows ของฉันและเมื่อเครือข่ายลดลงแอปจะสูญเสียทุกอย่างที่กำลังทำงานอยู่ มีอะไรคล้ายกับscreenX11 บ้างไหม?
screenงานได้กับแอป gui
คำตอบ:
XpraหรือXpra ทางแยกอ้างว่า:
ดังนั้นโดยทั่วไปมันเป็นหน้าจอสำหรับแอป X ระยะไกล
ฉันไม่ได้ใช้งานมาระยะหนึ่งแล้ว แต่ก็ใช้งานได้ดีเมื่อฉันลอง คุณเริ่มต้นเซิร์ฟเวอร์บนเครื่องระยะไกล:
[remote] $ xpra start :13
จากนั้นคุณแนบกับเซิร์ฟเวอร์จากเครื่องท้องถิ่นของคุณ:
[local] $ xpra attach ssh:remote:13
และตอนนี้ทุกสิ่งที่แสดงบน X display 13 บนเครื่องระยะไกลจะปรากฏขึ้นในเครื่อง:
[remote] $ DISPLAY=:13 xeyes
คุณกำลังมองหาVNC หลักการค่อนข้างคล้ายกับหน้าจอ: คุณเรียกใช้เซิร์ฟเวอร์ VNC ( SCREENกระบวนการพื้นหลัง) และไคลเอนต์ VNC ( screenกระบวนการพื้นหน้า) เซิร์ฟเวอร์ VNC เป็นเซิร์ฟเวอร์ X ดังนั้นคุณจึงสามารถเรียกใช้แอปพลิเคชัน X ในนั้นได้
เรียกใช้เซิร์ฟเวอร์ VNC บนกล่อง Linux และไคลเอนต์ในกล่อง Windows คุณมีการใช้งานหลายอย่างให้เลือก หนึ่งในความเป็นไปได้คือTightVNC TightVNC อยู่ในลีนุกซ์หลายรุ่น (หากไม่ใช่ของคุณ, ติดตั้งหรือเลือกการนำไปใช้ที่ต่างกัน), และมีไคลเอนต์ Windows
หากเครื่องทั้งสองของคุณไม่ได้อยู่ใกล้กับเครือข่าย - หากมีไฟร์วอลล์หรือความเสี่ยงต่อการดักฟังระหว่างเครื่อง - คุณจะต้องเจาะช่องทางการรับส่งข้อมูล VNC ผ่าน ssh มีการส่งต่อพอร์ตโลคัล 5900 ไปยังรีโมตพอร์ต 5900 (5900 สอดคล้องกับจอแสดงผล:0ใช้ 5901 สำหรับ:1ฯลฯ )
ที่จริงแล้วคุณสามารถส่งต่อ X screenลงใน สิ่งเดียวที่ต้องทำคือการตั้งค่า$DISPLAYในscreenหน้าต่างเพื่อให้มันเป็นด้านเดียวกันของมัน
หลังจากssh -Xเข้าไปในเครื่องระยะไกลให้พิมพ์
$ echo $DISPLAY
localhost:N.0และคัดลอกผลปกติ จากนั้นเข้าสู่หน้าต่างscreenท้องถิ่นscreen
$ export DISPLAY=localhost:N.0
หลังจากนี้ให้เรียกXใช้โปรแกรมที่จำเป็นภายในหน้าต่างหน้าจอจะทำ
หมายเหตุ:สำหรับแต่ละscreenหน้าต่างตัวแปรสภาพแวดล้อมมีความเป็นอิสระ ดังนั้นสำหรับแต่ละหน้าต่างคุณอาจต้องตั้งค่าแยกต่างหาก
screen? หรือXVNC? คุณรันหน้าจอบนเครื่อง Linux และเมื่อเครือข่ายของคุณลดลงให้เชื่อมต่อและใช้screen -DRเพื่อเชื่อมต่อเซสชันอีกครั้ง