Question Le client Synergy peut-il être configuré pour se connecter à l'un des nombreux serveurs?


J'ai un ordinateur portable que j'utilise à la maison et au bureau. J'ai également des ordinateurs de bureau (avec claviers et souris attachés) installés sur les deux sites. Les deux ordinateurs de bureau sont configurés en tant que serveurs Synergy afin que je puisse partager leurs périphériques d'entrée avec l'ordinateur portable.

Lorsque j'arrive à l'un ou l'autre endroit, je dois reconfigurer l'ordinateur portable pour me connecter au bureau à cet endroit. Cela implique toujours de changer l'adresse IP à laquelle l'ordinateur portable tente de se connecter.

Ce serait particulièrement utile si je pouvais simplement entrer une liste d'adresses de serveur dans la configuration du client et demander au client de tenter une connexion à l'une de ces adresses si celle-ci est découverte sur le réseau.

Si ce n'est pas possible, y a-t-il une autre façon de configurer ma configuration pour ne pas avoir à ajuster manuellement la configuration lorsque je déplace mon ordinateur portable?

Merci!


2
2018-02-03 14:28


origine




Réponses:


(pas très sécurisé et robuste, mais un début de travail): en utilisant shell,

for i in work-server01 home-server01; do
    ping -c 1 "$i" && syngergyc "$i"
done

Vous pouvez faire quelque chose de similaire dans cygwin ou dans un fichier bat si vous utilisez Windows. L'idée serait la suivante: demandez à votre ordinateur de rechercher l'hôte et connectez-vous si vous pouvez le trouver.

(edit) Vous souhaitez l'exécuter explicitement, ne pas l'exécuter en arrière-plan. Vous ne voulez pas entrer dans un café ou un aéroport et demander à un étranger malin chanceux de prendre votre lapin en tant que client.


1
2018-02-20 20:13



Sur le plan de la sécurité, il est fortement conseillé d’utiliser SSL - alors cela ne devrait pas être trop important si vous vous connectez à l’hôte incorrect - zaTricky


Je sais que c'est un ancien message mais j'ai fini par écrire un petit script bash pour gérer celui-ci, il boucle essentiellement sur vos IP jusqu'à ce que l'un avec un port de synergie actif est disponible, il tente de se connecter avec le --no-restart Si la connexion est réinitialisée, il peut redémarrer le processus.

Gist ici: https://gist.github.com/CrashyBang/c2d910f9e495f4506916e12cf2b6051d

Ou code ici:

#!/bin/bash

# IP address to cycle through (in order of priority)
ip=( "192.168.20.102" "192.168.20.103" )

# Check if synergy is already connected
if pgrep "synergyc"; then
  # Synergy already connected
  echo "Synergy is already running."
 else
   # Loop over ip's
   for i in "${ip[@]}"
   do
     # Ping ip with default synergy port
     nc -z "$i" 24800
     if [ "$?" -eq 0 ]; then
       # Connect synergy if ip available and synergy port active
       /usr/bin/synergyc --no-restart -n media -f "$i"
       # Use no-restart so if connection is cut synergy stops.
     fi
   done
 fi

Je le lance sur un cron de 15 secondes comme ça:

* * * * * /usr/local/bin/synergy-client
* * * * * sleep 15 ; /usr/local/bin/synergy-client

C'est génial dans le sens où je peux connecter mon premier ordinateur portable, puis déconnecter mon deuxième ordinateur portable et le connecter automatiquement sans avoir à faire quoi que ce soit sur l'ordinateur client.


1
2017-08-04 06:33





Cette réponse est similaire à @ noah-birnel - mais sans changer la configuration de la synergie. Cela nécessite cependant Linux.

Avoir un script exécuté comme racine le long de ces lignes. Cela pourrait être planifié (cron) ou mis en crochet dans la configuration du réseau (ligne de post-up dans une distribution de type Debian, ou un service réseau systemd personnalisé / etc)

Lors du test, sauvegardez votre fichier hosts pour que vous sachiez que vous ne provoquez pas de rupture irréversible.

#!/bin/bash

servername="synergy-server"
#These should be IP addresses.
hostnames="work.ip.add.ress home.ip.add.ress"
hosts="/etc/hosts"

grep $servername $hosts || ( echo ; echo "#synergy server address" ; echo "0.0.0.0 $servername" ) >> $hosts

for server in $hostnames ; do
 ping -c 1 "$server" && sed -i -n "s/.*$servername/$server $servername/" $hosts
done

Si vous voulez des noms d'hôte dans le script au lieu des adresses IP, vous devrez développer le script pour obtenir l'adresse IP. Sinon, toute méthode permettant d'obtenir un nom d'hôte "dynamique" fonctionnera (par exemple, héberger dnsmasq sur le client et faire en sorte que le script mette à jour les enregistrements DNS internes)


0
2018-03-03 07:11