TIP Vnc como servicio
De Gentoo Linux Wiki
| Terminales / Shells • X Windows • Portage • Sistema • Sistema de Archivos • Kernel • Otros |
Tabla de contenidos |
[editar] Introducción
El vnc (Virtual Network Computing) seguro que ya lo conocéis y que no le hace falta ninguna presentación. Yo lo conozco desde hace muchos años, siempre he disfrutado teniéndolo instalado en mi máquina, ya que estuviese donde estuviese, siempre podía acceder a ésta. Ya que el servidor permite abrir conexiones tanto para el cliente vnc como para el servidor web para conectar a través de una aplicación java. Como el cliente es muy chiquitín, persa muy poco (en bytes se entiende), pues es muy sencillo transportarlo en un diskette de 3.5 o descargarlo en un flash de la red. Para disfrutar en cualquier lugar de tu entorno de trabajo, estés allí donde estés.
En el proceso que voy a describir, el servidor que escucha las peticiones para el cliente java, no va a poder ser instalado y no es posible hacerlo al día de hoy (si estoy equivocado decídmelo, hace ya que actualizo mi información desde hace un año --AnimAlf 12:53 5 oct 2006 (UTC)).
Con la forma tradicional de trabajo, siempre que conectabas, lo hacías al espacio de trabajo de un usuario que tenia el servidor a la escucha. Con éste método, esto ya no ocurre, el que escuchará las peticiones será el sistema y también quién realizará la autenticación.
Al hacerlo de este modo hay que tener presente que si se pierde la conexión, los procesos que hallamos iniciados se perderán por el camino, a no ser que sean servicios. Pero bueno, suerte que conocemos screen (¿Cómo que no los conoces? pues ya estás tardando :)) screen nos soluciona la papeleta en este sentido.
Se ha de tener en cuenta el punto anterior. Sobre todo, si por ejemplo queremos compilar el kernel, y lo hacemos conectando de este modo. A tirar de screen, que vale la pena y no se pierde nada (nunca mejor dicho)
[editar] X Display Manager Control Protocol
Conocido comunmente como XDMCP. Bien, como comentaba, de la autentificación ya se encarga el sistema, por lo que una vez tengamos a las criaturas funcionando, cuando el vnc reciba una petición de conexión, simplemente se la concederá.
[editar] X Display Manager
A este lo conocemos de sobra, el xdm, gdm o kdm. el administrador de sesiones X. Es quien contiene al XDMCP, el demonio tiene que ser configurado desde el administrador de sesiones.
Vale, no nos perdamos, comentaba que el vnc ya no autentifica, no, da libre acceso, por lo que cualquiera que conecte, va a parar a una pantalla, y en esa pantalla en en donde nos encontramos el acceso, es el acceso que ya conocemos el acceso por el que tenemos que acceder cada vez que accedemos a las X via xdm (Localmente se puede evitar, pero no viene al caso).
Bien para que este salto se pueda ocurrir. Debemos tener escuchando al XDMCP en localhost, (si tienes montada una red, supongo que sobran explicaciones para tí). O sea se, nos interesa que XDMCP esté escuchando sólamente las peticiones que puedan ser lanzadas desde el vncserver, Si lo tienes escuchando en otra interface que no sea loopback, entonces es que ya lo configuraste para ello, no te hará falta tocar nada de la configuración. . Voy a explicar como configurarlo en los tres administradores conocidos, xdm, gdm y kdm. (sólo te hace falta uno de ello)
Aprovecho que he visto un HOWTO que habla de esto para traducirlo. Así que para configurarlo puedes echarle un vistazo al: TIP XDMCP
Necesitamos que esté XDMCP escuchando las peticiones, así que probamos de conectarnos con Xnest
usuario@maquina ~ $ Xnest -ac -query localhost :1
Si todo va bien veremos en una ventana nuestra pantalla de login:
[editar] Emergiendo vnc
Al emergerger el vnc debemos utilizar el USE server, yo suelo recomendar que las configuracines del uses de los diferentes paquetes se guarde en el archivo de configuración /etc/portage/pakage.use, ya que así si más adelante actualizamos el paquete, no hace falta que pensemos más en ello. Sobre todos si utilizamos el metodo de actualización propuesto por RadikalQ3
~ # echo net-misc/vnc server >> /etc/portage/package.use ~ # emerge -a net-misc/vnc
[editar] Configurando el servicio
Continuaremos decidiendo por que puerto se realizará el acceso, para no complicarnos en estos ejemplos utilizaré el de por defecto el 5900. También debemos elegir el nombre de nuestro servicio, por ejemplo vncd
A continuación con nuestro editor favorito escribiremos dichos datos en el archivo /etc/services por ejemplo
vncd 5900/tcp
ahora debemos incluir dicho servicio en el arranque, ya sea inetd o xinetd si se trata de inetd, deberemos añadir la siguiente línea al archivo /etc/inetd.conf:
vncd stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 16
pero lo más seguro es que se trate del xinetd y lo que haremos será crear un archivo con el nombre vncd en /etc/xinetd.d/ con el siguiente contenido
service vncd
{
id = 5900
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -securitytypes=none -geometry 1024x768 -depth 16
log_on_failure += USERID
disable = no
}
[editar] Iniciando el servicio
una vez realizado lo anterior, sólo tenemos que reiniciar xdm e inetd o xinetd
~ # /etc/init.d/xdm restart ~ # /etc/init.d/xinetd restart o si fuese el inetd ~ # /etc/init.d/inetd restart
Comprobamos que está escuchando
~ # netstat -taup | grep vnc tcp 0 0 *:vncd *:* LISTEN 12446/xinetd
y ya podremos conectar vía vnc con lo que iremos a parar a la pantalla de login
~ # vncviewer localhost
