Wysyłaj wiadomości między 2 komputerami Ubuntu (styl wysyłania netto)

28

Próbuję znaleźć sposób na wysłanie wiadomości (np. Wiadomości wyskakującej) z jednego komputera na inny. oba używają Ubuntu. Próbowałem już w smbclient, ale działa to tylko między komputerem z systemem Linux a komputerem z systemem Windows. Potrzebuję sposobu na wysyłanie wiadomości z komputera Ubuntu na inny komputer Ubuntu. Podobne do sposobu Windows Net Send.

Luis Alvarado
źródło
powiadom-wyślij wyskakujące okienko na moim terminalu, ale chciałem wysłać wyskakujące okienko do innych użytkowników (może to być lista konkretnych użytkowników), ale bez użycia sudo lub ssh, czy mam jakieś alternatywne polecenie. wyślij ”, ale aby wysłać wiadomość na innym terminalu użytkownika.

Odpowiedzi:

27

Zainstaluj sshi libnotify-bin(przez terminal):

sudo apt-get install ssh libnotify-bin

na obu komputerach.

(Być może już libnotify-binzainstalowałeś. Mój już to miał.)

Następnie SSH (przez terminal) do drugiego komputera:

ssh <user name>@<ip address>

A po zalogowaniu wpisz:

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

Miłego wysyłania wiadomości!
(lub straszenie XD)

ohitsanazn
źródło
1
Mimo że jest to bardzo inteligentna odpowiedź, próbuję znaleźć sposób na wysłanie jej bez ssh. Dzięki opcji ssh już wiem, że to działa (na przykład przy użyciu ściany), ale twoje powiadomienie-wysyłanie jest bardzo inteligentne.
Luis Alvarado,
1
Po przeszukaniu kilku metod ta jest najlepsza. Z dwóch powodów: 1. ssh daje mi pewne bezpieczeństwo w tym zakresie i 2. Użycie DISPLAY pozwala wybrać, do którego wideo ma zostać wyświetlony komunikat. Testowałem przy użyciu ssh user @ ip / domain 'DISPLAY =: 0 powiadom-wyślij „TITLE” „WIADOMOŚĆ”'
Luis Alvarado,
Może działać w środowisku domowym, ale w dużej organizacji nie jestem pewien, czy można zainstalować SSH na każdym systemie klienckim, mam doświadczenie, ponieważ w moim biurze jest około 100 komunikatorów, powinien być inny sposób wysłania wiadomość bez instalacji SSh
The_skinny_man
Sprawdź moją odpowiedź na osiągnięcie tego bez ssh! :)
Matt
31

Czytałem, że chciałeś to zrobić bez SSH, myślę, że mam rozwiązanie: netcat[nc] Domyślnie jest dostarczane z Ubuntu.

Najpierw potrzebujemy „demona”, który będzie działał w tle. Po drugie, potrzebujemy programu, aby wyskoczył alert. Mam zenityzainstalowany. Jeśli nie, zainstaluj go lub edytuj skrypt, aby użyć tego, co chcesz [np. xmessage, Ale to brzydkie]. Następnie wklej to do pliku „daemon.sh”:

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

Teraz uczyń go wykonywalnym chmod +x daemon.sh, teraz uruchom go w tle:./daemon.sh &

Teraz gotowe! Właściwie musisz to zrobić na każdym komputerze. Będziesz także chciał zautomatyzować uruchomienie demona. Otwórz aplikacje „startowe” z menu i dodaj swój skrypt. Gdy to zrobisz, aby wysłać wiadomość na inny komputer, wpisz:

nc 192.168.1.X 3333następnie wpisz swoją wiadomość i naciśnij Enter. Każda linia wprowadzania spowoduje pojawienie się komunikatu. Aby wyjść z nc, naciśnij Ctrl + Club Ctrl + D.

Pamiętaj tylko, aby zastąpić 192.168.1.X rzeczywistym lokalnym adresem IP drugiego komputera. [Możesz użyć, ifconfigaby znaleźć adres IP]

Można także dokonać innego scenariusza, mówią message.sh. W tym wklej:

#!/bin/bash
nc 192.168.2.X 3333

Potem chmod +x message.sh. Następnie możesz po prostu wpisać, ./message.shwpisać wiadomość, a następnie wpisać, a wiadomość zostanie wysłana. Teraz, gdy o tym myślę, możesz również dodać powiadomienie dźwiękowe. Polecam mplayer, to odtwarzacz multimedialny CLI. To nie powinno być trudne, ale jeśli masz jakieś pytania, nie wahaj się zapytać!

Matt
źródło
1
To fajne rozwiązanie, ale wolę SSH ze względów bezpieczeństwa.
ohitsanazn
1
Ktoś powiedział mi, że możesz używać socatzamiast netcat do szyfrowania SSL. Jednak nigdy nie zaglądałem w to.
Matt
3
Łał! ładnie wykonane! Trochę zmieniłem to, żeby pracować z powiadomieniem-osd:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Khurshid Alam
Lub ze zdalnym adresem IP złącza: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
Możesz użyć cryptcatdo szyfrowania komunikacji za pomocą hasła. Działa tak samo jaknc
Anonymous Platypus
11

Służy ncdo wysyłania tekstu między dwoma komputerami w tej samej sieci (bez szyfrowania).

Na komputerze odbierającym wykonaj

nc -l 3333

Na komputerze wysyłającym wykonaj

nc 192.168.1.XX 3333

po prostu zacznij pisać, a tekst pojawi się na drugim komputerze (po naciśnięciu klawisza Enter), dopóki nie naciśniesz CTRL + C.


Możesz uzyskać adres IP komputera odbierającego za pomocą hostname -I(uruchom go na komputerze odbierającym).

Nie musisz używać portu 3333, użyj dowolnej liczby między 1025 do 65535 włącznie.

Pamiętaj, że to nie jest szyfrowane . Dowolny komputer w sieci może zobaczyć przesyłany tekst.

Boris
źródło