chat over lan from linux to linux?

  • 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.

  • Matt

    Matt Correct answer

    9 years ago

    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.

    +1 for another creative use of `netcat`. You can use that tool for *anything*.

    Any possibility to do it with more than 2 pc?

    @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.

    On Debian 10, I needed to use `nc -l -p 55555` on PC 1.

  • 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)

    Best answer in this thread by far.

    simple, graphical, easy and perfect, thx!

  • 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 [email protected]
    

    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

    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: 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.

    Could you expand on how to make this work over the network, or SSH?

    I'm having difficulties to make talk work. Netcat worked immediately though.

    @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.

    @CMCDragonkai to make it work over the network, you install talkd on all desired machines and invoke via 'talk [email protected]' The only caveat is that it requires DNS names and won't work with raw IP addresses for some silly reason. Oh, and it's unencrypted (like most protocols this old) so only use it on trusted networks or for trivial conversations.

  • 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

  • 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.

    couldnt find the option, could be the version?

    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)

    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?

    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!

  • 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.

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM