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.

oshirowanen
  • 2,571
  • 15
  • 46
  • 66
  • 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 07 '13 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. – Gilles 'SO- stop being evil' Oct 07 '13 at 23:48
  • skype supports offline messages for quite some time now – phil294 May 10 '17 at 20:06
  • 1
    @oshirowanen Do you mean something to chat over the internet without any server in the middle? – EnzoR Apr 07 '18 at 15:10
  • 1
    Might want to check out: https://getsession.org -- its a P2P messenger with a mixnet on the backend and fork of the signal messenger. – Patoshi パトシ Feb 18 '20 at 20:33

9 Answers9

8

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

Chris Down
  • 122,090
  • 24
  • 265
  • 262
  • 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 07 '18 at 07: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 07 '18 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 07 '18 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 07 '18 at 16:22
  • The OP was asking for something working over a network, not just inside a server. Talk, wall and the likes just work over local resources, inside a server. Not outside. A user from a server cannot use talk to chat with a user on a different machine. Try reading this (https://en.wikipedia.org/wiki/Talk_(software) ) and make up and answer yourself whether talk is a P2P chat. – EnzoR Apr 24 '18 at 17:48
  • 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) – Matija Nalis May 12 '18 at 00:25
  • but you can't encrypt with talk, right? – Toothrot Nov 20 '19 at 16:09
  • @Toothrot You should be able to trivially run it over stunnel or similar to achieve that. GNU Talk only does the minimum to implement its protocol. – Chris Down Nov 20 '19 at 16:46
  • Talk still is not P2P: "a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the application." (From https://en.wikipedia.org/wiki/Peer-to-peer). Thus working with NO SERVER. – EnzoR Dec 10 '21 at 14:22
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!

EnzoR
  • 893
  • 1
  • 7
  • 11
  • 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 '19 at 23:10
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

slm
  • 363,520
  • 117
  • 767
  • 871
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.

sebix
  • 439
  • 6
  • 14
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.

sebix
  • 439
  • 6
  • 14
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")

Matija Nalis
  • 3,061
  • 1
  • 14
  • 27
  • 1
    They [sunsettied torchat](https://blog.torproject.org/sunsetting-tor-messenger). Is IRC chat also encrypted? – Duck Dodgers Jan 23 '21 at 09:04
  • 1
    @DuckDodgers no, IRC is mostly only encrypted using TLS between client and server. If both clients supports [SDCC](https://en.wikipedia.org/wiki/Direct_Client-to-Client) you might get client2client encryption. There are extensions like [OMEMO](https://en.wikipedia.org/wiki/OMEMO) for other decentralized protocols like Jabber / XMPP that provide client2client encryption. Also your link has section "Existing Users and Recommendations" for alternatives – Matija Nalis Jan 24 '21 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.

Patoshi パトシ
  • 1,695
  • 6
  • 24
  • 34
-1

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

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