Envoyer des messages entre 2 PC Ubuntu (Net Send Style)

28

J'essaie de trouver un moyen d'envoyer un message (comme un message contextuel) d'un PC à un autre. les deux utilisent Ubuntu. J'ai déjà essayé la méthode smbclient mais cela ne fonctionne qu'entre un PC Linux et un PC Windows. J'ai besoin d'un moyen d'envoyer des messages d'un PC Ubuntu à un autre PC Ubuntu. Similaire à la manière de Windows Net Send.

Luis Alvarado
la source
notify-send envoie une fenêtre pop-up sur mon terminal mais je voulais envoyer une fenêtre pop-up à d'autres utilisateurs (peut être une liste d'utilisateurs spécifiques) mais sans utiliser sudo ou ssh, ai-je une alternative. Une commande qui fonctionne comme "notifier- envoyer "mais pour envoyer un message sur un autre terminal utilisateur.

Réponses:

27

Installer sshet libnotify-bin(via le terminal):

sudo apt-get install ssh libnotify-bin

sur les deux ordinateurs.

(Vous l'avez peut-être libnotify-bindéjà installé. Le mien l'avait déjà.)

Puis SSH (via le terminal) dans l'autre ordinateur:

ssh <user name>@<ip address>

Et puis lorsque vous êtes connecté, tapez:

export DISPLAY=:0
notify-send "Title of message" "message text"

Envoi de messages heureux!
(ou effrayer XD)

ohitsanazn
la source
1
Même s'il s'agit d'une réponse très intelligente, j'essaie de trouver un moyen de l'envoyer sans ssh. Avec l'option ssh, je sais déjà que cela fonctionne (en utilisant le mur par exemple) mais votre notification-envoi est très intelligente.
Luis Alvarado
1
Après avoir recherché plusieurs méthodes, celle-ci est la meilleure. Pour 2 raisons: 1. ssh me donne une certaine sécurité pour ce faire et 2. L'utilisation de DISPLAY permet de sélectionner à quelle vidéo le message s'affichera. J'ai testé en utilisant ssh user @ ip / domain 'DISPLAY =: 0 notify-send "TITLE" "MESSAGE"'
Luis Alvarado
Cela peut fonctionner dans un environnement domestique, mais dans une grande organisation, je ne sais pas s'il est possible d'installer SSH sur chaque système client, j'ai de l'expérience car dans mon bureau il y a environ 100 coms, il devrait y avoir une autre façon d'envoyer un message sans installer SSh
The_skinny_man
Découvrez ma réponse pour accomplir cela sans ssh! :)
Matt
31

J'ai lu que vous vouliez le faire sans SSH, je crois que j'ai une solution: netcat[nc] Il vient avec Ubuntu par défaut.

Nous avons d'abord besoin d'un "démon" pour fonctionner en arrière-plan. Deuxièmement, nous avons besoin d'un programme pour faire apparaître l'alerte. J'ai zenityinstallé. Si ce n'est pas le cas, veuillez l'installer ou modifier le script pour utiliser ce que vous voulez [ex xmessage, mais c'est moche]. Ensuite, collez-le dans 'daemon.sh':

#!/bin/bash
port=3333
nc -l $port | while read msg; do zenity --info --text "$msg"; done

Maintenant, rendez-le exécutable chmod +x daemon.sh, exécutez-le maintenant en arrière-plan:./daemon.sh &

Vous avez maintenant terminé! Eh bien, vous devez le faire sur chaque ordinateur. Vous voudrez également automatiser le démarrage du démon. Ouvrez les applications «démarrage» dans le menu et ajoutez votre script. Une fois cela fait, pour envoyer un message à l'autre ordinateur, tapez:

nc 192.168.1.X 3333puis tapez votre message et appuyez sur Enter. Chaque ligne d'entrée fera apparaître un message. Pour quitter nc, appuyez sur Ctrl + Cou Ctrl + D.

Assurez-vous simplement de remplacer 192.168.1.X par la véritable adresse IP locale de l'autre PC. [Vous pouvez utiliser ifconfigpour trouver l'adresse IP]

Vous pouvez également créer un autre script, par exemple message.sh. En cela, collez:

#!/bin/bash
nc 192.168.2.X 3333

Alors chmod +x message.sh. Ensuite, vous pouvez simplement taper ./message.shpuis taper votre message, puis entrer, et votre message est envoyé. De plus, maintenant que j'y pense, vous pouvez également ajouter une notification sonore. Je recommanderais mplayer, c'est un lecteur multimédia CLI. Cela ne devrait pas être trop difficile à comprendre, mais si vous avez des questions, n'hésitez pas à demander!

Mat
la source
1
C'est une solution intéressante, mais je préfère en quelque sorte SSH pour des raisons de sécurité.
ohitsanazn
1
Quelqu'un m'a dit que vous pouvez utiliser socatau lieu de netcat, pour le cryptage SSL. Je ne l'ai jamais examiné cependant.
Matt
3
Hou la la! Bien fait! Je l'ai un peu changé pour travailler avec notify-osd:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Khurshid Alam
Ou avec l'adresse IP du connecteur distant:while true; do nc -l -v 3333 2> status | while read msg; do ip=$(cat status | grep -o -P '(?<=from).*(?=port)') && notify-send "$ip" "$msg" -i gtk-network; done ; done
Khurshid Alam
Vous pouvez utiliser cryptcatpour chiffrer votre communication avec un mot de passe. Cela fonctionne de la même manière quenc
Platypus anonyme
11

Utilisez ncpour envoyer du texte entre deux ordinateurs sur le même réseau (sans cryptage).

Sur l' ordinateur récepteur ,

nc -l 3333

Sur l' ordinateur d' envoi ,

nc 192.168.1.XX 3333

puis commencez à taper et le texte s'affichera sur l'autre ordinateur (après avoir appuyé sur Entrée) jusqu'à ce que vous appuyiez sur ctlr + c.


Vous pouvez obtenir l'adresse IP de l'ordinateur récepteur avec hostname -I(exécutez-la sur l'ordinateur récepteur).

Vous n'avez pas besoin d'utiliser le port 3333, utilisez n'importe quel numéro entre 1025 et 65535 inclus.

N'oubliez pas que ce n'est pas crypté . Tout ordinateur de votre réseau peut voir le texte que vous transférez.

Boris
la source