X11vnc'nin grafiksel giriş ekranına erişmesi için nasıl kurulur?


50

Ubuntu 12.10 çalıştıran bir sunucum var ve oturum açmadan bu sunucuya uzaktan erişebilmem gerekiyor.

Birçok çözüm buldum, ancak hiçbiri 12.10 ile çalışmıyor gibi görünüyor.

Birisi bana x11vncVNC ile bağlantı kurarken grafiksel bir giriş ekranı ile sunulacak şekilde nasıl bir hizmet olarak başlayacağımı (kullanıcı oturum açmadan önce) nasıl adım adım talimatlar verebilir ?

Linux'ta yeniyim, bu yüzden lütfen cevaplarınız / yorumlarınız için mümkün olduğunca fazla ayrıntı verin.

Teşekkürler


Ortalama bir kullanıcının yalnızca uzaktaki bir bilgisayarın ekranına bağlanmak için yapması gereken tüm bu komut ve yapılandırmaların miktarı çok saçma. Windows'ta, sadece birkaç fare tıklamasıyla çalışır, ancak uzak masaüstü özelliği yalnızca pahalı sürümlerde çalışır. Birkaç saat harcadım ve hala VNC'yi otomatik olarak başlatamadım. Bu nedenle Linux ortalama kullanıcılar için popüler olmayan işletim sistemi olarak kalmaya devam edecektir ... (Lütfen "Linux Android'de kullanılıyor!" Veya başka şeyler gibi şeyleri işaret etmeyin. Kelimelerin farklı bağlamlarda farklı anlamları vardır. bağlamında.)
Lanetli Sebzeler

Yanıtlar:


43

X11vnc'yi yükleyin:

sudo apt-get install x11vnc

Kullanıcınız için bir şifre oluşturun:

x11vnc -storepasswd

Eğer ssh kurulumunuz varsa, zaten giriş yapmış olduğunuzu varsayarak x11vnc'yi başlatmak için kullanabilirsiniz, fakat şifre dosyanızı kullanmasını söylemeyi unutmayın:

x11vnc -usepw

Giriş yapmadıysanız, açıklamada bir hata ile karşılaşacaksınız:

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

Giriş yapmak için lightdm kullandığınızı varsayarak bu sorunu çözebilirsiniz, x11vnc komutunu şu şekilde başlatabilirsiniz:

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

Bu x11vnc'ı root olarak çalıştırmak için en iyi fikir olduğundan emin değilim. Belki birileri sudo kullanmadan oturum açmaya erişmenin bir yolunu kullanabilir.

Bu bir kez çalıştığında krdc (KDE için) gibi bir vnc istemcisi kullanarak bağlanabilmelisiniz. X11vnc'nin ssh oturumunu açmadan çalışmasını sağlamak için GNU Ekranını kullanmak isteyebilirsiniz.

Bunu http://ubuntuforums.org/showthread.php?t=2039022 kullanarak çözebildim .

İşte başlangıçta çalışmasını sağlamak için kullanabileceğiniz örnek bir başlangıç ​​işi. /Etc/init/x11vnc.conf dosyasına konulması gerekir. (Ubuntu'nun daha yeni sürümlerinin systemd kullandığını unutmayın, bu nedenle örnek systemd config olan diğer cevaba bakınız):

# 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

Bu dosyayı yaptıktan sonra çalıştırarak başlatabilirsiniz: sudo start x11vnc Günlüğü kontrol edebilirsiniz: /var/log/upstart/x11vnc.log


1
x11vncSorun değil, normal bir kullanıcı olarak çalıştırabilirsiniz . Örneğin: ana bilgisayara ssh ve x11vnc -safer -forever -display :0 2>&1 &tmux oturumunda (iyi uygulama) çalıştırın, altında çalışacaktır $USER.
Terry Wang,

Ayrıca, sadece referans olarak, görünüm
alanını

2
Bu, istendiği gibi otomatik olarak nasıl başlatılacağını açıklamıyor (ve böyle bir özellik için ortak bir gereksinimdir)
LovesTha

1
X11vnc seçeneklerinin tam listesi için buraya bakın. : Bana bu bulmak için uzun bir zaman aldı karlrunge.com/x11vnc/x11vnc_opts.html
Gabriel Staples

1
Ve bunu, açılışta otomatik olarak başlatılan bir Ahududu Pi'ye
Gabriel Staples

42

Yukarıdaki cevaplar, Ubuntu'nun sistemli (15.04+) sürümleri için yapılan birkaç değişiklikle birlikte aşağıdaki gibi olsa da sorunu çözüyor:

  • -auth guessX11vnc'deki yeni işlevlerden yararlanın - bu yardımcı olur!
  • Systemd için güncelleme (başlatma değil)

Yüklemek için aşağıdakileri çalıştırın:

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

Bunu dosyaya ekle:

[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

Ardından, ile başlayın:

sudo systemctl daemon-reload
sudo systemctl start x11vnc

Hizmetin açılışta başladığından emin olun:

sudo systemctl enable x11vnc

Başvurulan bbs.archlinux.org/viewtopic.php?id=168756 bazı tavsiyeler / Afters params gerektirir
babelmonk

2
neden bu cevap doğru cevap olarak işaretlenmiyor?
Cybex

1
Hiçbir gösterge hiç yoksa, o zaman kimse keyfi çözünürlüğü ayarlamak isteyebilirsiniz: sudo xrandr --fb 1920x1080.
Orient

2
Bu x11vnc hemen çalışacak bir verilen değil. Her 2 saniyede bir arıza durumunda yeniden başlatılan bir servise başlamadan önce bir test komutu vermek iyi bir fikirdir. Başsız bir bulut Ubuntu 17.10 sunucusunda lightdm ve xfce4 kullanıyorum. Restart-secolmalıdırRestartSec
Ray Foss

1
Ubuntu 18.04 de RestartSecbunun yerine istiyor gibi görünüyor Restart-sec.
Scott Willeke

14

İşte nasıl:

  1. X11VNC sunucusunu kurun (veya Ubuntu Yazılım Merkezi -> X11VNC Sunucusu üzerinden)

    sudo apt-get install x11vnc
    
  2. Bir VNC şifre dosyası oluşturun.

    sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
    
  3. Düzenleyici nano'da (veya gedit, leafpad vb.) Bir iş dosyası oluşturun.

    sudo nano /etc/init/x11vnc.conf
    
  4. Bunu dosyaya yapıştırın:

    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. Dosya 'yı kaydet. Upstart olayı için oturum açma oturumu başlatmak için bir iş yarattınız .

  6. Ubuntu’yu yeniden başlatın.

Bu kadar! Şimdi oturum açmadan önce bile herhangi bir VNC istemcisiyle bağlantı kurabilmelisiniz.


Ancak lightdm, bir monitör bağlanana kadar auth dosyasını oluşturmadığında çalışmasını nasıl sağlarsınız?
LovesTha,

@didibus Lubuntu'da bunu yapmaya çalışıyorum, ancak x11vncher seferinde otomatik başlatmayı başaramıyordum. Bu konuda bir hizmet olarak bile başlamaz. Dosya sözdizimi doğrudur ve x11vnckabuktan başlayabilirim . Neyi kaçırıyorum?
linuxgringo

Bu da Lubuntu'da çalışır. Spesifik olarak, LeMaker'ın Banana Pi için Lubuntu sürümü.
AaronD

3

babelmonks bir bash betiği olarak yanıtlar, x11vnc.sh olarak kopyalar ve kaydeder ve sudo bash ile çalışır /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

Başka bir cevabı geliştirmek istiyorsanız, lütfen bir düzenleme önerin ve yeni bir cevap oluşturmayın.
David Foerster

Eğer bir düzenleme @ nix-badweasel
babelmonk


1

İşte config sddm(KDE 5 için). Şu anda, -auth guessişe yaramıyor sddm, auth dosyası her seferinde farklı, bu yüzden biz de buna benzer bir şeye ihtiyacımız var -auth /var/run/sddm/*. Hizmet benziyor

[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

Sonradan koymak zorundayım multi-user.target, eğer sonra display-manager.service, x11vncauth dosyasını bulamazsa, belki sddmdaha sonra auth dosyasını oluşturur. Bu Manjaro 18 üzerinde test edilmiştir.


0

Kendi kabuğumu kullanıyorum: 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

dosyaya:

/etc/init/x11vnc.conf

Açılışta otomatik başlatılmasını sağlar, hatta oturum açma ekranında bile bir şifre ister.


0

X11vnc paketini kurun

#sudo apt-get install x11vnc

Ardından şifreyi ayarlayın

#x11vnc -usepw

Sonra x11vnc için başlangıç ​​betiği oluşturun

#sudo nano /etc/x11vnc.sh

Dosyada:

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

Sonra kaydet

#sudo chmod 777 /etc/x11vnc.sh

Ardından komut dosyasını Control Center'a ekleyin => Başlangıç ​​Uygulaması Sonra Ekle'yi tıklayın.

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

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

> Comment------service

Tüm kullanıcılara eklemek için bu gerekli olmalı

Bu sadece kullanıcı girişinden sonra çalışacak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.