15

Does a true P2P chat client exist for Linux? If it does exist, can someone please provide a link?

I have tried searching for such a client, but haven't had any luck yet. Ideally the client will work on debian and/or debian based systems.

5
  • Skype. It always seemed odd to me that the instant-messaging portion of this program worked that way. VOIP i get, but P2Ping instant messages really breaks "offline messaging", partly because you have nowhere to queue the delivery, and because the delivery then betrays any "invisible" status. (Still amazed they merged MSN into what is essentially this lesser-featured service). I guess skype still has central servers, so probably Jabber (an implementation of XMPP) is a more useful answer, apologies for failing to resist the jab at skype :P With no server, how do you find people? (XMPP=dns)
    – iain
    Oct 7, 2013 at 14:16
  • 1
    Note that a strictly peer-to-peer chat system requires that the originating peer be able to open a connection to the target peer, which means that the target peer must be listening on a port on a known IP address, which can be difficult in practice due to firewalls and NAT. Oct 7, 2013 at 23:48
  • skype supports offline messages for quite some time now
    – phil294
    May 10, 2017 at 20:06
  • 1
    @oshirowanen Do you mean something to chat over the internet without any server in the middle?
    – EnzoR
    Apr 7, 2018 at 15:10
  • 1
    Might want to check out: getsession.org -- its a P2P messenger with a mixnet on the backend and fork of the signal messenger. Feb 18, 2020 at 20:33

9 Answers 9

8

GNU Talk is strictly peer-to-peer, and is packaged in most distributions.

9
  • gtalk is working only for users using terminals inside the very same Linux system. A "p2p chat client" should be one working over a network...
    – EnzoR
    Apr 7, 2018 at 7:06
  • 2
    @Enzo Why do you think GNU talk is only for one machine? While I've not used GNU talk for a long time, it's perfectly capable of connecting to daemons running on other machines to communicate. I literally used it back in the late 90s just for this purpose.
    – Chris Down
    Apr 7, 2018 at 14:42
  • @Cris-down, because even in this case it wouldn't be a P2P chat client. P2P means there's no server. Otherwise also email (SMTP) would qualify.
    – EnzoR
    Apr 7, 2018 at 15:09
  • 1
    @Enzo "Peer-to-peer" typically means there's no central server, which is why SMTP doesn't qualify. That's not typically how GNU talk was used. Otherwise, by that definition, even DHT use wouldn't qualify.
    – Chris Down
    Apr 7, 2018 at 16:22
  • 2
    @Enzo Reread your references. For example, I distinctly remember ytalk being quite able to connect to multiple other servers on other hosts using TCP/IP more than two decades ago. (which was why I switched to it from old legacy talk client which couldn't) May 12, 2018 at 0:25
3

P2P client

I did find this application that purports to run on Windows & Linux. It's called TorChat.

excerpt from website

TorChat is a peer to peer instant messenger with a completely decentralized design, built on top of Tor's location hidden services, giving you extremely strong anonymity while being very easy to use without the need to install or configure anything.

TorChat just runs from an USB drive on any Windows PC. (It can run on Linux and Mac too, in fact it was developed on Linux with cross platform usability in mind from the very first moment on, but the installation on other platforms than Windows is a bit more complicated at the moment)

Running your own server

I would suggest just setting up your own chat server. I run ejabberd and it was pretty trivial to setup on my own box and then I give people accounts to access it.

Ejabberd is a XMPP server so any clients such as Pidgin or Empathy. You can also deploy a web based chat client too. This is a fully featured XMPP server that Process One uses within their products so it's extremely capable.

It even has rooms so you can do pretty much everything with it.

Resources

3
  • As far as I know, ejabberd is not peer to peer...
    – Chris Down
    Oct 7, 2013 at 14:47
  • @ChrisDown - correct, hence why I said I would setup my own chat server 8-)
    – slm
    Oct 7, 2013 at 15:00
  • @ChrisDown - I've added a p2p option as well so my answer at least addresses this since that's the original basis for the Q.
    – slm
    Oct 7, 2013 at 15:05
3

I'd give a look to TOX protocol and related clients. It's a true P2P protocol based on DHT (the same as BitTorrent). I think it's the best you can find as of today!

1
  • this uses persistent id numbers, can be used with tor, has a cli client, has a windows client, and is easy to use
    – Toothrot
    Nov 20, 2019 at 23:10
2

Zeroconf is a protocol designed by Apple for automatic service detection inside a network, for example to detect available printers. It can also be used for chatting!

The implementation for Linux is Avahi, Apple's implementation is called Bonjour, thus the chat protocol is often just called Bonjour.

Popular chat clients like Pidgin and Gajim support this protocol. In Pidgin, you have to create an account for the Bonjour protocol, giving only a nickname. In Gajim it's called Local, which you can enable in the Accounts-window.

0
2

The P2P Messenger Briar - which I have not tested myself - works by sending messages via Bluetooth, Wifi or the TOR network without any cloud.

2

Quick homemade hack:

  • one peer (listening one) runs for example:

    nc -l -p 1234

  • and another peer (connecting one) runs for example:

    nc ip_or_FQDN_of_other_peer.example.net 1234

Ta-da! true P2P chat client.

Or, you can do apt-get install ytalk for some standadization, nicer UI and more features.

Or, if you only need actual communications to be P2P and you're fine with using some central directory information service (instead of specifying IP addresses and ports by hand), look up any of dozens IRC clients. While by default IRC relays messages over server, there is /DCC CHAT command which establishes direct peer to peer communication without forwarding messages via server.

Or, if it is privacy you worry about, you might try apt-get install torchat, to get decentralized anonymous instant messenger (but note that underlying TOR network might not match your definition of "true P2P")

2
  • 1
    They sunsettied torchat. Is IRC chat also encrypted? Jan 23, 2021 at 9:04
  • 1
    @DuckDodgers no, IRC is mostly only encrypted using TLS between client and server. If both clients supports SDCC you might get client2client encryption. There are extensions like OMEMO for other decentralized protocols like Jabber / XMPP that provide client2client encryption. Also your link has section "Existing Users and Recommendations" for alternatives Jan 24, 2021 at 14:36
1

You can check out https://bitchat.im which can run on Linux with mono framework installed. Its open source and pure peer-to-peer, as in, it works similar to bittorrent client and even uses trackers and DHT to find peers.

1

For pure privacy and removing the metadata during communication, there is the session messenger: https://getsession.org -- It's backend is a mixnet like Tor that conceals your IP. They have clients for most platforms it seems.

-1

https://github.com/adsharma/zre_raft/ - uses ZeroMQ realtime exchange protocol

A small python script with a few dependencies. Works on local network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.