X11 अग्रेषण: एक साथ कई क्लाइंट्स पर डेस्कटॉप कैसे साझा करें?


2

मैं डेस्कटॉप दृश्य (या एक कार्यक्रम से दृश्य) को एक साथ कई अन्य मशीनों (रूट एक्सेस) को कैसे साझा कर सकता हूं? मैंने इसी तरह के प्रश्न देखे हैं (उदाहरण के लिए, यहाँ और यहाँ ), लेकिन मुझे यकीन नहीं है कि एक साथ कई कैसे होंगे।

जवाबों:


1

आप VNC का उपयोग कर सकते हैं, इस Q & A को देखें: https://softwarerecs.stackexchange.com/questions/20417/same-content-on-several-different- कंप्यूटर-monitors-adminered-remotely/20419#20419 ।

एक VNC सर्वर को "रीड-ओनली" मोड में कई क्लाइंट्स द्वारा साझा किया जा सकता है (अर्थात क्लाइंट कीबोर्ड या माउस के माध्यम से सर्वर को नियंत्रित नहीं कर सकते हैं) या "रीड-राइट" मोड (क्लाइंट कीबोर्ड या माउस के माध्यम से सर्वर को नियंत्रित कर सकते हैं,) लेकिन यह मुश्किल हो सकता है जब कई ग्राहकों ने एक साथ नियंत्रण लिखा है क्योंकि वे एक-दूसरे के साथ हस्तक्षेप कर सकते हैं)।

हाल ही में लिनक्स वितरण में X11 सर्वर में निर्मित VNC समर्थन है, लेकिन इसे सक्षम करने की आवश्यकता हो सकती है (निर्देशों के लिए अपने विशिष्ट वितरण दस्तावेज़ की जांच करें)। वैकल्पिक रूप से आप मैन्युअल रूप से एक सर्वर शुरू कर सकते हैं, मशीन पर चल रहे "मुख्य" एक्स 11 सर्वर से पूरी तरह से स्वतंत्र है। जब मैन्युअल रूप से शुरू किया गया VNC सर्वर एक साथ "रीड-ओनली" और "रीड-राइट" क्लाइंट दोनों को अलग-अलग पासवर्ड का उपयोग कर सकता है (यकीन नहीं तो बिल्ट-इन X11 सर्वर सपोर्ट यही करता है)।

VNC SSH पर शानदार काम करता है और ग्राहकों को निष्पादन के लिए रूट अनुमति की भी आवश्यकता नहीं होती है।


0

लक्ष्य ~ 30 लिनक्स डेस्कटॉप के लिए जो भी छवि / कार्यक्रम चुना गया था उसे वितरित करने के लिए कि क्या कोई उपयोगकर्ता लॉग इन था या नहीं, सामग्री को सुपरसेड करना चाहिए कि उपयोगकर्ता क्या देख रहा था (पीएसए सोचें), और उपयोगकर्ताओं के वास्तविक डेस्कटॉप कार्यों को अनदेखा रहना चाहिए। इसके अलावा, उपयोगकर्ता को सामग्री को बदलने की क्षमता नहीं दी जानी चाहिए। मैंने एक्स और टीसीपी प्रसारण का उपयोग करके एक मूल समाधान की उम्मीद की थी। यह विकसित नहीं हुआ, बल्कि मैंने VNC का उपयोग दूसरों की सिफारिश के अनुसार किया।

क्लाइंट की तरफ, मैं एक खाली स्क्रिप्ट (उदाहरण के लिए X :1) शुरू करने के लिए एक उम्मीद स्क्रिप्ट सेट करता हूं , उस वर्चुअल टर्मिनल (यानी, chvt 1जब आवश्यक हो) पर स्विच करता हूं , और vncserver से कनेक्ट करता हूं।

अर्थात्:

for num in $(seq 0 30); do expect -f xremote$num.exp; done

जहां प्रत्येक xremote स्क्रिप्ट दूरस्थ होस्ट निर्दिष्ट करती है:

set timeout -1
spawn ssh -o ConnectTimeout=10 root@somehost1
match_max 100000
expect "#"
send "X :1 & \r"
expect "#"
send "export DISPLAY=:1 \r"
expect "#"
send "vncviewer -passwd /root/.vnc/passwd -Shared -ViewOnly -FullScreen 192.168.1.1:1& \r"
expect "#"
send "exit\r"
expect eof
exit 0

और सर्वर व्यंजन सामग्री को आगे बढ़ाता है: 1 के बाद:

vncserver :1 -geometry 1024x768 -depth 16

बाद में, यह ग्राहकों पर Xsession को बंद करने के लिए थोड़ा मुश्किल हो गया। इसलिए मैंने सभी Xsession को बंद करने के लिए निम्नलिखित उम्मीद की स्क्रिप्ट का उपयोग किया [X स्वचालित रूप से पुनः आरंभ करता है: 0]:

set timeout -1
spawn ssh -o ConnectTimeout=10 root@somehost1
match_max 100000
expect "#"
send "pkill X   \r"
expect "#"
send "chvt 1 \r"
expect "#"
send "rm /tmp/.X*lock \r"
send "exit\r"
expect eof
exit 0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.