75

As I recall there was something like netsend on windows that allowed simple messages to be sent over the local network. I especially like this because one doesn't need to install extra client soft (hello skype).

Is there something dead simple like this on Linux?

Just to clarify I'm looking for a bash command or simple CLI script/tool, not a GUI app.

8 Answers 8

97

You actually can do this with netcat, I believe it is already installed in most cases on linux, and it's dead simple.

On PC 1, type: nc -l 55555

On PC 2, type: nc $IP 55555, where $IP equals the local IP address of PC 1 [e.x. 192.168.2.50]

Once you do this, in the same box, from PC 2, type something and press enter. Then go over and look at PC 1, and your message will be there! It works both ways.

You can also choose a different port than 55555, or if you opened your firewall, you can do this through the internet via your external IP.

4
  • 13
    +1 for another creative use of netcat. You can use that tool for anything. Oct 10, 2011 at 23:09
  • Any possibility to do it with more than 2 pc?
    – wair92
    Sep 30, 2015 at 7:59
  • @wair92 indeed. Use on the PC1: while true; do nc -l 5555; done and (the tricky part) is to echo something to the nc pipe instead of enter on it's interactive mode. On PC2 (or even another therminal in same machine) use: echo "i am PC2" | nc $IP 5555 and the message will be sent and connection will close, but will be reopened. So, you can still do in PC3: echo "i am PC3" | nc $IP 5555 and the PC1 will receive that message.
    – m3nda
    Feb 11, 2017 at 0:31
  • On Debian 10, I needed to use nc -l -p 55555 on PC 1.
    – Rodrigo
    Apr 18, 2020 at 1:16
32

You can use iptux. It is a very convenient GUI-based program. You can even send files (and entire folder) to your colleague.

From a terminal,

sudo apt-get install iptux

will do the job.

Here is a screenshot of this tool.

iptux image (turn on image in your browser to see this)

0
24

No need for netcat hacks.

The talk (or ytalk - same protocol but newer, multi-user) is a visual communication program which copies lines from your terminal to that of another user. They are probably the closest UNIX equivalent to netsend. An advantage is that communications can be secured by running over ssh.

Packages are in the software repositories. Usage is simply:

talk user@host

More information here:

Edit: found a screenshot on wikipedia: Unix talk screenshot

Edit again (response to psusi's comment): I'm not sure about Gnome, but KDE will show a popup for a talk request:

KDE talk popup

6
  • I was thinking of answering this question like that, but decided against it because (y)talk operates tty to tty, not over the network, and people use gui desktops these days instead of logging in to a tty. A proper answer to this question would involve a network protocol that would pop up a gui chat client on the desktop, but unfortunately a modern network+gui replacement for ytalk was never developed. Windows NT used to have a proper chat program that did this ( not just one way one message net send ), but Microsoft dropped the program I think in win2k or xp, which is a shame.
    – psusi
    Sep 22, 2011 at 1:54
  • @psusi: There is a desktop notification for talk requests; see my second edit. Also, talk certainly does work over the network and in a graphical desktop.
    – scottl
    Sep 22, 2011 at 3:52
  • Could you expand on how to make this work over the network, or SSH? Mar 24, 2016 at 4:10
  • I'm having difficulties to make talk work. Netcat worked immediately though.
    – KeyC0de
    Sep 22, 2017 at 18:57
  • @psusi the talk protocol operates tty to tty on the local system, but if you have a talk daemon running on both machines and DNS names assigned to them it will hunt down users on other machines over the network as well.
    – Perkins
    Oct 3, 2018 at 22:11
9

One option: if one server has a ssh client installed you could login using ssh and use write. http://manpages.ubuntu.com/manpages/wily/man2/write.2.html

6

Empathy supports this, but you need to activate it. It is called people nearby and is a special kind of account which does not require a server. Other than that, it's the same protocol as Facebook and Google uses. Everyone who has activated that will be visible to everyone else on the same network that has also activated it.

4
  • couldnt find the option, could be the version? Jun 24, 2014 at 0:33
  • It should be installed by default in any supported version of Ubuntu, but I think the package is called telepathy-salut. It should appear as account type "People Nearby" when you create a new account in Empathy. (Of course, "People Nearby" is also translated, so it might be different if you're not using English) Jun 27, 2014 at 16:11
  • ppl nearby is actually named "salut" and my install is english o_O (at least on empathy 3.8.6), anyway users found each other! but... they cant send messages? despite green icon, it says user is offline... did you add some firewall rule to allow this? Jun 27, 2014 at 19:41
  • ugh just saw this: "traps: empathy-chat[...] general protection ip:... sp:... error:0 in libc-2.19.so" but only shown on dmesg of one machine! Jun 27, 2014 at 19:48
6

You can do this with finch Install finch, the command-line equivalent to pidgin, by setting up local accounts (Bonjour/Avahi). I have not used finch myself, so I cannot guide you in the setup, but it should be fairly easy.

0

You can use BeeBeep, BeeBEEP is a secure network chat. You can talk and send files with all your friends inside a local area network such of an office, home or internet cafe without a server. Download it from here: BeeBeep

0

I made a project for this. A Node.js server that has basic chat functionality like /msg. You just run the server and connect with netcat. However, it's terrible in it's current form. I might rewrite it in the near future. You will only have to watch the repo and git pull when it's updated.

https://github.com/uAliFurkanY/simple-chat-server

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .