Como configurar o x11vnc para acessar com a tela de login gráfica?

43

Eu tenho um servidor rodando o Ubuntu 12.10 e preciso ser remoto para este servidor sem estar logado.

Encontrei muitas soluções, mas nenhuma parece funcionar com 12.10.

Alguém pode me dar instruções passo a passo sobre como configurar o x11vnc para iniciar como um serviço (antes do login do usuário) para que ao se conectar ao VNC eu seja apresentado a uma tela de login gráfica?

Sou novo no Linux, por isso, forneça o máximo de detalhes possível nas suas respostas / comentários.

Obrigado

    
por user115250 17.12.2012 / 19:27

7 respostas

37

Instale x11vnc:

sudo apt-get install x11vnc

Crie uma senha para seu usuário:

x11vnc -storepasswd

Se você tem a configuração ssh, você pode usá-la para iniciar o x11vnc assumindo que você já está logado, mas lembre-se de dizer para usar o seu arquivo de senha:

x11vnc -usepw

Se você não estiver logado, receberá um erro com a explicação:

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

Supondo que você esteja usando lightdm para o login, você pode corrigir este problema. Você pode iniciar o x11vnc com o comando:

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

Não tenho certeza se essa é a melhor ideia para executar o x11vnc como root. Talvez alguém possa editar com uma maneira de acessar o login sem usar o sudo.

Uma vez que isto esteja rodando, você poderá se conectar usando um cliente vnc como o krdc (para o KDE). Você pode querer usar Tela GNU para manter x11vnc em execução sem precisar abrir a sessão ssh

Consegui descobrir isso usando o link .

Aqui está um exemplo de trabalho inicial que você pode usar para executá-lo na inicialização. Ele precisa ser colocado em /etc/init/x11vnc.conf. (Note que as versões mais novas do Ubuntu usam o systemd, então veja a outra resposta que possui um exemplo de configuração do systemd):

# 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

Depois de ter feito este arquivo, você pode iniciá-lo executando:     sudo start x11vnc Você pode verificar o log em: /var/log/upstart/x11vnc.log

    
por Allen 28.03.2013 / 16:42
32

As respostas acima resolvem o problema, apesar de algumas emendas para versões do Ubuntu com o systemd (15.04+), da seguinte forma:

  • Aproveite a nova funcionalidade -auth guess no x11vnc - o que ajuda!
  • Atualização para systemd (não iniciante)

Execute o seguinte para instalar:

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

Insira isso no arquivo:

[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

Depois, comece com:

sudo systemctl daemon-reload
sudo systemctl start x11vnc

E garanta que o serviço seja iniciado na inicialização:

sudo systemctl enable x11vnc
    
por babelmonk 22.09.2015 / 11:17
14

Veja como:

  1. Instale o servidor X11VNC (ou através do Ubuntu Centro de Software - > Servidor X11VNC)

    sudo apt-get install x11vnc
    
  2. Crie um arquivo de senha VNC.

    sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
    
  3. Crie um arquivo de trabalho no editor nano (ou gedit, leafpad etc.).

    sudo nano /etc/init/x11vnc.conf
    
  4. Cole isso no arquivo:

    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. Salve o arquivo. Você criou um job para o evento Upstart login-session-start .

  6. Reinicie o Ubuntu.

É isso! Agora você deve conseguir conectar-se a qualquer cliente VNC antes do login.

    
por Didier A. 25.09.2014 / 20:33
2

babelmonks respondem como um script bash, copiam e salvam como x11vnc.sh & amp; execute com o sudo bash /path/to/file/x11vnc.sh (desculpe, não tenha representante suficiente para postar um comentário)

#!/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
    
por Nix Badweasel 03.01.2016 / 00:26
1

Use meu script para facilitar a configuração: installvncubuntu1604.sh

Uso:

chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh
    
por user665310 14.03.2017 / 17:20
0

Eu uso meu próprio shell: link

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

no arquivo:

/etc/init/x11vnc.conf

Isso faz com que seja iniciado automaticamente na inicialização, mesmo na tela de logon, ele solicita uma senha.

    
por Деян Добромиров 12.03.2016 / 10:04
0

Instale o pacote x11vnc

#sudo apt-get install x11vnc

Em seguida, defina a senha

#x11vnc -usepw

Em seguida, crie um script de inicialização para x11vnc

#sudo nano /etc/x11vnc.sh

Em arquivo:

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

Em seguida, salve

#sudo chmod 777 /etc/x11vnc.sh

Em seguida, adicione o arquivo de script ao Centro de controle = > Aplicativo de inicialização Em seguida, clique em Adicionar

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

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

> Comment------service

Isso deve ser necessário para adicionar para todos os usuários

Isso será executado somente após o login do usuário

    
por Nandhakumar M 23.08.2017 / 14:24

Tags