ความแตกต่างระหว่าง VNC และ ssh -X


27

ทำไมคุณจะใช้ VNC (หรือสำหรับเรื่องที่ NX) ssh -X (-Y)แทนการใช้เพียง ฉันอ่านว่า VNC ใช้แบนด์วิดท์น้อยลง แต่มีความแตกต่าง / ข้อดีอื่น ๆ จากเครื่องมือที่เกี่ยวข้องหรือไม่?

คำตอบ:


30

นอกเหนือจากปัญหาแบนด์วิดท์และเวลาในการตอบสนอง (ซึ่งอาจแตกต่างกันเล็กน้อย) ความแตกต่างใหญ่คือฟังก์ชันการทำงานที่มีให้

VNC ส่งออกทั้งเซสชันเดสก์ท็อปและทั้งหมดในขณะที่ ssh จะเรียกใช้โปรแกรมเดียวและแสดงหน้าต่างบนเวิร์กสเตชันของคุณ

เซิร์ฟเวอร์ VNC ส่งออกเซสชั่นที่ยังมีชีวิตอยู่แม้ในขณะที่คุณยกเลิกการเชื่อมต่อหน้าจอของคุณและคุณสามารถเชื่อมต่อกับมันในภายหลังโดยเปิดหน้าต่างทั้งหมดเป็นต้นซึ่งไม่สามารถทำได้ด้วยอุโมงค์ ssh X เนื่องจากเมื่อเซิร์ฟเวอร์ X ของคุณตาย .


5
นั่นเป็นเหตุผลที่ดีที่สุดที่ฉันใช้ VNC เสมอไม่เคยกำกับ X window (ฉันใช้ VNC เหนืออุโมงค์ ssh) เมื่อฉันปิดฝาแล็ปท็อปของฉันการเชื่อมต่อขาด ด้วย ssh -X ไม่มีทางที่จะกลับมาทำงานต่อได้ - ฉันต้องเริ่มต้นแอปพลิเคชันใหม่ตั้งแต่ต้น ด้วย VNC (ทั้งโดยตรงและผ่านอุโมงค์ ssh) ฉันสามารถเชื่อมต่อใหม่และดำเนินการต่อตรงจุดที่ฉันออกไป
David Cary

8
แม้ว่าบิต OT (เนื่องจาก Q นี้น่าจะเป็นเพียงเกี่ยวกับแอพ GUI): หากไม่จำเป็นต้องใช้แอป GUI จริงและการเข้าถึงเชลล์ขั้นพื้นฐานจะทำ (เช่น xterm) จากนั้นทำ "ssh" ตามด้วย "screen bash" หากตัดการเชื่อมต่อ (ปิดแล็ปท็อป, vpn ตัดการเชื่อมต่อ ฯลฯ ) เปลือกระยะไกลยังคงทำงานอยู่ ล็อกอินอีกครั้ง & เชื่อมต่อใหม่ผ่าน "screen -r" ฉันนำสิ่งนี้มาตั้งแต่ฉันเห็นคนใช้ vnc เพียงเพื่อการเข้าถึงเชลล์ขั้นพื้นฐาน (หรือเรียกใช้ xterm ระยะไกลที่แสดงในเครื่อง); ส่วนใหญ่เวลา (แต่แน่นอนไม่เสมอไป) การเข้าถึงเชลล์อย่างง่ายจะเพียงพอ
ไมเคิล

1
@michael_n ฉันสนใจสิ่งนี้ที่คุณพูดเกี่ยวกับ screen bash แต่ฉันไม่สามารถทำงานได้ ฉันพิมพ์ 'ssh -X -t myusername @ remotehost bash' และหลังจากการเชื่อมต่อลดลงฉันพิมพ์ 'screen -r' แต่มันบอกว่า 'ไม่มีหน้าจอที่จะดำเนินการต่อ' ฉันควรทำอย่างไร?
simona

2
@simona หลังจากล็อกอิน ssh สำเร็จแล้วจึงรันหน้าจอ: ssh user@host; และหลังจากเข้าสู่ระบบ: screen bash; ที่จะตัดการเชื่อมต่อตามมาด้วยctrl+a ctrl+dคุณสามารถออกจากระบบและเข้าสู่ระบบอีกครั้งแล้ว: และscreen -ls screen -rการออก bash ออกจากเซสชันหน้าจอ สำหรับข้อมูลเพิ่มเติม (มากขึ้น) ดูบทเรียนต่าง ๆบนหน้าจอ GNU
ไมเคิล

9

ssh -Xเปลี่ยนเส้นทางคำสั่ง X11 ไปยังเซิร์ฟเวอร์ X ในพื้นที่ของคุณ ดังนั้นราวกับว่าคุณกำลังเรียกใช้โปรแกรมในพื้นที่เมื่อมันทำงานบนคอมพิวเตอร์ที่ปลายอีกด้าน มันช้ามากเพราะใช้แบนด์วิดท์มาก (นี่คือสิ่งที่ผู้คนกำลังพูดถึงเมื่อพวกเขาพูดว่า X11 คือ "เครือข่ายโปร่งใส")

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

ฉันไม่แนะนำให้ใช้ssh -Xผ่านอินเทอร์เน็ตด้วยเหตุผลง่ายๆ: จะใช้แบนด์วิดท์ที่มีอยู่ทั้งหมดของคุณ ฉันคิดว่ามันมีประโยชน์พอสมควรผ่าน LAN ดังนั้นถ้าคุณต้องการเพียงแอปพลิเคชั่นหนึ่งและไม่ต้องการรันทั้งเดสก์ท็อปนี่เป็นวิธีที่ดีที่จะไป มิฉะนั้นเพียงใช้ VNC


3
"มันช้ามากเพราะใช้แบนด์วิดท์จำนวนมากโปรโตคอล X11 นั้นซับซ้อนมากและมักเกี่ยวข้องกับการส่ง pixmaps ขนาดใหญ่ไปมาระหว่างการเชื่อมต่อ" - นี่เป็นสิ่งที่ผิดโพรโทคอล X11 ไม่ซับซ้อนมากและไม่เกี่ยวข้องกับการส่ง pixmaps ขนาดใหญ่ไปมาระหว่างการเชื่อมต่อ เข้าร่วมข้อเสนอนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับระบบ X Window: area51.stackexchange.com/proposals/20129/the-x-window-system

1
@Sherlock: ความจริงก็คือว่ามันใช้แบนด์วิดท์จำนวนมาก ฉันลบประโยคที่ละเมิด
greyfade

1
NX เป็นวิธีที่มีประสิทธิภาพในการส่งข้อมูลโปรโตคอล X11 ผ่านเครือข่าย มันบีบอัดข้อมูลให้เซสชั่นแคชและอุโมงค์ที่กว้างขวางกว่า SSH
Adam Byrtek

4

VNC จะแชร์เดสก์ท็อปทั้งหมดจากระบบระยะไกล มันต้องการเดสก์ท็อปที่เต็มเปี่ยมบนระบบรีโมต

ssh -X ให้คุณเรียกใช้แอปพลิเคชั่น X เดียวจากเซิร์ฟเวอร์ระยะไกล ระบบรีโมตไม่จำเป็นต้องรันเดสก์ท็อปที่สมบูรณ์และบ่อยครั้งที่คุณต้องการแพ็กเกจจำนวนมากเท่านั้นที่จะติดตั้งบนระบบรีโมต

ssh -Xอาจมีประโยชน์เมื่อติดตั้งแพคเกจซอฟต์แวร์ที่ซับซ้อนผ่านการเชื่อมต่อระยะไกล ผลิตภัณฑ์ซอฟต์แวร์บางตัวอาจใช้ตัวติดตั้ง GUI (ฐานข้อมูล Oracle เป็นต้น) ฉันไม่ต้องการติดตั้งและเดสก์ท็อป Gnome ที่เต็มเปี่ยมบนเซิร์ฟเวอร์ระยะไกลของฉัน ดังนั้นคุณติดตั้งแพ็คเกจ X11 หนึ่งหรือสองชุด (Xauth?) บนเซิร์ฟเวอร์ระยะไกลและอนุญาตให้ DBA รันโปรแกรมติดตั้ง Oracle จากระยะไกลโดยใช้สิ่งที่ง่ายเช่น 'ssh -X / media / cdrom / oracle-installer'

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