आलेखीय लॉगिन स्क्रीन के साथ उपयोग करने के लिए x11vnc सेटअप कैसे करें?


50

मेरे पास एक सर्वर है जो Ubuntu 12.10 पर चल रहा है और लॉग-इन किए बिना इस सर्वर को रिमोट करने में सक्षम होने की आवश्यकता है।

मुझे कई समाधान मिले हैं, लेकिन कोई भी 12.10 के साथ काम नहीं करता है।

क्या कोई मुझे x11vncसेवा (उपयोगकर्ता लॉगिन से पहले) के रूप में शुरू करने के लिए कॉन्फ़िगर करने के लिए चरण-दर-चरण निर्देश दे सकता है ताकि वीएनसी से कनेक्ट करते समय मुझे ग्राफिकल लॉगिन स्क्रीन के साथ प्रस्तुत किया जाए?

मैं लिनक्स के लिए नया हूं इसलिए कृपया अपनी प्रतिक्रियाओं / टिप्पणियों में अधिक से अधिक विवरण दें।

धन्यवाद


इन सभी आदेशों और कॉन्फ़िगरेशनों की मात्रा जो एक औसत उपयोगकर्ता को दूरस्थ कंप्यूटर की स्क्रीन से कनेक्ट करने के लिए बस करने की आवश्यकता है, वह केवल हास्यास्पद है। विंडोज पर, यह सिर्फ काम करता है ... कुछ माउस क्लिक के साथ, हालांकि दूरस्थ डेस्कटॉप सुविधा केवल महंगे संस्करणों पर काम करती है। मैंने कुछ घंटे बिताए हैं, और मैं अभी भी वीएनसी को स्वचालित रूप से शुरू नहीं कर पाया। यही कारण है कि लिनक्स औसत उपयोगकर्ताओं के लिए अलोकप्रिय ओएस बना रहेगा ... (कृपया "एंड्रॉइड में लिनक्स का उपयोग किया जाता है" जैसी चीजों को इंगित न करें! या कुछ और। शब्दों के विभिन्न संदर्भों में अलग-अलग अर्थ होते हैं। आप जानते हैं कि "लिनक्स" का मेरा क्या मतलब है। संदर्भ।)
अरे सब्जियों

जवाबों:


43

X11vnc स्थापित करें:

sudo apt-get install x11vnc

अपने उपयोगकर्ता के लिए एक पासवर्ड बनाएँ:

x11vnc -storepasswd

यदि आपके पास ssh सेटअप है तो आप x11vnc को शुरू करने के लिए इसका उपयोग कर सकते हैं मान लें कि आप पहले से लॉग इन हैं, लेकिन यह याद रखें कि अपनी पासवर्ड फ़ाइल का उपयोग करें:

x11vnc -usepw

यदि आप लॉग इन नहीं हैं, तो आपको स्पष्टीकरण के साथ एक त्रुटि मिलेगी:

If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:

 gdm:     -auth /var/gdm/:0.Xauth
          -auth /var/lib/gdm/:0.Xauth
 kdm:     -auth /var/lib/kdm/A:0-crWk72
          -auth /var/run/xauth/A:0-crWk72
 xdm:     -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
 dtlogin: -auth /var/dt/A:0-UgaaXa

मान लें कि आप लॉगिन के लिए lightdm का उपयोग कर रहे हैं आप इस समस्या को ठीक कर सकते हैं आप कमांड के साथ x11vnc शुरू कर सकते हैं:

sudo x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw

मुझे यकीन नहीं है कि यह x11vnc को रूट के रूप में चलाने के लिए सबसे अच्छा विचार है। शायद कोई sudo का उपयोग किए बिना लॉगिन को एक्सेस करने के तरीके के साथ संपादित कर सकता है।

एक बार जब यह चल रहा है तो आपको knc (KDE के लिए) जैसे vnc क्लाइंट का उपयोग करने में सक्षम होना चाहिए। आप ssh सत्र को खुले बिना x11vnc को चालू रखने के लिए GNU स्क्रीन का उपयोग करना चाह सकते हैं

मैं http://ubuntuforums.org/showthread.php?t=2039022 का उपयोग करके यह पता लगाने में सक्षम था ।

यहाँ एक नमूना अपस्टार्ट कार्य है जिसे आप स्टार्टअप पर चलाने के लिए उपयोग कर सकते हैं। इसे /etc/init/x11vnc.conf में डालना होगा। (ध्यान दें कि उबंटू के नए संस्करण सिस्टेम का उपयोग करते हैं इसलिए एक नमूना सिस्टेम कॉन्फिगर होने वाले दूसरे उत्तर को देखें):

# description "start and stop x11vnc"

description "x11vnc"

start on runlevel [2345]
stop on runlevel [^2345]

console log
#chdir /home/
#setuid 1000
#setgid 1000

respawn
respawn limit 20 5

exec x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw

एक बार जब आप यह फ़ाइल बना लेते हैं, तो आप इसे चलाकर शुरू कर सकते हैं: sudo start x11vnc आप लॉग इन की जाँच कर सकते हैं: /var/log/upstart/x11vnc.log


1
आप x11vncएक सामान्य उपयोगकर्ता के रूप में चला सकते हैं , कोई समस्या नहीं है। उदाहरण के लिए: मेजबान के लिए ssh और x11vnc -safer -forever -display :0 2>&1 &tmux सेशन (अच्छा अभ्यास) में भाग लें, यह नीचे चलेंगे $USER
टेरी वांग

इसके अलावा, केवल संदर्भ के लिए, व्यूपोर्ट बदलने के लिए: superuser.com/questions/270608/…
Wtower

2
यह स्पष्ट नहीं करता है कि अनुरोध के अनुसार इसे कैसे शुरू किया जाए (और इस तरह की सुविधा के लिए एक आम आवश्यकता है)
LovesTha

1
X11vnc विकल्पों की पूरी सूची के लिए यहां देखें। मुझे इसे खोजने में बहुत समय लगा: karlrunge.com/x11vnc/x11vnc_opts.html
गेब्रियल स्टेपल्स

1
और इसे बूट पर ऑटो-स्टार्ट के साथ रास्पबेरी पाई पर स्थापित करने के लिए एक उत्कृष्ट ट्यूटोरियल के लिए यहां देखें: megaleecher.net/Raspberry_Pi_VNC_Setup
Gabriel Staples

42

उपरोक्त उत्तर समस्या को हल करते हैं, हालांकि सिस्टमड्यूड (15.04+) के साथ उबंटू के संस्करणों के लिए कुछ संशोधन, निम्नानुसार हैं:

  • -auth guessX11vnc में नई कार्यक्षमता का लाभ उठाएं - जो मदद करता है!
  • सिस्टमड के लिए अद्यतन (ऊपर नहीं)

स्थापित करने के लिए निम्नलिखित चलाएँ:

sudo apt-get install x11vnc
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
# for Ubuntu 15.04+
sudo nano /lib/systemd/system/x11vnc.service
# for Ubuntu 16.10+
sudo nano /etc/systemd/system/x11vnc.service

इसे फ़ाइल में डालें:

[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2

[Install]
WantedBy=multi-user.target

फिर, इसके साथ शुरू करें:

sudo systemctl daemon-reload
sudo systemctl start x11vnc

और यह सुनिश्चित करें कि सेवा बूट पर शुरू हो:

sudo systemctl enable x11vnc

आवश्यक सलाह के लिए कुछ सलाह के लिए संदर्भित bbs.archlinux.org/viewtopic.php?id=168756 /
afters

2
यह उत्तर सही उत्तर के रूप में चिह्नित क्यों नहीं किया गया है?
Cybex

1
अगर वहाँ सब पर कोई प्रदर्शन है, तो एक मनमाना संकल्प सेट कर सकते हैं: sudo xrandr --fb 1920x1080
ओरिएंट

2
यह नहीं दिया जाता है एक x11vnc तुरंत काम करेगा। प्रत्येक 2 सेकंड में विफलता पर पुनरारंभ होने वाली सेवा पर आने से पहले परीक्षण कमांड प्रदान करना एक अच्छा विचार होगा। मैं एक बिना सिर वाले बादल उबंटू 17.10 सर्वर पर lightdm और xfce4 का उपयोग कर रहा हूं। Restart-secहोना चाहिएRestartSec
Ray Foss

1
उबंटू 18.04 भी RestartSecइसके बजाय चाहते हैं Restart-sec
स्कॉट विलेके

14

ऐसे:

  1. X11VNC सर्वर स्थापित करें (या Ubuntu सॉफ्टवेयर सेंटर के माध्यम से -> X11VNC सर्वर)

    sudo apt-get install x11vnc
    
  2. एक VNC पासवर्ड फ़ाइल बनाएँ।

    sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
    
  3. संपादक नैनो (या gedit, लीफपैड आदि) में एक नौकरी फ़ाइल बनाएँ।

    sudo nano /etc/init/x11vnc.conf
    
  4. इसे फ़ाइल में पेस्ट करें:

    start on login-session-start
    
    script
    
    /usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log
    
    end script
    
  5. फ़ाइल सहेजें। आपने उपस्टार्ट ईवेंट लॉगिन-सत्र-प्रारंभ के लिए एक नौकरी बनाई ।

  6. Ubuntu को पुनरारंभ करें।

बस! अब आपको लॉगिन करने से पहले ही किसी भी VNC क्लाइंट से जुड़ने में सक्षम होना चाहिए।


लेकिन आप इसे कैसे काम कर सकते हैं जब lightdm एक मॉनिटर कनेक्ट होने तक दूसरी फ़ाइल नहीं बनाता है?
लवशा

@didibus मैं लुबंटू में ऐसा करने की कोशिश कर रहा हूं, लेकिन x11vncहर बार ऑटोस्टार्ट करने में विफल रहता है। यह एक सेवा के रूप में भी शुरू नहीं होगा, इस बात के लिए। फ़ाइल सिंटैक्स सही है और मैं x11vncशेल से ठीक शुरू कर सकता हूं । मैं क्या खो रहा हूँ?
linuxgringo

यह ल्यूबुन्टू पर भी काम करता है। विशेष रूप से, केले पाई के लिए ल्यूबुन्टू का लेमकर का संस्करण।
एरोनडी

3

बेबीलोनक्स एक बैश स्क्रिप्ट के रूप में उत्तर देते हैं, कॉपी करते हैं और x11vnc.sh के रूप में सहेजते हैं और sudo bash /path/to/file/x11vnc.sh के साथ चलाते हैं (क्षमा करें, टिप्पणी पोस्ट करने के लिए पर्याप्त प्रतिनिधि नहीं है)

#!/bin/bash
#install x11vnc & set password
apt-get install x11vnc -y
x11vnc -storepasswd 123456 /etc/x11vnc.pass
#create config file for  system service
cat > /lib/systemd/system/x11vnc.service <<-EOF
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
 ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc

[Install]
WantedBy=multi-user.target
EOF
#restart new services &  enable on boot
systemctl daemon-reload
systemctl start x11vnc
systemctl enable x11vnc

यदि आप कोई अन्य उत्तर सुधारना चाहते हैं, तो कृपया उसे संपादित करने का सुझाव दें और नया उत्तर न बनाएं।
डेविड फ़ॉस्टर

ख़ुशी से इसे जोड़ देंगे अगर आप एक संपादन @ nix-badweasel बनाना चाहते हैं
babelmonk

1

आसान सेट अप के लिए मेरी स्क्रिप्ट का उपयोग करें: installvncubuntu1604.sh

उपयोग:

chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh

1

यहाँ एक विन्यास काम करता है sddm(केडीई 5 के लिए)। वर्तमान में, के -auth guessलिए काम नहीं करता है sddm, हर बार ऑर्टिकल फ़ाइल अलग होती है, इसलिए हमें ऐसा कुछ चाहिए -auth /var/run/sddm/*। सेवा की तरह दिखता है,

[Unit]
Description="x11vnc"
After=multi-user.target

[Service]
ExecStart=/bin/sh -c "/usr/bin/x11vnc -xkb -noxrecord -display :0 -auth /var/run/sddm/* -rfbauth /etc/x11vnc.pass"
ExecStop=/usr/bin/killall x11vnc

[Install]
WantedBy=multi-user.target

मुझे इसे बाद में रखना होगा multi-user.target, अगर बाद में display-manager.service, x11vncऑर्टिकल फ़ाइल नहीं मिल सकती है , तो संभवत: sddmबाद में ऑर्ट फ़ाइल बनाता है। यह मन्जारो 18 पर परीक्षण किया गया है।


0

मैं अपने स्वयं के शेल का उपयोग करता हूं: https://github.com/dvdvideo1234/UbuntuBatches/tree/master/x11VNC

start on login-session-start

script

sudo /usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /var/srv/x11vnc/x11vnc.pass -forever -bg -rfbport <your_port> -o /var/srv/x11vnc/x11vnc.log

end script

फ़ाइल में:

/etc/init/x11vnc.conf

यह इसे बूट पर ऑटो-स्टार्ट करता है, यहां तक ​​कि लॉगऑन स्क्रीन पर भी यह पासवर्ड मांगता है।


0

X11vnc पैकेज स्थापित करें

#sudo apt-get install x11vnc

फिर पासवर्ड सेट करें

#x11vnc -usepw

फिर x11vnc के लिए स्टार्टअप स्क्रिप्ट बनाएं

#sudo nano /etc/x11vnc.sh

फाइल में:

/usr/bin/x11vnc -bg -forever -shared -reopen -usepw

फिर सेव करें

#sudo chmod 777 /etc/x11vnc.sh

फिर स्क्रिप्ट फ़ाइल को कंट्रोल सेंटर => स्टार्टअप एप्लिकेशन पर जोड़ें और फिर जोड़ें पर क्लिक करें

> Name-----------x11vnc

> Command-----<map the script file

> Comment------service

यह सभी उपयोगकर्ता के लिए जोड़ना आवश्यक है

यह केवल यूजर लॉगिन के बाद चलेगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.