Отправка сообщений между двумя компьютерами Ubuntu (Net Send Style)

28

Я пытаюсь найти способ отправить сообщение (например, всплывающее сообщение) с одного компьютера на другой. оба используют Ubuntu. Уже пробовал smbclient способ, но это работает только между Linux-ПК на ПК с Windows. Мне нужен способ отправки сообщений с компьютера с Ubuntu на другой компьютер с Ubuntu. Аналогично способу Windows Net Send.

Луис Альварадо
источник
notify-send отправляет всплывающее окно на мой терминал, но я хотел отправить всплывающее окно другим пользователям (может быть список определенных пользователей), но без использования sudo или ssh, есть ли у меня какая-либо альтернативная команда .A, которая работает как "notify- отправить "но отправить сообщение на другой пользовательский терминал.

Ответы:

27

Установите sshи libnotify-bin(через терминал):

sudo apt-get install ssh libnotify-bin

на обоих компьютерах.

(Возможно, вы уже libnotify-binустановили. У меня уже было.)

Затем SSH (через терминал) в другой компьютер:

ssh <user name>@<ip address>

И тогда, когда вы вошли в систему, введите:

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

Удачной отправки сообщений!
(или пугая XD)

ohitsanazn
источник
1
Хотя это очень разумный ответ, я пытаюсь найти способ отправить его без ssh. С опцией ssh ​​я уже знаю, что она работает (например, с использованием стены), но ваш уведомление-отправка очень умное
Луис Альварадо
1
После поиска нескольких методов этот самый лучший. По двум причинам: 1. ssh дает мне некоторую безопасность при выполнении этого и 2. Использование DISPLAY позволяет выбрать, какое видео будет отображаться в сообщении. Я тестировал, используя ssh user @ ip / domain 'DISPLAY =: 0 notify-send "TITLE" "MESSAGE"'
Луис Альварадо,
Это может работать в домашней обстановке, но в большой организации, я не уверен, возможно ли установить SSH на каждую клиентскую систему, у меня есть опыт, так как в моем офисе около 100 комов, должен быть другой способ отправки сообщение без установки
SSh
Проверьте мой ответ для выполнения этого без SSH! :)
Мэтт
31

Я читал, что вы хотели сделать это без SSH, я думаю, у меня есть решение: netcat[nc] По умолчанию поставляется с Ubuntu.

Сначала нам нужен «демон», чтобы работать в фоновом режиме. Во-вторых, нам нужна программа для всплывающего оповещения. Я zenityустановил. Если вы этого не сделаете, пожалуйста, установите его или отредактируйте скрипт, чтобы использовать все, что вам нравится [например xmessage, но это ужасно]. Затем вставьте это в 'daemon.sh':

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

Теперь сделайте его исполняемым chmod +x daemon.sh, теперь запустите его в фоновом режиме:./daemon.sh &

Теперь все готово! Ну, на самом деле вам нужно сделать это на каждом компьютере. Вы также захотите автоматизировать запуск демона. Откройте «автозагрузку» приложений из меню и добавьте свой скрипт. После этого, чтобы отправить сообщение на другой компьютер, введите:

nc 192.168.1.X 3333затем введите ваше сообщение и нажмите Enter. Каждая строка ввода сделает сообщение всплывающим. Чтобы выйти из nc, нажмите Ctrl + Cили Ctrl + D.

Просто убедитесь, что заменили 192.168.1.X реальным локальным IP-адресом другого ПК. [Вы можете использовать, ifconfigчтобы найти IP-адрес]

Кроме того, можно сделать еще один сценарий, скажем, message.sh. Во что вставить:

#!/bin/bash
nc 192.168.2.X 3333

Потом chmod +x message.sh. Затем вы можете просто набрать, ./message.shзатем напечатать ваше сообщение, затем ввести, и ваше сообщение отправлено Кроме того, теперь, когда я думаю об этом, вы также можете добавить звуковое уведомление. Я бы порекомендовал mplayer, это медиа-плеер CLI. Не должно быть слишком сложно разобраться, но если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать!

Matt
источник
1
Это изящное решение, но я предпочитаю SSH из соображений безопасности.
ohitsanazn
1
Кто-то сказал мне, что вы можете использовать socatвместо netcat для шифрования SSL. Я никогда не смотрел на это, хотя.
Мэтт
3
Вот Это Да! красиво сделано! Я немного изменил его, чтобы работать с notify-osd:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Хуршид Алам
Или с IP-адресом удаленного соединителя: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
Хуршид Алам
Вы можете использовать, cryptcatчтобы сделать ваше общение зашифрованным паролем. Это работает так же, какnc
анонимный утконос
11

Используйте ncдля отправки текста между двумя компьютерами в одной сети (без шифрования).

На принимающем компьютере сделать

nc -l 3333

На отправляющем компьютере делаю

nc 192.168.1.XX 3333

затем просто начните вводить текст, и текст будет отображаться на другом компьютере (после нажатия клавиши ввода), пока вы не нажмете Ctrl + C.


Вы можете получить IP -адрес принимающего компьютера с помощью hostname -I(запустите его на принимающем компьютере).

Вам не нужно использовать порт 3333, используйте любое число от 1025 до 65535 включительно.

Помните, что это не зашифровано . Любой компьютер в вашей сети может видеть, какой текст вы передаете.

Борис
источник