Invia messaggi tra 2 PC Ubuntu (Net Send Style)


28

Sto cercando di trovare un modo per inviare un messaggio (come un messaggio popup) da 1 PC a un altro. entrambi usano Ubuntu. Ho già provato il modo smbclient ma questo funziona solo tra un PC Linux e un PC Windows. Ho bisogno di un modo per inviare messaggi da un PC Ubuntu a un altro PC Ubuntu. Simile al modo di Windows Net Send.


notification-send invia un pop-up sul mio terminale ma volevo inviare un popup ad altri utenti (potrebbe essere un elenco di utenti specifici) ma senza usare sudo o ssh, ho qualche alternativa. Un comando che funziona come "notifica- invia "ma per inviare un messaggio su un altro terminale utente.

Risposte:


27

Installa sshe libnotify-bin(tramite terminale):

sudo apt-get install ssh libnotify-bin

su entrambi i computer.

(Potresti aver libnotify-bingià installato. Il mio lo aveva già.)

Quindi SSH (tramite il terminale) nell'altro computer:

ssh <user name>@<ip address>

E poi quando sei loggato, digita:

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

Buon invio di messaggi!
(o spaventare XD)


1
Anche se questa è una risposta molto intelligente, sto cercando di trovare un modo per inviarlo senza SSH. Con l'opzione ssh so già che funziona (usando wall ad esempio) ma la tua notifica-invio è molto intelligente.
Luis Alvarado,

1
Dopo aver cercato diversi metodi, questo è il migliore. Per 2 motivi: 1. ssh mi dà un po 'di sicurezza nel fare questo e 2. L'uso di DISPLAY consente di selezionare a quale video verrà mostrato il messaggio. Ho provato usando ssh user @ ip / domain 'DISPLAY =: 0 Notify-Send "TITLE" "MESSAGE"'
Luis Alvarado

Potrebbe funzionare in un ambiente domestico, ma in una grande organizzazione, non sono sicuro che sia possibile installare SSH su ogni sistema client, ho esperienza in quanto nel mio ufficio ci sono circa 100 com, ci dovrebbe essere un altro modo per inviare un messaggio senza installare SSh
The_skinny_man il

Controlla la mia risposta per averlo realizzato senza ssh! :)
Matt,

31

Ho letto che volevi farlo senza SSH, credo di avere una soluzione: netcat[nc] Viene fornito con Ubuntu per impostazione predefinita.

Per prima cosa abbiamo bisogno di un "demone" da eseguire in background. In secondo luogo, abbiamo bisogno di un programma per far apparire l'avviso. Ho zenityinstallato. In caso contrario, installalo o modifica lo script per utilizzare quello che ti piace [ex xmessage, ma è brutto]. Quindi, incollalo in 'daemon.sh':

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

Ora, rendilo eseguibile chmod +x daemon.sh, ora eseguilo in background:./daemon.sh &

Adesso hai finito! Bene, in realtà devi farlo su ogni computer. Dovrai anche automatizzare l'inizio del demone. Apri le applicazioni di 'avvio' dal menu e aggiungi il tuo script. Una volta fatto, per inviare un messaggio all'altro computer, digitare:

nc 192.168.1.X 3333quindi digita il tuo messaggio e premi Enter. Ogni riga di immissione farà apparire un messaggio. Per uscire da nc, premere Ctrl + Co Ctrl + D.

Assicurati di sostituire 192.168.1.X con l'IP locale reale dell'altro PC. [È possibile utilizzare ifconfigper trovare l'indirizzo IP]

Potresti anche creare un'altra sceneggiatura, per esempio message.sh. In quello, incolla:

#!/bin/bash
nc 192.168.2.X 3333

Poi chmod +x message.sh. Quindi puoi semplicemente digitare, ./message.shquindi digitare il tuo messaggio, quindi inserire e il tuo messaggio viene inviato. Inoltre, ora che ci penso, potresti anche aggiungere una notifica sonora. Consiglierei mplayer, è un lettore multimediale CLI. Non dovrebbe essere troppo difficile da capire, ma se avete domande, non esitate a chiedere!


1
Questa è una soluzione accurata, ma preferisco SSH per motivi di sicurezza.
ohitsanazn,

1
Qualcuno mi ha detto che puoi usare al socatposto di netcat, per la crittografia SSL. Non ci ho mai pensato però.
Matt,

3
Wow! ben fatto! L'ho cambiato un po 'per funzionare con notify-osd:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Khurshid Alam il

O con indirizzo IP del connettore remoto: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,

È possibile utilizzare cryptcatper rendere la comunicazione crittografata con una password. Funziona comenc
Platypus anonimo

11

Utilizzare ncper inviare testo tra due computer sulla stessa rete (senza crittografia).

Sul computer ricevente fare

nc -l 3333

Sul computer di invio fare

nc 192.168.1.XX 3333

quindi inizia a digitare e il testo verrà visualizzato sull'altro computer (dopo aver premuto Invio) finché non premi ctlr + c.


È possibile ottenere l'IP del computer ricevente con hostname -I(eseguirlo sul computer ricevente).

Non è necessario utilizzare la porta 3333, utilizzare qualsiasi numero compreso tra 1025 e 65535 inclusi.

Ricorda che questo non è crittografato . Qualsiasi computer sulla tua rete può vedere quale testo stai trasferendo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.