¿Habilitar VNC remoto desde la línea de comandos?

66

Tengo una computadora que ejecuta Ubuntu 10.04 y ejecuta Vino , el servidor VNC predeterminado.

Tengo un segundo cuadro de Windows que ejecuta un cliente VNC, pero no tiene ninguna capacidad X11. Estoy conectado al host de Ubuntu desde el host de Windows, pero olvidé habilitar el acceso VNC en el host de Ubuntu.

En el host de Ubuntu, ¿hay alguna forma de habilitar las conexiones VNC desde la línea de comandos de Ubuntu?

Actualizar:

Como @koanhead dice a continuación, no hay una página de manual para vino(por ejemplo, man -k vinoy info vinono devolver nada), y vino --helpno muestra ninguna ayuda).

Stefan Lasiewski
fuente

Respuestas:

25

Solo corriendo

/usr/lib/vino/vino-server

Debería hacer el trabajo.

Una vez que tenga acceso a su servidor, le recomendaría que lo agregue a las aplicaciones de inicio automático para que siempre se inicie.

Probablemente quieras cambiar algunas configuraciones con:

vino-preferences

tenga mucho cuidado cuando ejecute preferencia de vino en una máquina remota, si desmarca "Permitir que otros usuarios controlen su escritorio", no podrá volver a comprobarlo.

o para editar:

~/.gconf/desktop/gnome/remote_access/%gconf.xml

Aquí un archivo de muestra:

<?xml version="1.0"?>
<gconf>
    <entry name="vnc_password" mtime="1289267042" type="string">
        <stringvalue>cXdlcnR5</stringvalue>
    </entry>
    <entry name="view_only" mtime="1289262982" type="bool" value="false"/>
    <entry name="prompt_enabled" mtime="1254965869" type="bool" value="false"/>
    <entry name="authentication_methods" mtime="1289267034" type="list" ltype="string">
        <li type="string">
            <stringvalue>vnc</stringvalue>
        </li>
    </entry>
    <entry name="enabled" mtime="1289263574" type="bool" value="true"/>
</gconf>

Tenga cuidado, la contraseña está codificada en base64. Para este archivo, la contraseña es qwerty. Veo en algún foro que la gente lo ha cambiado con éxito, pero tuve problemas con eso.

Aquí un codificador base64 en línea:

http://www.motobit.com/util/base64-decoder-encoder.asp

Guillaume Coté
fuente
66
Recibí el siguiente error al ejecutar /usr/lib/vino/vino-server:No protocol specified ** (vino-server:2040): WARNING **: Could not open X display
Tuan Anh Hoang-Vu
@hvtuananh ¿Tiene una pantalla que pueda compartir? ¿Tiene la variable evd DISPLAY configurada en consecuencia? Mi respuesta asume que ya tiene una pantalla que comienza por defecto, pero no tiene cadena y usa la línea de comando para que esté disponible.
Guillaume Coté
1
Esto no funciona en (al menos) 13.10. Ver la respuesta de ouzmoutous a continuación en su lugar.
Emil Styrke
Si alguien tiene problemas, observe el error: bugs.launchpad.net/ubuntu/+source/vino/+bug/1607663 .
Rmano
3
vino-preferences: command not found
endolito
28

Respuesta corta:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/enabled true

como menciona la respuesta aceptada, si vino no se inicia en la máquina remota, use

/usr/lib/vino/vino-server

Respuesta larga y más información:

Un subconjunto de las configuraciones para el servidor de acceso remoto incorporado actual (vino) se puede ver, como se mencionó, desde las preferencias de vino. Se puede ver una lista completa de los indicadores de gconf con el gconf-editorcomando, que se enumera en / desktop / gnome / remote_access. También puede ver las otras teclas de acceso remoto con este comando (o una variación):

gconftool-2 -a /desktop/gnome/remote_access

(Por alguna razón, -Rtambién funcionará).

También puede obtener la documentación de la clave de esquema a través del --long-docsargumento arg.

Por ejemplo, para la clave de puerto alternativo:

gconftool-2 --long-docs /desktop/gnome/remote_access/alternative_port

       The port which the server will listen to if the
       'use_alternative_port' key is set to true.
       Valid values are in the range from 5000 to 50000.

Entonces, por ejemplo, aquí se explica cómo cambiar el puerto predeterminado a través de la línea de comando:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/use_alternative_port true
gconftool-2 --set --type=int /desktop/gnome/remote_access/alternative_port 5999

gconftool le dará las claves bajo un directorio dado. Aquí está la sección 'remote_access':

gconftool-2 -a /desktop/gnome/remote_access
 use_upnp = false
 vnc_password = 
 authentication_methods = [vnc]
 network_interface = 
 require_encryption = false
 disable_background = false
 enabled = true
 use_alternative_port = false
 mailto = 
 disable_xdamage = false
 lock_screen_on_disconnect = false
 icon_visibility = always
 view_only = false
 prompt_enabled = true
 alternative_port = 5900

Aquí se explica cómo enumerar todos los documentos de esquema en / desk / gnome / remote / access (a través de la línea de comandos / bin / bash):

for key in ` gconftool-2 -a /desktop/gnome/remote_access | awk '{print $1}'  ` ; do echo $key ; gconftool-2 --long-docs /desktop/gnome/remote_access/$key ; done
belacqua
fuente
/usr/lib/vino/vino-serverno funciona desde SSH, diceCannot open display:
endolith
24

También quería habilitar vino con la línea de comando sin entrar en las preferencias de vino.

Cuando comencé /usr/lib/vino/vino-server, dice que no tenía habilitado el servicio de uso compartido de escritorio.

Con Unity gconftoolya no se puede usar. Tenemos que hacerlo a través de gsettings.

Entonces, primero, habilite vino:

gsettings set org.gnome.Vino prompt-enabled true

Entonces comienza vino:

/usr/lib/vino/vino-server

Ahora puede acceder de forma remota a su computadora.

Si quieres ver todas las configuraciones disponibles para Vino:

gsettings list-keys org.gnome.Vino
ouzmoutous
fuente
2
Para hacer esto a través de SSH o desde un terminal en modo de texto donde la variable de entorno DISPLAY no está configurada, debe anteponer DISPLAY =: 0 al comando set, de lo contrario, "no se pudieron cometer cambios en dconf".
Emil Styrke
Entonces, además de lo anterior, tuve que hacerlo export DBUS_SESSION_BUS_ADDRESS=.... Para obtener este valor variable, copié del entorno de un proceso en ejecución ( pgrep -u myUserName -lpara obtener la lista de procesos, elija un número y luego tr '\0' '\n' < /proc/NUMBER/environ | grep DBUS). Luego exporte DBUS_SESSION_BUS_ADDRESS con el valor devuelto. Entonces el comando corrió.
RJFalconer
primer comando me da: No hay tal clave "habilitada"
stiv
19

En Ubuntu 14.04, encontré que la siguiente variación funcionó para mí:

export DISPLAY=:0
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

Si esto no funciona, su sesión X podría estar ejecutándose en algo diferente :0, por lo que un rápido ps aux | grep Xdebería mostrar un :1o:2

Taeram
fuente
1
Usted debe comenzar con el export DISPLAY=:0que los comandos gsettings fallará sin: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY.
vaab
La mejor respuesta con diferencia. Pero, ¿cómo haces que Vino se inicie automáticamente al reiniciar?
Pferrel
con esto, el puerto vnc está abierto, pero mi cliente vnc se detiene para siempre. ¿Qué puede ser el probem?
David Portabella el
Si su cliente VNC no se conecta al escritorio, probablemente se deba a que el cifrado permanece activado. - Cada vez que cierre la sesión y vuelva a iniciar sesión, debe deshabilitar el cifrado nuevamente. - Puede colocar estos comandos en un shell e invocarlo cuando se inicie el escritorio. Busque las "Preferencias de la aplicación de inicio" en su escritorio Ubuntu.
Jaime
13

¿Por qué, por amor a todo lo que es bueno en este mundo difícil, no hay una entrada de hombre para vino o vino-server o para cualquiera de los comandos enumerados en dpkg -L vinola salida? Para el caso, ¿por qué debería instalarse algún paquete en un sistema Ubuntu, que omita una página de manual al menos para los comandos relevantes? Ok, despotrican. La mejor respuesta que he encontrado hasta ahora está aquí: http://ubuntuforums.org/archive/index.php/t-266981.html

Realmente espero que esto ayude, y espero que en el futuro la comunidad de Ubuntu documente todos estos comandos huérfanos. "Facilidad de uso" no significa abandonar la línea de comando, y ciertamente no significa abandonar la documentación fácilmente accesible. </grumble>

koanhead
fuente
Intente ejecutar / usr / lib / vino / vino-server. Por la poca ayuda y documentación disponible, use vino-server --help-all.
koanhead
44
Vincular a otra fuente es malo, esa fuente podría desconectarse en el futuro y su respuesta ya no sería válida.
Phil Hannent el
Un punto extra para la diatriba.
Marnix A. van Ammers
Está en / usr / lib, por lo tanto, no es un comando que el usuario normalmente ejecutaría, por lo tanto, no necesita una página de manual ... al menos ese es el razonamiento. FWIW, estoy de acuerdo contigo.
Matthias Urlichs
9

Esto no parece funcionar de forma remota a través de ssh debido a errores en la pantalla, etc. Esto es lo que hice:

export DISPLAY=:0.0 && /usr/lib/vino/vino-server

Principalmente funciona ahora!

Will Bradley
fuente
¡Sí, finalmente! Sin export DISPLAY=:0.0, el escritorio "remoto" que estaba recibiendo era en realidad mi escritorio local (lo uso ssh -X). Además, es necesario "Permitir a otros usuarios" a través de vino-preferences(o los comandos de shell sugeridos en otras respuestas) antes de ejecutar /usr/lib/vino/vino-server. Nota: Probablemente cualquier cliente VNC trabaje con esto una vez que esté configurado correctamente, pero vinagreparece proporcionar la IU más sensata.
nobar
5

Pude configurar una nueva instalación de Ubuntu 16.04 desde una conexión ssh remota con el siguiente script:

#! / bin / bash
PANTALLA de exportación =: 0
leer -e -p "Contraseña de VNC:" -i "contraseña de ubuntu"
dconf write / org / gnome / desktop / remote-access / enabled true
dconf write / org / gnome / desktop / remote-access / prompt-enabled false
dconf write / org / gnome / desktop / remote-access / autenticación-métodos "['vnc']"
dconf write / org / gnome / desktop / remote-access / require-encryption false
dconf write / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ password | base64) \' \"
dconf dump / org / gnome / desktop / remote-access /
reinicio de sudo service lightdm

Las comillas son importantes para cualquiera de las configuraciones de cadena (marcas simples dentro de comillas). Para que dconf pueda escribir necesita acceso a XWindows, por eso se necesita la parte EXPLAY de exportación. Creo que aún necesita iniciar sesión en el escritorio en la máquina Ubuntu real para conectarse con VNC después de esto. El comando de volcado solo está allí para confirmar que todas las configuraciones tomaron posesión, realmente no lo necesita.

Opcionalmente, puede hacer esto si desea mantener la pantalla todo el tiempo:

dconf write / org / gnome / desktop / screensaver / lock-enabled false
dconf write / org / gnome / desktop / screensaver / ubuntu-lock-on-suspend false
dconf write / org / gnome / desktop / session / idle-delay "uint32 0"
Integrador
fuente
1

Para cualquiera que use Linux Mint 15, tengo todo esto para trabajar en mi MintBox2 haciendo lo siguiente. Ahora puedo ejecutar el MintBox 2 completamente sin cabeza con: ssh + vino + Tight VNC.

Escriba en masilla mediante conexión ssh a la máquina LinuxMint MintBox2:

sudo su
[enter your root password]
echo $DISPLAY
export DISPLAY=:0.0
startx &   }This loads up LinuxMint on screen as "root" user
[press the return key again to get back to BASH prompt]

Ahora, si lo desea (esto no es necesario) en un terminal LinuxMint (es decir, no en masilla) escriba:

echo $DISPLAY

=> Obtiene una salida de: 1 [es decir, esto me causó muchos problemas para resolver, es decir, esto no es 0: 0 !!!!!!!!!!]

Ahora, regrese a masilla y escriba:

echo $DISPLAY
export DISPLAY=:1
/usr/lib/vino/vino-server

=> Ahora se carga y puede usar la ventana 7 Tight VNC Viewer para acceder a Linux Mint, etc.

Espero que esto ayude a alguien por ahí ...

CMP
fuente
1

Tuve el mismo problema con xubuntu después de la actualización 18.04. Primero instale vino. La mía fue eliminada en la actualización sin previo aviso. Además, incluso después de instalar vino, el comando vino-preferencias no funciona.

Aquí hay una solución fácil:

  • Instalar dconf-editor

    sudo apt install dconf-editor 
    
  • luego ábralo y vaya a /org/gnome/desktop/remoteacceder y turn off encryption.

También hay varias otras opciones remotas que puede configurar en dconf-editor. Sin embargo, hasta que instale vino, el acceso remoto no se muestra en dconf-editor.

Espero que alguien pueda explicar qué pasó con las preferencias de vino.

Carol McAnulty
fuente
-1
gsettings reset-recursively org.gnome.Vino
Abdennour TOUMI
fuente
55
Sería útil si pudiera editar su respuesta para explicar qué hace esto y cómo responde a la pregunta.
David Edwards