在两台Ubuntu PC之间发送消息(网络发送样式)


28

我正在尝试找到一种方法,将消息(如弹出消息)从一台PC发送到另一台PC。两者都使用Ubuntu。已经尝试过smbclient方式,但这仅在Linux PC到Windows PC之间起作用。我需要一种将消息从Ubuntu PC发送到另一台Ubuntu PC的方法。类似于Windows Net Send的方式。


notify-send在我的终端上发送一个弹出窗口,但是我想将弹出窗口发送给其他用户(可能是特定用户的列表),但是不使用sudo或ssh,我还有其他选择。作为“ notify-发送”,但要在其他用户终端上发送消息。

Answers:


27

安装sshlibnotify-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)


1
即使这是一个非常明智的答案,我仍试图找到一种无需ssh即可发送它的方法。使用ssh选项,我已经知道它可以工作(例如使用wall),但是您的notify-send非常聪明。
路易斯·阿尔瓦拉多

1
在搜索了几种方法之后,这是最好的方法。由于两个原因:1. ssh使我在执行此操作时有一定的安全性,并且2.使用DISPLAY可以选择将消息显示在哪个视频上。我使用ssh user @ ip / domain'DISPLAY =:0 notify-send“ TITLE”“ MESSAGE”'测试
Luis Alvarado

它可能在家庭环境中工作,但是在大型组织中,我不确定是否可以在每个客户端系统上安装SSH,我有经验,因为在我的办公室中大约有100个com,因此应该有另一种发送方式一条未安装SSh的消息
The_skinny_man 2011年

看看我的答案,无需ssh即可完成!:)
Matt

31

我读到您想在不使用SSH的情况下执行此操作,我相信我有一个解决方案:netcat[nc]默认情况下,Ubuntu附带该解决方案。

首先,我们需要一个“守护程序”在后台运行。其次,我们需要一个程序来使警报弹出。我已经zenity安装好了。如果不这样做,请安装它,或编辑脚本以使用您喜欢的任何东西[ex 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替换为另一台PC的真实本地IP。[您可以ifconfig用来查找IP地址]

您还可以制作另一个脚本,例如message.sh。在其中粘贴:

#!/bin/bash
nc 192.168.2.X 3333

然后chmod +x message.sh。然后,您可以键入./message.sh然后键入消息,然后输入,然后发送消息。另外,现在我想到了,您还可以添加声音通知。我会推荐mplayer,它是CLI媒体播放器。应该不难发现,但是如果您有任何疑问,请随时提出!


1
这是一个很好的解决方案,但是出于安全目的,我还是更喜欢SSH。
ohitsanazn

1
有人告诉我,您可以使用socatnetcat代替SSL加密。我从来没有研究过。
Matt

3
哇!做得很好!我将其更改为与notify-osd一起使用:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Khurshid Alam

或使用远程连接器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
Khurshid Alam 2013年

您可以使用cryptcat密码来加密您的通信。它的工作方式与nc
Anonymous Platypus 2015年

11

用于nc在同一网络上的两台计算机之间发送文本(不加密)。

接收计算机上做

nc -l 3333

发送计算机上

nc 192.168.1.XX 3333

然后只需开始输入,文本就会显示在另一台计算机上(按Enter后),直到您按ctlr + c为止。


您可以使用(在接收计算机上运行)获得接收计算机的IPhostname -I

您不必使用端口3333,可以使用介于102565535(包括102565535)之间的任何数字。

请记住,这不是加密的。网络上的任何计算机都可以看到您正在传输的文本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.