Synergy, una herramienta muy útil

Buenas compañeros!..

En mi primer post les vengo a traer una rápida guía de una herramienta que uso hace un buen tiempo, ésta se llama Synergy. Este programa nos permite compartir nuestro teclado y mouse entre varias computadoras pasando de un monitor a otro, con sólo arrastrar el mouse al borde del monitor.

Aspectos interesantes:

  • Es multiplataforma! Si señores, pueden cruzarlo por su distro linuxera de gusto, como también por la ventanita y/o manzana.
  • Al estar usando varias computadoras, podemos utilizar varios programas distribuidos entre nuestras máquinas sin saturar un único procesador; dicho de otra forma, significa que no necesitamos de una «super computadora» sino que podemos aprovechar varias de menos recursos.
  • Comodidad, sólo un teclado y un mouse arriba del escritorio.
  • Comparte el portapapeles (copiar y pegar texto) entre las computadoras.

Como bien les conté más arriba, a pesar de ser multiplataforma, nos vamos a centrar en como usarlo en nuestro pingüino. En esta guía me voy a centrar en Debian y sus derivadas (Ubuntu, Linux Mint, etcétera) por practicidad, pero dudo que sea dificultoso migrarlo a otras distros. ¿Empezamos?

1. Instalación:

Podemos descargar la última versión desde acá, o una versión anterior en particular, ya sea beta o estable desde éste link.

O bien, en el caso de Debian y derivadas, desde su respectivo repositorio:

# apt-get install synergy

La instalación del paquete debe hacerse en todas las máquinas que se quieran involucrar en su uso.

2. Configuración:

El primer paso en la configuración de synergy es abrir el puerto por el cual se harán las conexiones, por default este es el puerto 24800. (en el caso de ya tenerlo usado o simplemente quieren usar otro, se puede hacer tranquilamente, tan sólo al ejecutarlo tendrán que especificar el puerto a usar); esto se hace con el comando iptables:

# iptables -A INPUT -p tcp --dport 24800 -j ACCEPT

¿Qué hace esto?

-A = agrega una regla a la cadena.
-p = especifica el protocolo.
--dport = indica el puerto de destino.
-j = determina la acción.

2.2. Archivo de Configuración:

Ahora con el puerto abierto, procedemos a configurar synergy:

Con su editor de texto favorito (en mi caso vi) creamos el archivo synergy.conf en /etc/

# vi /etc/synergy.conf

Dentro del mismo vamos a escribir la siguiente estructura:

section: screens
hostnameDelServidor:
hostnameDelCliente1:
hostnameDelCliente2:
end
section: aliases
hostnameDelServidor:
ipDelServidor
hostnameDelCliente1:
ipDelCliente1
hostnameDelCliente2:
ipDelCliente2
end
section: links
hostnameDelServidor:
right = hostnameDelCliente2
left = hostnameDelCliente1
hostnameDelCliente1:
right = hostnameDelServidor
hostnameDelCliente2:
left = hostnameDelServidor
end

Nota: la estructura antes mostrada, es un ejemplo de una configuración con 3 máquinas. En la cual la del medio es el servidor (la que cuenta con el mouse y teclado) y las otras 2 como clientes a sus costados. Variar esta configuración dependiendo del orden y cantidad de máquinas que gustes.

2.2.1. Ejemplo de configuración:

//Orden: Izquierda —-> Derecha

//Hostname: PC1 (servidor) —-> PC2 (cliente)

//IP: 10.9.0.1 —-> 10.9.0.2

section: screens

PC1:

PC2:

end

section: aliases

PC1:

10.9.0.1

PC2:

10.9.0.2

end

section: links

PC1:

right = PC2

PC2:

left = PC1

end

2.2.2. ¿Por qué usar una configuración basada en texto?

Bueno, la primera razón es que en realidad no tenés opción, al menos que estés usando alguna versión con interfaz gráfica. En segundo lugar, te dá mayor control. Una interfaz no puede crear una configuración avanzada, como una conexión no recíproca. Un ejemplo de una conexión no recíproca es si vas a la derecha del monitor A llegás al monitor B, pero si vas a luego a la izquierda del monitor B llegás al monitor C en vez de nuevamente al monitor A como sería en una configuración de conexión recíproca.

Otras consideraciones:

  • Éstas configuraciones son más fáciles de compartir con otras personas.
  • Podés tener más de una configuración armada, para distintos casos. (como lo puede ser con una notebook que la usas en varios lugares)

2.3. Iniciando Servidor / Cliente

2.3.1. Iniciar Servidor

Una vez hechas las configuraciones pertinentes, es tan simple como poner lo siguiente en consola:

  $ synergys

Note la ‘s’ al final, esta se refiere a server.

Si queremos ver que haya cargado la configuración con éxito y algo más de info, al iniciarlo, poner lo siguiente:

  $ synergys -d DEBUG

2.3.2. Iniciar Cliente

Una vez iniciado el servidor en la máquina desde la que usaremos nuestros periféricos (teclado y mouse), iniciamos como clientes el resto de las máquinas involucradas; colocando en la terminal:

  $ synergyc -f IPdelServidor

Note la ‘c’ de client, y donde dice IPdelServidor poner la IP correspondiente, si nos centramos en el caso ejemplo (ver 2.2.1) sería:

  $ synergyc -f 10.9.0.1

–Si queremos ver su comportamiento y conexiones con el servidor:

  $ synergyc -f IPdelServidor -d DEBUG

–Si habíamos especificado un puerto distinto al que usa por default (24800), ponemos:

  $ synergyc -f IPdelServidor:puerto

3. Problemas comunes (con los que personalmente me encontré):

3.1. Mismo Hostname:

Si alguna de las computadoras de las que quieres conectar a través de Synergy tiene el mismo nombre que otra, el programa no va a saber al utilizarlas a cual de ellas se refiere. Para resolver el problema, debemos cambiarle el nombre (hostname) a una de ellas. Esto lo logramos de la siguiente manera:

En terminal:

  hostname nombre_comp

,después editamos el archivo:

  /etc/hostname

y el archivo:

  /etc/hosts

,asegurándonos que 127.0.0.1 referencie esa misma computadora:

127.0.0.1 localhost
127.0.1.1 nombre_comp

3.2. Error «Unknown screen name «XXX» «

Si la configuración fue cargada con éxito y salta este error, entonces significa que el monitor del servidor no está en la configuración. Todos los monitores tienen que estar listados en la configuración.

3.3. Error «Cannot open primary screen«

Para resolver esto, una solución simple es primero iniciar el cliente, y luego el servidor.

3.4. Otros problemas

Para otros errores que les surjan, les puede ser de utilidad el siguiente link de problemas en la página de Synergy.

Espero les haya gustado mi breve tutorial. Cabe mencionar que si bien muestro una configuración básica, tiene muchas otras funcionalidades para poder agregar, como lo sería limitar en que parte del monitor se hace la transición a la otra máquina, entre otras. Si quieren ampliar, pueden googlear para configuraciones más avanzadas.

Eso es todo, y espero que la contribución sea un granito más de arena para todos.

Desde ya muchas gracias..

Scalibur..


24 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   esmorga dijo

    Ohhhhhhhhhh
    Maravilloso, muy , pero que muy útil.
    Muchas gracias.

    1.    Scalibur dijo

      OT: Veo que aceptaron mi post!.. wii..

      Me alegra que te sea útil.. 😀

  2.   hexborg dijo

    Muy bueno. Esto la verdad es que parece muy util. Había oido hablar de synergy, pero nunca lo había probado. Muchas gracias. 🙂

  3.   Miguel Martinez dijo

    Buena información, bien estructurado vamos a probarlo

  4.   Blaire Pascal dijo

    Bueno Scalibur… Bienvenido a la familia. Mi usr agent está malo por si acaso. Muuuy útil.

    1.    Scalibur dijo

      Gracias!.. ..mi usr agent también es incorrecto..uso Linux Mint por el momento con OpenBox..próximamente usuario de ArchLinux..

      Y la idea del tópico era introducir algo beneficioso y de lo cual no haya un tutorial, o por lo menos que haya visto.. xP

      Saludos!..

  5.   jorgemanjarrezlerma dijo

    Sin palabras, que mas puedo decir. Un excelente tópico además de buenisima alternativa u opción para los que tienen (me incluyo) la necesidad de utilizar múltiples PC’s y administrarlas desde una sola sin tanto encima del escritorio.

  6.   Charlie-Brown dijo

    Esto es más efectivo que utilizar un KVM, pues permite hacer copy & paste entre los diversos equipos… MUY ÚTIL el post, y eso que es el primero.

  7.   Scalibur dijo

    Muchísimas gracias por la bienvenida!.. ..y me alegro que les sea de utilidad..

    Espero este sea el primero de unos cuantos ;)..

    1.    KZKG^Gaara dijo

      Bienvenido socio 😉
      Esta aplicación la había usado ya en un proyecto antes, la única pega o limitante que le ví es que yo necesitaba controlar 15 ordenadores de forma simultánea JAJA, demasiado LOL!

      Saludos y sí, esperemos sea el 1ro de muchos más 😀

  8.   AlonsoSanti14 dijo

    Hola! muy buen post, lo voy a provar con mi pc de Escritorio y mi lap, que se le jodio el teclado…..solo me quedo una duda, se que el programa hay que instalarlo en las dos compus, pero lo de la configuracion no me quedo muy claro, solo se hace en el PC Server o en las dos tengo que poner el archvo de configuracion?

  9.   AlonsoSanti14 dijo

    Hola! muy buen post, lo voy a provar con mi pc de Escritorio y mi lap, que se le jodio el teclado…..solo me quedo una duda, se que el programa hay que instalarlo en las dos compus, pero lo de la configuracion no me quedo muy claro, solo se hace en el PC Server o en las dos tengo que poner el archvo de configuracion?

    1.    Scalibur dijo

      Buenas!.. ..sólo es necesario la config en la PC Server.. ..espero te sirva..

      1.    AlonsoSanti14 dijo

        ok gracias…y claro que me sera muy util…

  10.   msx dijo

    Todavía no lo usé pero si tiene buena velocidad de respuesta quizás sea una alternativa interesante a ssh/mosh cuando tenés la máquina al lado.

    1.    Scalibur dijo

      Buenas!.. ..realmente es muy rápido en cuanto a respuesta.. ..no hay diferencia prácticamente entre una máquina y otra.. ..también es posible configurar synergy por ssh.. ..Saludo!..

      1.    msx dijo

        Listo, miré los archivos de configuración shippeados con mi distro, miré tu guía y ya tengo los equipos unidos con Synergy sobre Avahi en vez de IPs (que es lo que uso en casa).
        Muy clara tu explicación Scalibur. Por el poder de Grayskull !!

        Ah no, ese era otro espadachín 😛
        http://www.youtube.com/watch?v=6GggY4TEYbk

        1.    Scalibur dijo

          Jajaja.. ..me alegro mucho que te haya sido de ayuda..

          PS: que interesante Avahi, nunca había escuchado de él..

          1.    msx dijo

            Avahi / mDNS es el mejor invento del mundo después de la chocolatada Latte 🙂

            En realidad Avahi es el desarrollo opensource de Bonjour, la implementación de Apple del protocolo Zeroconf que incluye a mDNS como pilar de la implementación ya que es justamente la tecnología mDNS la que permite el multicast en la red LAN para que se autodescubran y luego autoconfiguren todos los equipos conectados que corran este serivicio.
            Y aquí quiero hacer un breve paréntesis:
            Apple siempre está en el centro de la crítica despiadada del resto de la industria y la realidad es que la mayoría de esas veces es totalmente injusto ya que tanto el protocolo mDNS (multicast de equipos usando Zeroconf), como CUPS y WebKit, por nombrar tres desarrollos hiperconocidos, fueron desarrollados por Apple de forma totalmente abierta y hoy todos nos beneficiamos de ellos. Micro$oft, en cambio, no sólo tiene prácticas empresariales odiosas (como las Apple, es cierto) sino que además son unos mediocres que se miran el ombligo y viven siempre haciendo desarrollos a escondidas y sin publicar las especificaciones, tal fue el caso CIFS, desarrollo de Microchot basado en el SMB (Server Message Block) y más tarde reinventado en el terreno F/LOSS como SAMBA.
            En este caso particular Micro$oft también tiene su implementación de Zeroconf pero por supuesto que es una implementación privativa, totalmente cerrada y bastante más mediocre que la de Apple ya que si nos ponemos a ver lo que generalmente son las redes Microsoft vamos a ver multitud de paquetes yendo y viniendo por todos lados, colisionando entre sí y saturando la red.
            Es más: si tienen oportunidad de observar redes Microsoft van a ver como los leds testigos de carga de las placas de red (generalmente verde) parpadean continuamente sin parar, a lo loco, cuando la misma implementación con soluciones Apple o F/LOSS son mucho más eficientes.
            Continuemos…

            Las ventajas de usar Avahi/Zeroconf/Bonjour son múltiples, entre ellas:
            1. nunca más necesitás acordarte la IP de cada máquina ya que usando Avahi accedés a ellas a través de su nombre + .local, por ejemplo:
            olivetti.local (mi server casero multipropósito)
            arrakis.local (el NAS)
            heybeavis.local (mi lap)
            etc.
            Usando Avahi/mDNS accedo a cada una de ellas con su hostname en vez de la IP. De esta forma, en entornos de _muchas_ máquinas te desligás del problema de que cambien las IPs de los equipos ya que siempre vas a accederlos por su hostname.
            Además de esta forma las redes informáticas son mucho más manejables para personas que no están familiarizadas con el concepto OSI y a las que una dirección IP les sigue pareciendo algo casi arcano.
            En mi caso particular ya saben en casa que si yo no estoy y la red anda lenta es porque estoy torrenteando a lo bestia (todo contenido legal, por supuesto :D) así que lo único que tienen que hacer es acceder al servidor a través de su nombre y pausar las descargas – usando la genial interfaz web de Transmission. Pero bueno, ellos ni saben qué es Transmission tampoco xD
            2. Plug & Play: en una organización o red grande al utilizar Avahi hacés accesibles automáticamente cada dispositivo que quieras compartir, por ejemplo impresoras, escáneres, servers, NAS, etc.
            3. Avahi/mDNS también permite designar IPs fijas a un hostname determinado. Por ejemplo: podés declarar que todas las máquinas que se encuentran en un determinado rango de red sean accesibles a traves del hostnameX.local lo que simplifica enormemente la interacción con dichas máquinas (service, instalación de nuevo software, etc.).
            4. Es realmente MUY COMODO usar Avahi/mDNS en la instalación de redes a clientes ya que de esta forma -por lo arriba expuesto- nos liberamos de acordarnos eternamente de la infraestructura y configuración de las mismas. Sabiendo como se llama cada equipo (por ejempleo pingueando el broadcast) nos movemos como una anguila por la red y terminamos mucho antes nuestro trabajo sin contratiempos 🙂

            En fin, Avahi/mDNS (Avahi/Zeroconf) brinda muchas posibilidades de las cuales yo utilizo apenas una fracción pero que seguramente alguien que tenga que admnistrar una red con multitud de equipos con necesidades heterodoxas y ambientes mutables lo va a encontrar muy útil ^_^

  11.   rodolfo dijo

    jaja buen post, lo bueno es que para cuando uno trabaja en varios escritorios a la vez tener un mouse para todos realmente facilita todo, me parece genial.
    Por cierto sería extraño que no aceptarán el post es muy bueno.

  12.   Hyuuga_Neji dijo

    Excelente articulo…. gracias y continua poniendo cosas interesantes.

  13.   Ado Ello dijo

    Gracias por descubrirme este programa.
    Me cree la necesidad justo antes de ver el Post.
    Saludos.

  14.   @Jlcmux dijo

    Probando y aprobado.

    Me funcionó perfectamente. Ahora soy la envidia de muchos gamers.

    1.    RAW-Basic dijo

      Hey!.. ..recién me percato de tu respuesta.. ..perdón (lo que pasa cuando uno no revisa su correo)..

      Me alegro que te haya funcionado!.. 😀

      Yo lo sigo utilizando a diario..tanto para ocio como para el trabajo.. 😉